Sumber dimuat naik... memuat...

Trend silang purata bergerak dinamik mengikut strategi dengan pengurusan risiko yang beradaptasi

Penulis:ChaoZhang, Tarikh: 2024-12-27 15:08:40
Tag:SMAMATPSL

img

Ringkasan

Strategi ini adalah sistem mengikuti trend berdasarkan isyarat crossover purata bergerak berganda, menggabungkan mekanisme mengambil keuntungan dan menghentikan kerugian dinamik. Ia menggunakan purata bergerak mudah (SMA) 5 tempoh dan 12 tempoh untuk menghasilkan isyarat perdagangan, mengoptimumkan nisbah risiko-balasan melalui penyesuaian dinamik tahap mengambil keuntungan dan menghentikan kerugian.

Prinsip Strategi

Logik teras bergantung pada hubungan silang antara purata bergerak pantas (5-periode) dan perlahan (12-periode). Isyarat beli dihasilkan apabila MA pantas melintasi di atas MA perlahan, sementara kedudukan ditutup apabila MA pantas melintasi di bawah MA perlahan. Keunikan strategi ini terletak pada mekanisme pengurusan risiko dinamiknya: selepas memasuki kedudukan, sistem terus memantau pergerakan harga dan secara dinamik menyesuaikan tahap mengambil keuntungan dan berhenti kerugian untuk memaksimumkan keuntungan sambil mengawal risiko.

Kelebihan Strategi

  1. Menggunakan strategi silang MA berganda klasik dengan isyarat yang jelas, mudah difahami dan dilaksanakan
  2. Mekanisme mengambil keuntungan / menghentikan kerugian dinamik berkesan melindungi keuntungan yang dicapai dan menghalang pengambilan
  3. Parameter strategi boleh disesuaikan dengan fleksibel untuk ciri pasaran yang berbeza
  4. Mekanisme pengurusan risiko yang komprehensif mengawal risiko perdagangan tunggal dengan berkesan
  5. Struktur kod yang jelas memudahkan penyelenggaraan dan pengoptimuman

Risiko Strategi

  1. Boleh menghasilkan isyarat palsu di pasaran yang berbeza, yang membawa kepada perdagangan yang kerap
  2. Potensi pengeluaran yang signifikan dalam senario pembalikan pantas
  3. Tetapan parameter yang tidak betul boleh mempengaruhi prestasi strategi
  4. Isu-isu kecairan pasaran boleh memberi kesan kepada pelaksanaan stop-loss Cadangan pengurusan risiko:
  • Tambah penapis trend
  • Mengoptimumkan pilihan parameter
  • Memantau kecairan pasaran dalam masa nyata
  • Menubuhkan sistem pengurusan wang yang komprehensif

Arahan pengoptimuman

  1. Memperkenalkan penunjuk kekuatan trend untuk menapis isyarat pasaran pelbagai
  2. Pertimbangkan untuk memasukkan faktor jumlah untuk meningkatkan kebolehpercayaan isyarat
  3. Mengoptimumkan parameter mengambil keuntungan/berhenti kerugian untuk meningkatkan nisbah risiko-balasan
  4. Tambah mekanisme penyesuaian turun naik pasaran
  5. Meningkatkan sistem ukuran kedudukan

Ringkasan

Strategi ini berkesan menangkap trend dan secara dinamik mengawal risiko dengan menggabungkan isyarat crossover purata bergerak klasik dengan pengurusan risiko dinamik yang inovatif. Reka bentuk strategi adalah jelas, pelaksanaan adalah cekap, dan ia menunjukkan kepraktisan dan skalabiliti yang baik. Melalui pengoptimuman dan peningkatan yang berterusan, strategi ini menunjukkan janji untuk mencapai pulangan yang stabil dalam perdagangan sebenar.


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







Berkaitan

Lebih lanjut