カスタマイズされたバックテスト開始時間戦略


作成日: 2023-09-26 20:53:15 最終変更日: 2023-09-26 20:53:15
コピー: 4 クリック数: 651
1
フォロー
1617
フォロワー

概要

このポリシーの目的は,ユーザーにカスタマイズされたフィードバックの起動時間を許可して,より柔軟でカスタマイズされたフィードバックを実現することです.

戦略原則

この戦略は,pineスクリプトのtimeとtimestamp関数を使用してカスタマイズされた反測起動時間を実現する.

まず,ユーザーに設定でカスタマイズされた反測開始年,月,日,時間,分を入力させます. そして,これらの入力を使用してタイムテーブルを作成し,startTime変数に保存します.

策略の条件判断に,startTime条件を新たに追加した.現在の時間 (startTime) より大きいか等しい場合にのみ,策略が起動する.

例えば

longCondition = crossover(sma(close, 14), sma(close, 28)) 

if (longCondition and startTime) 

  strategy.entry("My Long Entry Id", strategy.long)

これにより,カスタマイズされた反測開始時間を実現できる. ユーザーは,ハードコードの時間のみに制限されるのではなく,必要な柔軟な設定で反測開始時間を設定できます.

優位分析

このカスタマイズされた回測起動時間の戦略には以下の利点があります.

  1. より柔軟性: ユーザは,特定の固定された時間点に制限されずに,完全にカスタマイズされた反省の開始時間を設定できます.

  2. よりリアル:反測の開始時間を戦略が実際に実行される時間として設定することができ,反測を実際の市場状況により近いものにします.

  3. 便利なイベント駆動反射:特定のイベントを対象に反射を行うために,特定のイベントの発生時間に応じて起動時間を設定できます.

  4. 条件調整の便利さ:反測の開始条件を非常に簡単に調整することができ,異なる段階に対して標的型反測を行う.

  5. 繰り返し可靠性:反測の起動時間をパラメータ化して,繰り返し実行して信頼性の高い反測結果を得ることができる.

リスク分析

カスタマイズされた反射の起動時間を使用すると,いくつかのリスクがあります.

  1. 回測結果は起動時間に依存する:異なる起動時間は,回測結果に大きな差異を引き起こす可能性があります.

  2. 開始時刻を慎重に選択してください. 不合理な開始時刻は,実際の状況に反映されないように,誤ったフィードバックを発生させる可能性があります.

  3. 曲線適合のリスクを増やす: スタートタイムを調整することで過去データに適合しやすいため,過適合のリスクが生じます.

  4. テスト結果の比較性を低下させる:この戦略のテスト結果は,固定起動時間のテスト結果と比較性が低い.

対応方法:

  1. テストは繰り返し実施し,結果への影響が評価される.

  2. 大事な出来事の時期を起動時間として選択し,反省誤差を最小限に抑えます.

  3. スタート時刻を慎重に調整し,過去データに過度に適合しないようにしてください.

  4. 固定起動時の反射を基準として保存し,カスタマイズされた反射と比較する.

最適化の方向

このカスタマイズされた反測起動時間戦略は,以下の点で最適化できます.

  1. 開始と終了時間をカスタマイズし,完全な回測時間ウィンドウの柔軟な配置を実現します.

  2. 特定の日付,相対日付,イベントドライブなど,複数の時間モードをサポートし,回帰時間の配置をよりスマートに便利にします.

  3. グラフィカルな配置インターフェイスがサポートされ,時間パラメータの設定が直感的にできます.

  4. 年間,月,日,時間,分,秒など,異なる時間粒度設定をサポートします.

  5. 測定時間設定を記録し,結果を再現し,追跡し,比較できるようにする.

  6. 時間の配置が不適切な校正を加え,不合理な時間の配置が反測の質に影響を及ぼすのを避ける.

  7. スタートタイム・バインド機能が提供され,一鍵でスタートタイムが複数のポリシーに同期されます.

要約する

この戦略は,カスタマイズ可能で柔軟な反測開始時間配置を実現し,反測の制限を軽減して,実況状況により近い状態にすることができる.しかし,反測結果が起動時間に依存することを警戒し,反測の誤差を減らすために,複数の反測,イベントドライブの措置なども必要である.この戦略には,よりスマートで便利な反測開始時間配置を実現するために,多くの最適化方向があります.

ストラテジーソースコード
/*backtest
start: 2022-09-19 00:00:00
end: 2023-09-25 00:00:00
period: 2d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("C320up Strategy Tester Start Time", overlay = true)
// Copy and paste below into your strategy
// Strategy Tester Start Time
xYear = input(2018, title = "Start Year")
xMonth = input(01, title = "Start Month", minval = 01, maxval = 12)
xDay = input(01, title = "Start Day", minval = 01, maxval = 31)
xHour = input(00, title = "Start Hour", minval = 00, maxval = 23)
xMinute = input(00, title = "Start Minute", minval = 00, maxval = 59)
startTime = time >= timestamp(xYear, xMonth, xDay, xHour, xMinute)
// End copy and paste
// Add (and startTime) at the end of your condition/s to activate

// The strategy below is just an example
longCondition = crossover(sma(close, 14), sma(close, 28))
if (longCondition and startTime)
    strategy.entry("My Long Entry Id", strategy.long)
shortCondition = crossunder(sma(close, 14), sma(close, 28))
if (shortCondition and startTime)
    strategy.entry("My Short Entry Id", strategy.short)
// Happy trading!