マルチタイムフレームトレンド決定戦略


作成日: 2023-12-28 11:57:00 最終変更日: 2023-12-28 11:57:00
コピー: 0 クリック数: 641
1
フォロー
1623
フォロワー

マルチタイムフレームトレンド決定戦略

概要

この戦略は,4つの異なる時間枠を使用して,トレンドの方向を判断し,長期トレンドを発見し,同時に短線を入場時間として使用します. 4つの時間枠 (日線,日線,日線,15日線,月線) の開場価格がすべて閉場価格より低ければ,長期の看板傾向と判断します. 4つの時間枠の開場価格がすべて閉場価格より高ければ,長期の看板傾向と判断します.

戦略原則

この戦略は4つの時間枠を使用します. 日線,周線,15日線,月線. この4つの時間枠の開場価格と閉場価格の大きさの関係に基づいて,長期のトレンド方向を判断します.

日線,周線,15日線,月線の開場価格が閉場価格より低かったとき,この4つの時間枠で,価格は上昇傾向を示し,この時点で多頭動向と長期看板と判断する.

逆に,この4時間枠の開場価格がすべて閉場価格より高い場合,この4時間枠で価格が下落傾向を示し,空想的な動きとして判断され,長期の下落である.

長期トレンドの方向を判断した後,戦略は,ショートラインが買い/売りシグナルを生むときにポジションを開きます.つまり,この戦略は,長線を使用して大トレンドを判断し,ショートラインを使用して特定の入場時間を決定します.

優位分析

この戦略は以下の利点があります.

  1. 複数の時間枠で判断し,判断の精度を高めます.

4つの異なるレベルのタイムフレームを使用して,長期のトレンドを総合的に判断することで,判断の正確性を高め,短期市場の騒音に惑わされないようにすることができます.

  1. 戦略の柔軟性

長線枠を使って大方向を判断し,同時に短線を利用して操作シグナルを生成し,戦略が柔軟で,短線のチャンスを捉えながらも,主要なトレンドから逸脱しない.

  1. パラメータはシンプルで簡単に実行できます.

この戦略は,主に指標が4時間枠のみの開場価格と閉場価格を判断し,パラメータの設定はシンプルで,実行しやすい.

リスク分析

この戦略にはいくつかのリスクがあります.

  1. 長期にわたる傾向の転換

長期の看板の傾向が逆転して長期の看板に変われば,この戦略が早期に判断できず,大きな損失をもたらす可能性があります.このとき,人工の介入または停止設定が必要になります.

  1. 短期的にはうまくいかない

この戦略は,主にショートラインの発生信号に依存して,特定の入場時間を決定する.短期間の運行がうまくいかない場合,適切な時間にポジションを開けられない場合,全体的な戦略の効果に影響を与える.このとき,ショートラインパラメータを調整するかショートライン戦略を最適化することができます.

最適化の方向

この戦略は,さらに改善できる余地があります.

  1. ストップ・ロスの策略を増やす

移動ストップまたはワンストップを設定して最大損失を制御できます.

  1. ショートライン戦略の最適化

異なるショートライン指標をテストして,より適切なショートライン戦略を見つけ,入場効果を向上させることができます.

  1. ポジションの動的調整

市場変動に応じてポジションを動的に調整し,トレンドがより明確になるとポジションを増やすことができます.

  1. 機械学習の組み合わせ

大量のデータを収集し,機械学習の方法を使用してパラメータとルールを動的に最適化できます.

要約する

この戦略は,複数のタイムフレームを越えてトレンドの方向を判断し,長短線を組み合わせた考え方を使用し,大きなトレンドの判断を保証するとともに,短線の機会を利用して入場し,全体的な運行ロジックは明確で合理的で,実装は簡単で,効果的なトレンド追跡戦略です. ストップ・ローズ,ダイナミック・ポジション・マネジメントなどの技術の導入とともに,この戦略には大きな改善の余地があり,実践と最適化の価値があります.

ストラテジーソースコード
/*backtest
start: 2023-11-27 00:00:00
end: 2023-12-27 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("[RichG] Easy MTF Strategy", overlay=false)

TF_1_time = input("D", "Timeframe 1")
TF_2_time = input("5D", "Timeframe 2")
TF_3_time = input("15D", "Timeframe 3")
TF_4_time = input("45D", "Timeframe 4")

transaction_size = input(1, "Contract/Share Amount")

src = close, len = 20
out = sma(src, len)
width = 5
upcolor = green
downcolor = red
neutralcolor = blue
linestyle = line

TF_1 = request.security(syminfo.tickerid, TF_1_time, open) < request.security(syminfo.tickerid, TF_1_time, close) ? true:false
TF_1_color = TF_1 ? upcolor:downcolor

TF_2 = request.security(syminfo.tickerid, TF_2_time, open) < request.security(syminfo.tickerid, TF_2_time, close) ? true:false
TF_2_color = TF_2 ? upcolor:downcolor

TF_3 = request.security(syminfo.tickerid, TF_3_time, open) < request.security(syminfo.tickerid, TF_3_time, close) ? true:false
TF_3_color = TF_3 ? upcolor:downcolor


TF_4 = request.security(syminfo.tickerid, TF_4_time, open) < request.security(syminfo.tickerid, TF_4_time, close) ? true:false
TF_4_color = TF_4 ? upcolor:downcolor

TF_global = TF_1 and TF_2 and TF_3 and TF_4 
TF_global_bear = TF_1 == false and TF_2 == false and TF_3 == false and TF_4 == false
TF_global_color = TF_global ? green : TF_global_bear ? red : white
TF_trigger_width = TF_global ? 6 : width

plot(1, style=linestyle, linewidth=width, color=TF_1_color)
plot(5, style=linestyle, linewidth=width, color=TF_2_color)
plot(10, style=linestyle, linewidth=width, color=TF_3_color)
plot(15, style=linestyle, linewidth=width, color=TF_4_color)
plot(25, style=linestyle, linewidth=4, color=TF_global_color)    

exitCondition_Long = TF_global_bear
exitCondition_Short = TF_global

longCondition = TF_global
if (longCondition)
    strategy.entry("MTF_Long", strategy.long, qty=transaction_size, when=strategy.position_size == 0)

shortCondition = TF_global_bear
if (shortCondition)
    strategy.entry("MTF_Short", strategy.short, qty=transaction_size, when=strategy.position_size == 0)
    
strategy.close("MTF_Long", when=exitCondition_Long)    
strategy.close("MTF_Short", when=exitCondition_Short)