多期トレンド戦略

作者: リン・ハーンチャオチャン開催日:2023年12月28日 11:57時
タグ:

img

概要

この戦略は,トレンド指向を決定するために4つの異なるタイムフレームを使用して,短期をエントリーチャンスとして使用しながら,長期トレンドを発見します. 4つのタイムフレーム (毎日,週,15日,月) のオープン価格が閉じる価格よりも低い場合,それは長期上昇傾向として決定されます. 4つのタイムフレームのオープン価格が閉じる価格よりも高い場合,それは長期下落傾向として決定されます. 戦略は長期トレンドを確認して短期信号が生成されるとポジションを開きます.

戦略の論理

この戦略は4つのタイムフレームを使用します.日,週,15日,月.この4つのタイムフレームのオープン価格と終了価格の関係に基づいて長期トレンド方向を決定します.

日時,週日,15日,月間期間のオープン価格が 閉店価格より低い場合,これらの4つの時間枠で価格が上昇傾向を示していることを示します.したがって,それは牛市場と長期的に上昇傾向であると決定されます.

逆に,これらの4つの時間枠のオープン価格が閉じる価格よりも高くなった場合,これらの4つの時間枠で価格が下落傾向を示していることを示します.したがって,それは熊市場と長期の下落傾向と判断されます.

長期的トレンド方向を決定した後,この戦略は短期的に買い/売シグナルが生成されたときにポジションを開きます.つまり,この戦略は,主要なトレンドを決定するために長期を,特定のエントリー機会を決定するために短期を使用します.

利点分析

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

  1. 複数の時間枠による判断は 精度を向上させる

    長期的傾向を包括的に判断するために 4 つの異なる時間枠を使用することで,判断の正確性が向上し,短期的な市場騒音によって誤導されないことができます.

  2. 長期戦略と短期戦略の組み合わせ

    この戦略は,主要トレンドから逸脱せずに短期間の機会を把握できる柔軟性がある.

  3. シンプルなパラメータ,実行が簡単

    この戦略の主な判断指標は,4つのタイムフレームのオープンと終了価格のみです.パラメータ設定はシンプルで実行が簡単です.

リスク分析

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

  1. 長期的傾向の逆転

    長期的に上昇傾向が長期的に下落傾向に逆転した場合,この戦略は迅速に判断することができず,大きな損失につながる可能性があります.この場合は手動介入またはストップ損失を使用する必要があります.

  2. 短期的な業績が悪かった

    この戦略は,特定のエントリー機会を決定するために主に短期信号に依存する.短期パフォーマンスが悪くて,適切なタイミングでポジションを開くことができない場合,それは全体的なパフォーマンスに影響を与える.短期パラメータは調整され,または短期戦略は最適化することができます.

オプティマイゼーションの方向性

この戦略にはさらに最適化余地があります.

  1. ストップ損失戦略を追加

    移動またはオーダーストップ損失を最大損失を制御するために設定することができます.

  2. 短期戦略を最適化する

    より適した短期戦略を見つけ,入国業績を改善するために,異なる短期指標をテストすることができます.

  3. 動的に位置を調整

    市場変動に応じて動的に調整したり 傾向が明らかになると ポジションを増やすこともできます

  4. 機械学習を組み合わせる

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

結論

この戦略は,複数のタイムフレームでトレンド方向を決定し,長期と短期を組み合わせる考えを採用し,主要なトレンドの判断を保証し,短期の機会を利用する.全体的な論理は明確で合理的で,実行が簡単で,効果的なトレンドフォロー戦略です.ストップ・ロストやダイナミック・ポジションマネジメントなどのテクニックの導入により,この戦略は改善の余地があり,練習と最適化に価値がある.


/*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)


もっと