Pineスクリプト

@3バックテストの期間を指定する方法 (コード付)【Pineスクリプトの学校】

疑問猫
疑問猫
Pineスクリプトでストラテジーのバックテストを実施する時、期間を指定する方法ってないのかな??
makoto
makoto
そんな方のため、今回はバックテストの期間を指定する方法について解説するよ!

1、バックテストの期間を指定する方法

2021年5月現在のところ、Pineスクリプト公式の機能としてバックテストの期間を指定する方法は存在しない。

そのため、

バックテストの期間を指定するには自分でプログラムコードを作成しなければならない。

ならば、コードを作成しよう!

2、作成したコード

以下に今回作成したコードを記述するので自由に使用していただいて構わない。

start_year = input(title=”バックテスト開始 年”,defval=2021,step=1)
start_month = input(title=”バックテスト開始 月”,defval=1,minval=1,maxval=12,step=1)
start_day = input(title=”バックテスト開始 日”,defval=1,minval=1,maxval=31,step=1)
start_hour = input(title=”バックテスト開始 時間”,defval=1,minval=1,maxval=12,step=1)
start_minute = input(title=”バックテスト開始 分”,defval=1,minval=1,maxval=60,step=1)

end_year = input(title=”バックテスト終了 年”,defval=2022,step=1)
end_month = input(title=”バックテスト終了 月”,defval=12,minval=1,maxval=12,step=1)
end_day = input(title=”バックテスト終了 日”,defval=31,minval=1,maxval=31,step=1)
end_hour = input(title=”バックテスト終了 時間”,defval=1,minval=1,maxval=12,step=1)
end_minute = input(title=”バックテスト終了 分”,defval=1,minval=1,maxval=60,step=1)

test_start = timestamp(start_year,start_month,start_day,start_hour,start_minute)
test_end = timestamp(end_year,end_month,end_day,end_hour,end_minute)

is_time = test_start <= time and test_end >= time

//ここに変数の宣言やエントリーのトリガーを記述

if(is_time)

//ここにエントリーを記述

コードをコピーする場合は以下をクリック。

Copy

このコードを書き足すことで、以下のようにストラテジーの設定画面よりバックテストを実施する期間を指定できるようになる。

3、コードの使用方法

先ほどのコードを、文頭のstrategy(“マイストラテジー”)等の下に貼り付けて(以下画像のグレーの部分)、期間指定したいストラテジーのコードを「//ここにエントリーを記述」の部分にコピーしインデントするだけで使用できる。

しかしこのまま使用するとエラーや警告が出る場合がある。

そのため、なるべく以下の手順を踏んだ方が良い。

(1)変数やエントリー条件とエントリー部分を分離する

ストラテジーのコードは「変数を用意してエントリーの条件を記述する部分」と「実際にエントリーを行う部分」に別れているのでこれらを分離する。

上記のプログラムであれば「longCondition =」で始まる部分や「shortCondition =」で始まる部分は、エントリーする際のトリガーとなっている部分である。

一方「if(longCondition)」で始まる部分や「if (shortCondition)」で始まる部分は、実際にエントリーを行う部分である。

これらを分けておく。

(2)それらを適切な場所に記述する

変数やエントリー条件は「//ここに変数の宣言やエントリーのトリガーを記述」

エントリー部分は「//ここにエントリーを記述」に記述を行う。

先ほどの例であればこんな感じ。

エントリー部分については、インデントを忘れないように注意する。

もしここまでの手順を踏んでなお、エラーなどが出る場合はコメントいただけると嬉しい。

4、終わりに

今回はここまで!もし使用する機会があれば、どんどん活用もらえると嬉しい。

 

ブックマーク・フォロー・コメントよろしくお願いします!

本記事を気に入っていただけたらブックマークお願いします!また、ツイッターもやってるのでフォローよろしくお願いいたします!

Twitter : makoto(@Makoto_beginner)

また、記事中で不明なことや間違い等ありましたら以下のコメント欄からコメントいただけると幸いです。

皆様のコメントをもとにどこよりもわかりやすいブログを目指していきます。

 

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です