TradingViewを使った戦略

TradingView(トレーディングビュー)のストラテジー「チャネルブレイクアウト戦略」のpineスクリプトをチェック

TradingView(トレーディングビュー)のストラテジー「チャネルブレイクアウト戦略」のpineスクリプトをチェックのイメージ画像

TraidngView(トレーディングビュー)のプログラミング言語であるPineスクリプトではインジケーターを作成する「study」型のプログラムと、 売買シュミレーション(バックテスト)を行う「strategy(ストラテジー)」型のプログラムに分けることができます。

今回はバックテストを中心としたシュミレーションを行うことのできるストラテジー型のプログラムの例を見てみたいと思います。


「チャネルブレイクアウト戦略」のpineスクリプトをチェック


TradingViewではPineスクリプトで売買の条件を指定し、過去の値動きでどのような結果となったかをシュミレーションすることができます。

ここではTradingViewにデフォルトで登録されている「チャネルブレイクアウト戦略」というストラテジーのPineスクリプトを見ながらストラテジーのプログラムの構造をチェックしてみたいと思います。

このプログラムは一定期間の高値を更新する動きとなった場合に買い、一定期間の安値を更新してきたら売りというシンプルなストラテジーです。

【チャネルブレイクアウト戦略のPineスクリプト】
—————————————————————————————–

//@version=3

strategy(“ChannelBreakOutStrategy”, overlay=true)

length = input(title=”Length”, type=integer, minval=1, maxval=1000, defval=5)

upBound = highest(high, length)
downBound = lowest(low, length)

if (not na(close[length]))
strategy.entry(“ChBrkLE”, strategy.long, stop=upBound + syminfo.mintick, comment=”ChBrkLE”)
strategy.entry(“ChBrkSE”, strategy.short, stop=downBound – syminfo.mintick, comment=”ChBrkSE”)


————————————————————————————

一番上から見てみると、最初に「//@version=3」でいつものようにPineスクリプトのバージョンを指定しています。
次にstrategy()でストラテジーであることを宣言し、名前を「ChannelBreakOutStrategy」と指定し、チャート上にオーバーレイさせるということを「overlay=true」で指定しています。

変数「length」では対象となる期間をユーザーが設定画面で指定できるようにしています。input()で項目のタイトルを“Length”と指定しています。
この「Length」は実際に設定画面でチェックすると日本語に変換され、「期間」と表示されます。
そのほか、入力する「type」(数値のタイプ)を「integer」(整数)と指定しているほか、「minival」(最小値)を1、「maxval」(最大値)を1000と指定し、「defval」(デフォルトの数値)を5と指定しています。

【ストラテジーの設定画面】
TradingView(トレーディングビュー)のストラテジー「チャネルブレイクアウト戦略」の
続いて、変数「upBound」に一定期間の高値、変数「downBound」では一定期間の安値を算出しています。
一定期間の最高値はhighest関数で設定した期間の高値の一番高い価格を算出し、最安値はLowest関数で設定した期間の安値の一番低い価格を算出しています。

この最高値を算出するPineスクリプトを翻訳すると次のような文章になります。

—————————————————————————————-

upBound = highest(high, length)・・・・変数upBoundにlength(期間)内のhigh(高値)のうち、highest(一番高い数値)を代入する。

—————————————————————————————-

そして、いよいよ、注文の発注の命令に移ります。
※本当の注文を出すものではありません。注文を出したとものとしてシュミレーションを行うためのプログラムです。

注文の命令文を見ると、最初に「if (not na(close[length]))」とあります。

この文章が意味するのは、一定期間の終値のデータがない場合には何もしませんというものです。つまり、指定した期間のデータが揃っていない場合は注文しないということを最初に定義しています。

続いて、注文の条件を定義しています。
上段が買いの場合の条件で下段が売りの場合の条件となります。

詳しく見ていくと、上段では「”ChBrkLE”」とこの注文の名前を指定し、次に「strategy.long」で買いの注文としています。
「stop=upBound + syminfo.mintick」でレンジの高値の1ティック上で逆指値買いと指定しています。
掘り下げると、upBoundで算出した最高値に最小値幅(syminfo.mintick)を足した数値、つまり、upBoundの数値を少しでも上回ったら買いとなります。

最後に「comment=”ChBrkLE”」で注文した場所にコメント「”ChBrkLE”」と表示すると指定しています。

下段は「”ChBrkSE”」とこの注文の名前を指定し、次に「strategy.short」で売りの注文としています。
「stop=downBound – syminfo.mintick」でレンジの高値の1ティック上で逆指値買いと指定しています。
最後は同様に「comment=” ChBrkSE “」で注文した場所にコメント「” ChBrkSE “」と表示すると指定しています。

これでPineスクリプトの一通りのプログラミングが終了となります。

シュミレーションの調整は設定画面の「プロパティ」のタブで調整することもできます。



ストラテジーの設定画面の調整項目、検証結果の見方についてはこちらをご覧ください。


TradingView(トレーディングビュー)で使用する情報は、全てTradingView(トレーディングビュー)社に帰属するものであり、当社は、その正確性、完全性を保証するものではありません。同サイトで使用する情報に基づいて行った取引によって発生したいかなる損害・損失について、当社は一切責任を負いかねますのでご了承下さい。最終的な投資判断についてはお客様ご自身でお願い致します。

home_footer > TradingViewを使った戦略 > TradingView(トレーディングビュー)のストラテジー「チャネルブレイクアウト戦略」のpineスクリプトをチェック