[Trading View Pine ストラテジー] バックテスト期間の指定方法

通常、Trading View でストラテジーを作成すると、直近データから遡れる分(上限があったはず、どこかで見たけど忘れた…)のバックテストが行われます。

とりあえず「最近の相場で勝てるロジックか」を判断したい場合には良いのですが、「2017年末のお祭り相場も入ってて、本当に勝てるのか分からない」とか「年始の暴落相場だけ検証したい」とか、期間を絞ってテストしたい場合もあると思います。


テスト期間の絞り方

というわけで、テスト期間を絞るストラテジーはこちら。エントリー方法は適当(新規作成時のデフォルト)。

//@version=3
strategy("バックテスト期間絞込み", overlay=true)

// テスト期間
fromYear = input(2018, minval = 1900, maxval = 2100, title = "From Year")
fromMonth = input(02, minval = 01, maxval = 12, title = "From Month")
fromDay = input(01, minval = 01, maxval = 31, title = "From day")
toYear = input(2018, minval = 1900, maxval = 2100, title = "To Year")
toMonth = input(05, minval = 01, maxval = 12, title = "To Month")
toDay = input(31, minval = 01, maxval = 31, title = "To day")

startTime = timestamp(fromYear, fromMonth, fromDay, 00, 00)
endTime   = timestamp(toYear, toMonth, toDay, 00, 00)
isWork = startTime <= time and  time <= endTime
bgcolor(isWork ? black : white, title="テスト期間")

longCondition = crossover(sma(close, 14), sma(close, 28))
if (longCondition and isWork)
    strategy.entry("My Long Entry Id", strategy.long)
    
shortCondition = crossunder(sma(close, 14), sma(close, 28))
if (shortCondition and isWork)
    strategy.entry("My Short Entry Id", strategy.short)

年、月、日をそれぞれ入力し、timestamp() と time() 関数を使ってテスト範囲を絞り込み。テスト範囲の確認結果を isWork 変数に設定しておき、エントリー条件のチェックと合わせて確認しています。

また、年月日の入力値を変更すると、リアルタイムに反映されます。あと、テスト対象期間が分かりやすいように、bgcolor も使ってます。


おわりに

有料(¥100)にしてるけど、これで内容は全部です。募金してくれる人がいれば、ジュース代としていただけると嬉しい。Pine スクリプトは、インデントくずれが起きるようなので、コピペ時には注意してください。


マガジン


コメント用note(未購入者向け)


干し芋


続きをみるには

残り 0字

¥ 100

期間限定 PayPay支払いすると抽選でお得に!

サポート頂けると励みになります BTC,BCH: 39kcicufyycWVf8gcGxgsFn2B8Nd7reNUA LTC: LUFGHgdx1qqashDw4WxDcSYQPzd9w9f3iL MONA: MJXExiB7T7FFXKYf9SLqykrtGYDFn3gnaM