Sumber dimuat naik... memuat...

Strategi Rasio Risiko-Balas yang Dioptimumkan Berdasarkan Rintasan Purata Bergerak

Penulis:ChaoZhang, Tarikh: 2024-12-27 15:46:05
Tag:MASMARRSLTP

img

Ringkasan

Strategi ini adalah sistem perdagangan automatik berdasarkan isyarat crossover purata bergerak, yang dioptimumkan melalui nisbah risiko-balasan tetap.

Prinsip Strategi

Logik teras bergantung pada isyarat silang yang dihasilkan oleh dua purata bergerak (10 tempoh dan 30 tempoh). Sistem menghasilkan isyarat panjang apabila MA pantas melintasi di atas MA perlahan, dan isyarat pendek apabila MA pantas melintasi di bawah. Selepas setiap kemasukan, sistem secara automatik mengira tahap stop-loss berdasarkan peratusan kerugian 2% yang telah ditetapkan dan menetapkan sasaran mengambil keuntungan mengikut nisbah risiko-balasan 2.5. Pendekatan ini memastikan setiap perdagangan mempunyai ciri risiko-balasan yang konsisten.

Kelebihan Strategi

  1. Pengurusan Risiko yang Sistematik: Mencapai pengurusan modal yang standard melalui peratusan stop-loss tetap dan nisbah risiko-balasan
  2. Mekanisme Dagangan Objektif: Sistem isyarat berdasarkan persilangan MA menghilangkan bias penilaian subjektif
  3. Kebolehsesuaian Parameter yang Kuat: Parameter utama seperti peratusan stop-loss dan nisbah risiko-balasan boleh diselaraskan dengan fleksibel
  4. Tahap Automasi Tinggi: Proses automatik dari penjanaan isyarat hingga pengurusan kedudukan mengurangkan kesilapan manusia

Risiko Strategi

  1. Risiko pasaran yang berbelit-belit: Isyarat silang MA boleh menghasilkan pecah palsu yang kerap di pasaran yang berbeza
  2. Risiko tergelincir: Harga pelaksanaan sebenar mungkin jauh dari harga isyarat di pasaran yang bergerak cepat
  3. Risiko Stop-Loss tetap: Peratusan Stop-Loss tunggal mungkin tidak sesuai dengan semua keadaan pasaran
  4. Kos Suruhanjaya: Dagangan yang kerap boleh mengakibatkan kos transaksi yang tinggi

Arahan Pengoptimuman Strategi

  1. Melaksanakan Penapis Trend: Tambah purata bergerak jangka panjang atau penunjuk trend lain untuk menapis isyarat palsu
  2. Mekanisme Stop-Loss Dinamik: Sesuaikan peratusan stop-loss berdasarkan turun naik pasaran untuk daya adaptasi yang lebih baik
  3. Pengesahan Jumlah: Memasukkan penunjuk jumlah untuk mengesahkan kesahihan pecah
  4. Pengoptimuman Masa Masuk: Tunggu penarikan balik selepas persimpangan MA sebelum memasuki kedudukan

Ringkasan

Strategi ini menggabungkan kaedah analisis teknikal klasik dengan konsep pengurusan risiko moden untuk membina sistem dagangan yang lengkap. Walaupun ia mempunyai batasan tertentu, pengoptimuman dan penambahbaikan berterusan membolehkan strategi untuk mengekalkan prestasi yang stabil dalam keadaan pasaran yang berbeza. Kuncinya terletak pada sentiasa menyesuaikan tetapan parameter berdasarkan hasil dagangan sebenar untuk mencari konfigurasi yang paling sesuai untuk persekitaran pasaran semasa.


/*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=5
strategy("SOL 15m 2.5 R:R Strategy", overlay=true, margin_long=100, margin_short=100, initial_capital=10000, commission_type=strategy.commission.percent, commission_value=0.1)

//---------------------------------------------------
// User Inputs
//---------------------------------------------------
// sym = input.symbol("swap", "Symbol")
timeframe = input.timeframe("15", "Timeframe")

fastLength  = input.int(10, "Fast MA Length")
slowLength  = input.int(30, "Slow MA Length")

stopLossPerc = input.float(2.0, "Stop Loss %", step=0.1) // This is an example; adjust to achieve ~45% win rate
RR           = input.float(2.5, "Risk to Reward Ratio", step=0.1)

//---------------------------------------------------
// Data Sources
//---------------------------------------------------
price = request.security("swap", timeframe, close)

// Compute moving averages
fastMA = ta.sma(price, fastLength)
slowMA = ta.sma(price, slowLength)

// Entry Conditions
longCondition  = ta.crossover(fastMA, slowMA)
shortCondition = ta.crossunder(fastMA, slowMA)

//---------------------------------------------------
// Stop Loss and Take Profit Calculation
//---------------------------------------------------
var entryPrice = 0.0

if (strategy.position_size == 0) // not in a position
    if longCondition
        // Long entry
        entryPrice := price
        strategy.entry("Long", strategy.long)

    if shortCondition
        // Short entry
        entryPrice := price
        strategy.entry("Short", strategy.short)

if strategy.position_size > 0
    // We are in a long position
    if strategy.position_avg_price > 0 and strategy.position_size > 0
        longStop  = strategy.position_avg_price * (1 - stopLossPerc/100)
        longTarget = strategy.position_avg_price * (1 + (stopLossPerc/100)*RR)
        strategy.exit("Long Exit", "Long", stop=longStop, limit=longTarget)

if strategy.position_size < 0
    // We are in a short position
    if strategy.position_avg_price > 0 and strategy.position_size < 0
        shortStop  = strategy.position_avg_price * (1 + stopLossPerc/100)
        shortTarget = strategy.position_avg_price * (1 - (stopLossPerc/100)*RR)
        strategy.exit("Short Exit", "Short", stop=shortStop, limit=shortTarget)

//---------------------------------------------------
// Plotting
//---------------------------------------------------
plot(fastMA, color=color.new(color.teal, 0), title="Fast MA")
plot(slowMA, color=color.new(color.orange, 0), title="Slow MA")


Berkaitan

Lebih lanjut