【tradingview】pineスクリプトのカスタムインジケーター作成入門

tradingview pine scriptについて初心者エンジニアに向けて

こんにちは。今回は、tradingview pine scriptについて初心者エンジニアに向けて、カスタムインジケーターの作成入門をご紹介します。tradingviewは、株式や仮想通貨などの市場データをグラフィカルに表示し、テクニカル分析をサポートしてくれるツールです。pine scriptは、そのtradingview上で使用するためのプログラミング言語であり、自分自身のカスタムインジケーターやストラテジーを作成することができます。

pineスクリプトは、c言語に似た構文を持つ言語であり、パワフルな技術分析ツールを作成するために使用されます。この記事では、pineスクリプトの基礎から始めて、データ操作、算術演算子、プロット、条件分岐とループ、最適化とパフォーマンス向上のテクニックなど、カスタムインジケーターの作成に必要な要素を紹介します。もしtradingviewで独自のインジケーターやストラテジーを使いたいと考えている初心者のエンジニアの方は、ぜひ参考にしてみてください。

インジケーターの基本構造とpineスクリプトの基礎

まずは、pineスクリプトの基本的な構造について見ていきましょう。

//@version=4
study("custom indicator", overlay=true)

// 変数の宣言
var int variable = 0

// インジケーターの計算
if close > open
    variable := variable + 1
else if close < open
    variable := variable - 1
else
    variable := variable

// プロット
plot(variable, title="custom indicator", color=color.blue)

この例では、カスタムインジケーターの基本的な構造を示しています。まず、//@version=4という行は、pineスクリプトのバージョンを指定するものです。次に、study()関数により、tradingview上でカスタムインジケーターとして表示することを宣言しています。overlay=trueというオプションは、インジケーターをチャートのメイングラフの上に重ねて表示することを指定しています。

その後、必要な変数を宣言し、インジケーターの計算を行います。この例では、close > openという条件で、variableという変数を操作しています。最後に、plot()関数でインジケーターの結果をチャート上にプロットしています。

pineスクリプトのデータ操作と算術演算子の活用方法

pineスクリプトでは、市場データや計算結果などのデータを操作するための様々な関数と算術演算子が用意されています。ここでは、pineスクリプトでよく利用されるデータ操作と算術演算子の活用方法を紹介します。

//@version=4
study("data manipulation", overlay=true)

// 単純移動平均 (sma)
smavalue = sma(close, 10)

// 指数移動平均 (ema)
emavalue = ema(close, 10)

// データの加算
addvalue = close + open

// データの減算
subvalue = close - open

// データの乗算
mulvalue = close * open

// データの除算
divvalue = close / open

// データの剰余
modvalue = close % open

// データのべき乗
powvalue = pow(close, 2)

// データの平方根
sqrtvalue = sqrt(close)

この例では、代表的なデータ操作と算術演算子を使った計算を紹介しています。まず、sma()関数を使って、単純移動平均(sma)を計算しています。次に、ema()関数を使って、指数移動平均(ema)を計算しています。

その他の算術演算子としては、加算 +、減算 -、乗算 *、除算 /、剰余 %、べき乗 pow()、平方根 sqrt()などがあります。これらの演算子や関数を組み合わせて、複雑な計算を行うことができます。

プロットとカラーリング:チャート上での情報表示と見やすさの向上

pineスクリプトでは、プロットとカラーリングを使って、インジケーターの計算結果やその他の情報をチャート上に表示することができます。以下に、その方法を紹介します。

//@version=4
study("plotting and coloring", overlay=true)

// プロット
plot(close, title="close", color=color.blue)

// ラインプロット
hline(50, title="middle line", color=color.gray)

// 背景カラーリング
bgcolor(close > open ? color.green : color.red, transp=70)

この例では、plot()関数を使って終値をプロットしています。titleオプションを使うことで、プロットされるデータにタイトルを付けることができます。また、hline()関数を使って水平線をプロットしています。同様に、vline()関数を使って垂直線をプロットすることもできます。

さらに、bgcolor()関数を使って背景カラーリングを行っています。この関数では、条件に基づいてカラーを変えることができます。この例では、終値が始値よりも高ければ緑色、低ければ赤色の背景カラーを設定しています。

条件分岐とループ:トレードシグナルの生成と複雑な戦略の実装

pineスクリプトでは、条件分岐とループを使って、トレードシグナルの生成や複雑な戦略の実装を行うことができます。以下に、その方法を紹介します。

//@version=4
study("conditional statements and loops", overlay=true)

// 条件分岐
if close > open
    strategy.entry("buy", strategy.long)
else if close < open
    strategy.entry("sell", strategy.short)

// ループ
for i = 1 to 10
    strategy.close("buy", when=i == 5)

この例では、if文を使って条件分岐を行っています。ここでは終値と始値を比較し、終値が始値よりも高ければstrategy.entry()関数で買いシグナルを生成し、低ければ売りシグナルを生成しています。

また、forループを使って特定の条件を満たすまでトレードポジションをクローズすることもできます。この例では、strategy.close()関数を使って、"buy"という名前のポジションを、when条件に基づいてクローズしています。

インジケーターの最適化とパフォーマンス向上のためのテクニック

最後に、インジケーターの最適化とパフォーマンス向上のためのテクニックを紹介します。pineスクリプトでは、特定の期間や条件に基づいて計算やプロットを行い、パフォーマンスを向上させることができます。

//@version=4
study("optimization and performance", overlay=true)

// 最適化
totalcount = input(5, "total count")
smavalue = sma(close, 10)
plot(smavalue, title="sma", color=color.blue)

// 指定期間での計算
calcperiod = input("month", "calculation period", options=["day", "week", "month"])
periodclose = security(syminfo.tickerid, calcperiod, close)
plot(periodclose, title="period close", color=color.red, linewidth=2)

この例では、input()関数を使って最適化のパラメータや計算期間を指定することができます。totalcountという変数は、最適化するパラメータの初期値を指定するための入力欄を表示します。

また、security()関数を使って指定期間のデータを取得しています。syminfo.tickeridは、現在のティッカーのidを取得するために使用されます。これにより、異なるティッカーのデータを参照することができます。

以上が、tradingview pine scriptの基礎から応用までのカスタムインジケーター作成の入門ガイドでした。pineスクリプトの基本構造、データ操作と算術演算子の活用方法、プロットとカラーリング、条件分岐とループ、最適化とパフォーマンス向上のテクニックなど、様々な要素を覚えておくと、より自分自身のトレードシステムやインジケーターを作成する上で役立つことでしょう。ぜひ、実際にpineスクリプトを使って、自分自身のカスタムインジケーターを作成してみてください。

参考文献:

 

【TradingView】Pine Script関連のまとめ

【TradingView】Pine Script関連のまとめ
【tradingview】pineスクリプトでの自動売買手法   【tradingview】pineスクリプトの基礎知識と使い方解説   【tradingview】pineスクリプトのカスタムインジケーター作成入門   【tradingvi...

 

オンラインスクールを講師として活用する!

【完全無料】使えるプログラミングスクール体験セミナー
【完全無料】使えるプログラミングスクール体験セミナー WEB制作の無料教材がここにきてどんどん増えてきてるので、使えるものをまとめようと思います。 TecAcademy(テックアカデミー) TechAcademyの無料体験 Samurai ...

 

0円でプログラミングを学ぶという選択

タイトルとURLをコピーしました