TradingViewのストラテジー「チャネルブレイクアウト戦略」をチェック
TraidngView(トレーディングビュー)のプログラミング言語であるPineスクリプトではインジケーターを作成する「study」型のプログラムと、 売買シュミレーション(バックテスト)を行う「strategy(ストラテジー)」型のプログラムに分けることができます。
今回はバックテストを中心としたシュミレーションを行うことのできるストラテジー型のプログラムの例を見てみたいと思います。
「チャネルブレイクアウト戦略」のpineスクリプトをチェック
TradingViewではPineスクリプトで売買の条件を指定し、過去の値動きでどのような結果となったかをシュミレーションすることができます。
ここではTradingViewにデフォルトで登録されている「チャネルブレイクアウト戦略」というストラテジーのPineスクリプトを見ながらストラテジーのプログラムの構造をチェックしてみたいと思います。
このプログラムは一定期間の高値を更新する動きとなった場合に買い、一定期間の安値を更新してきたら売りというシンプルなストラテジーです。
【チャネルブレイクアウト戦略のPineスクリプト】
//@version=4
strategy("ChannelBreakOutStrategy", overlay=true)
length = input(title="Length", type=input.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=4」でPineスクリプトのバージョンを指定しています。
次にstrategy()でストラテジーであることを宣言し、名前を「ChannelBreakOutStrategy」と指定し、チャート上にオーバーレイさせるということを「overlay=true」で指定しています。
変数「length」では対象となる期間をユーザーが設定画面で指定できるようにしています。input()で項目のタイトルを“Length”と指定しています。
この「Length」は実際に設定画面でチェックすると日本語に変換され、「期間」と表示されます。
そのほか、入力する「type」(数値のタイプ)を「integer」(整数)と指定しているほか、「minival」(最小値)を1、「maxval」(最大値)を1000と指定し、「defval」(デフォルトの数値)を5と指定しています。
【ストラテジーの設定画面】
続いて、変数「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のストラテジーをさらに読みたい方へオススメコンテンツ
OANDA証券では、TradingView(トレーディングビュー)の内蔵ストラテジーを活用した取引戦略に関するコンテンツを豊富に提供しています。
どんな相場なら通用するのか相性の良い通貨ペアなど具体的な運用方法を知ることができ、実践取引でも参考にしていただけます。
またOANDA証券では、TradingViewで使えるオリジナルインジケーター(スクリプト)の提供を行っています。
たとえば「市場開始レンジ戦略ストラテジー」では、レンジブレイクを狙ったスクリプトです。
取引に失敗した場合は損切りだけではなく、条件を満たせば反対方向へエントリーするロジックも持ち合わせています。
OANDA証券の口座をお持ちの方は、こういったスクリプトを無料で使うことができます。
ぜひOANDA証券の口座を開設し、実際の取引でスクリプトを活用してみてください。
TradingView(トレーディングビュー)で使用する情報は、全てTradingView(トレーディングビュー)社に帰属するものであり、当社は、その正確性、完全性を保証するものではありません。同サイトで使用する情報に基づいて行った取引によって発生したいかなる損害・損失について、当社は一切責任を負いかねますのでご了承下さい。最終的な投資判断についてはお客様ご自身でお願い致します。
本ホームページに掲載されている事項は、投資判断の参考となる情報の提供を目的としたものであり、投資の勧誘を目的としたものではありません。投資方針、投資タイミング等は、ご自身の責任において判断してください。本サービスの情報に基づいて行った取引のいかなる損失についても、当社は一切の責を負いかねますのでご了承ください。また、当社は、当該情報の正確性および完全性を保証または約束するものでなく、今後、予告なしに内容を変更または廃止する場合があります。なお、当該情報の欠落・誤謬等につきましてもその責を負いかねますのでご了承ください。