この戦略の主な考え方は,複数のタイムフレームでスーパートレンド指標を使用して取引シグナルを生成し,それを日中のオープンポジションをスクエアするためにイントラデイフィルターと組み合わせ,マルチタイムフレーム取引を実施し,信号品質を改善することです.
戦略は,最初にスーパートレンド関数を呼び,パラメータ mult と len を渡し,スーパートレンドライン superTrend と方向 dir を生成する.その後,スーパートレンドラインチャートをプロットする.入力パラメータは,内日オープンポジションをスクエアするかどうかを制御する.イントラデイが真である場合,内日オープンポジションは午後2時45分後にスクエアされる.
シグナル生成規則は: 閉じる価格がスーパートレンドラインの上にあるとき,購入信号が生成される. 閉じる価格がスーパートレンドライン下にあるとき,販売信号が生成される. 購入信号が受信されると,ロングポジションを開くために購入オーダーが実行される. 販売信号が受信されると,ショートポジションを開くために販売オーダーが実行される. 日中のフィルター・イントラデイが有効になっている場合,つまりtrueに設定されている場合,すべてのオープンロングおよびショートポジションは毎日午後2時45分後に閉鎖される.
この戦略の最大の利点は,マルチタイムフレームの取引シグナル生成を実装するためにシンプルで実用的なSupertrend指標を使用することです.Supertrend自体はすでに良い勝ち率とリターンを持っています.また,この戦略には,激しい日中変動による損失を避けるための日中フィルターが含まれています.
さらに,この戦略は非常に簡潔で,非常に少ないコードでコアロジックを実装し,理解し,修正し,拡張することが容易です.これはユーザーにパラメータを調整したり,他の指標を追加したりなど,自分のニーズに応じて大きな柔軟性を提供します.
この戦略の主なリスクは,スーパートレンド指標が一定の遅れを伴い,追加の損失につながる可能性があること.さらに,固定多時間枠取引は,短期的には取引機会を逃す可能性があります.
これらのリスクを軽減するために,最適なパラメータ組み合わせを見つけるためにスーパートレンドパラメータ mult と len を最適化することが推奨される.他の指標もスーパートレンドを補完し,戦略の安定性を高めるためにより多くの要因を使用するためにテストすることができます.さらに,固定的な日中のスクエアオフ時間を削除し,変動条件に基づいてスクエアオフタイムを決定するために動的なメカニズムを使用することができます.
この戦略の主要な最適化方向は以下の通りである.
最適なパラメータの組み合わせを見つけるために,複数のセットのスーパートレンドパラメータをテストします.
他のテクニカルインジケーター (キャンドルスタイクパターン,移動平均等) を追加して,より多くの要素でシグナルをフィルターします.
早期のスクエアオフを減らすために,特定の日中のスクエアオフのタイミングを最適化し,動的に調整する.
ストップ・ロスのメカニズムを追加します. 固定パーセントストップ・ロスやATRストップ・ロスなどです.
適切な資本利用率とポジションサイズ戦略をテストする.
パラメータの安定性を確認するための長い時間間のバックテスト.
概要すると,このSupertrendマルチタイムフレームバックテスト戦略は非常に実用的です. シンプルなSupertrend指標でマルチタイムフレーム取引を実施し,イントラデイフィルターで損失を制御します.最適化には大きな余地があり,ユーザーは自分のニーズに応じてパラメータを調整したり,他の技術指標と組み合わせることができます.バックテストパフォーマンスも比較的安定して信頼性があります. 全体的に言えば,この戦略は中長期トレンド取引に適しており,初心者が学習し,修改を実践するのに良いです.
/*backtest start: 2023-11-27 00:00:00 end: 2023-12-04 00:00:00 period: 45m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //@Gurjant_Singh IISMA-Indian Institute of stock Market Analysis strategy("SupterTrend ", overlay=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=300, calc_on_order_fills=false, calc_on_every_tick=false) mult = input(type=input.float, defval=3) len = input(type=input.integer, defval=5) [superTrend, dir] = supertrend(mult, len) plot(superTrend) intrady = input(false, "Do you want to exit intrday position", type = input.bool) IntraDay_SquareOff = minute >= 45 and hour >= 14 buy = close > superTrend sell = close < superTrend if buy strategy.entry("Buy", true) if sell strategy.entry("sell", false) if intrady and IntraDay_SquareOff strategy.close("buy") strategy.close("sell")