Pineスクリプト入門#9では、Pineスクリプトを使ったストラテジーの作成で「売りのみ」「買いのみ」「売り買い両方」の売買方向を指定する方法をご紹介します。
「strategy.risk.allow_entry_in」を使ったストラテジースクリプト
「strategy.risk.allow_entry_in」関数とは?
この関数を使うことで「買いのみのポジションを許可する」「売りのみのポジションを許可する」を指定することができます。
「strategy.risk.allow_entry_in」に使える引数
strategy.direction.all:「売り」「買い」どちらも許可する(デフォルト)。
strategy.direction.long:「買い」のポジションのみ許可する。
strategy.direction.short:「売り」のポジションのみ許可する。
「strategy.risk.allow_entry_in」を使ってスクリプト作成
使い方は非常にシンプルで、下記コードを加えるだけで機能します。
買いポジションのみを許可する場合は、
//買いポジションのみ許可
strategy.risk.allow_entry_in(strategy.direction.long)
売りポジションのみを許可する場合は、
//売りポジションのみ許可
strategy.risk.allow_entry_in(strategy.direction.short)
売り買い両方を許可する場合は、
//両方のポジションを許可
strategy.risk.allow_entry_in(strategy.direction.all)
デフォルトが「strategy.direction.all」なので両方のポジションを許可したい場合は、改めて指定する必要はありません。
ダイアログで売買方向を指定する
inputを使ってダイアログで売買方向を指定できるようにしてみましょう。
//売買方向の設定
direction = input(0, title="売買方向", minval = -1, maxval = 1)
strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long ))
「input」を使って、売買方向の入力値を最大「1」、最小「‐1」、デフォルト「0」に設定しました。
続いて、「strategy.risk.allow_entry_in」と三条件演算子を組み合わせ、値が「0」の場合は「strategy.direction.all」、値が「0以下」の場合は「strategy.direction.short」、値が「それ以外(1の場合)」は「strategy.direction.long」となるようコードを書きました。
つまり、ダイアログの”売買方向”を「‐1」にすると「売りのみ」、「1」にすると「買いのみ」を指定できるようになりました。
今回のまとめ
今回は「strategy.risk.allow_entry_in」を使って売買方向を指定する方法をご紹介しました。
バックテストでは、買い、売り、どちらかのみを指定してテストしたい場合があると思います。そんな時は、「strategy.risk.allow_entry_in」を使って簡単に指定することができます!今回ご紹介したコードをコピペするだけでどんなスクリプトにも適用できるので是非使ってみてください。
今回は以上です。ありがとうございました。
コメント