資源の読み込みに... 荷物...

ダイナミック・ムービング・メアージャー・クロスオーバー・トレンド 適応型リスク管理による戦略

作者: リン・ハーンチャオチャン開催日:2024年12月27日 15:08:40
タグ:SMAマルチTPSL

img

概要

この戦略は,ダイナミックなテイク・プロフィートとストップ・ロスのメカニズムを組み込んだ二重移動平均クロスオーバー信号に基づいたトレンドフォローシステムである. 5 期と 12 期のシンプル・ムービング・平均 (SMA) を利用して取引信号を生成し,テイク・プロフィートとストップ・ロスのレベルをダイナミックに調整することでリスク・リワワード比率を最適化する. 初期テイク・プロフィートは10%で,ストップ・ロスは5%で設定され,価格が好調に動くとレベルはそれぞれ20%と2.5%に調整される.

戦略の原則

基本論理は,高速 (5期) と遅い (12期) 移動平均間のクロスオーバー関係に依存している.高速MAが遅いMAを超えると購入信号が生成され,高速MAが遅いMAを下回るとポジションが閉鎖される.この戦略のユニークさは,動的なリスク管理メカニズムにあります.ポジションエントリー後,システムは価格動きを継続的に監視し,リスクを制御しながら利益を最大化するために,ダイナミックに利益とストップロスのレベルを調整します.

戦略 の 利点

  1. クラシックなダブルMAクロスオーバー戦略を活用し,明確な信号,理解し実行しやすい
  2. ダイナミックな収益/ストップ損失メカニズムは,実績の利益を効果的に保護し,引き上げを防止します
  3. 戦略パラメータは,異なる市場特性に柔軟に調整できます.
  4. 総合的なリスク管理メカニズムは,単一の取引リスクを効果的に制御します
  5. 明確なコード構造は,保守と最適化を容易にする

戦略リスク

  1. 異なる市場で誤った信号を生成し,頻繁な取引につながる可能性があります
  2. 迅速な逆転シナリオでは,潜在的に重要な引き上げ
  3. 不適切なパラメータ設定は戦略のパフォーマンスに影響を与える可能性があります.
  4. 市場の流動性問題は,ストップロスの実行に影響を与える可能性があります. リスク管理の勧告
  • トレンドフィルターを追加する
  • パラメータ選択を最適化
  • 市場流動性をリアルタイムで監視する
  • 総合的なマネーマネジメントシステムを確立する

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

  1. トレンド強度指標を導入し,市場シグナルをフィルタリングする
  2. 信号 の 信頼性 を 向上 する ため に 音量 要素 を 組み込む こと を 考え て ください
  3. リスク・リターン比率を高めるため,メリット/ストップ・ロスのパラメータを最適化
  4. 市場変動調整メカニズムを追加する
  5. ポジション サイズ システム の 改善

概要

この戦略は,クラシックな移動平均クロスオーバー信号と革新的なダイナミックリスク管理を組み合わせて,トレンドを効果的に把握し,リスクを動的に制御する.戦略の設計は明確で,実装は効率的で,良好な実用性と拡張性を示しています.継続的な最適化と改善を通じて,この戦略は実際の取引で安定した収益を達成するための約束を示しています.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("My Moving Average Crossover Strategy with Take Profit and Stop Loss", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
//risk_free_rate = float(request.security("IRUS", "D", close)/request.security("IRUS", "D", close[1]) - 1  ))




// MA periods
fastLength = input.int(5, title="Fast MA Length")
slowLength = input.int(12, title="Slow MA Length")




// Take Profit and Stop Loss
takeProfitLevel = input(10, title="Take Profit (пункты)") // Take profit % from the last price
stopLossLevel = input(5, title="Stop Loss (пункты)") // Stop loss  % from the last price
takeProfitLevel_dyn = input(20, title="Dynamic Take Profit (пункты)") // Move TP if current_price higher buy_px
stopLossLevel_dyn =  input(2.5, title="Dynamic Stop Loss (пункты)") // S Move SL if current_price higher buy_px


// Вычисление скользящих средних
fastMA = ta.sma(close, fastLength)
slowMA= ta.sma(close, slowLength)


// Conditions for Sell and Buy
longCondition = ta.crossover (fastMA, slowMA) // покупаем, если короткая MA персекает длинную снизу-вверх
shortCondition = ta.crossunder(fastMA, slowMA) // продаем, если короткая MA персекает длинную сверху-вниз




// Buy position condition
if (longCondition)
    strategy.entry("Buy", strategy.long)






// Dynamic TP SL leveles
takeProfitPrice = strategy.position_avg_price * (1+ takeProfitLevel / 100)
stopLossPrice = strategy.position_avg_price * (1-stopLossLevel / 100)


entryPrice = strategy.position_avg_price




if (strategy.position_size > 0) // если есть открытая позиция




    // takeProfitPrice := entryPrice * (1+ takeProfitLevel / 100)
    // stopLossPrice := entryPrice * (1-stopLossLevel / 100)


    // // Перемещение Stop Loss и Take Profit
    if (close > entryPrice)
   
        takeProfitPrice := close * (1+ takeProfitLevel_dyn / 100)
        stopLossPrice := close * (1- stopLossLevel_dyn/ 100)






if (shortCondition)
    strategy.close("Buy")




strategy.exit("Take Profit/Stop loss", "Buy", limit=takeProfitPrice, stop=stopLossPrice)


// Drawing MA lines
plot(fastMA, color=color.blue, title="Fast Moving Average")
plot(slowMA, color=color.orange, title="Slow Moving Average")




// Визуализация
plot(longCondition ? na : takeProfitPrice, title="Take Profit Level", color=color.green, linewidth=1, style=plot.style_line)
plot(longCondition ? na: stopLossPrice, title="Stop Loss Level", color=color.red, linewidth=1, style=plot.style_line)







関連性

もっと