Sumber daya yang dimuat... Pemuatan...

Rasio Risiko-Reward Optimized Strategy Berdasarkan Moving Average Crossover

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

img

Gambaran umum

Strategi ini adalah sistem perdagangan otomatis berdasarkan sinyal crossover rata-rata bergerak, dioptimalkan melalui rasio risiko-manfaat tetap.

Prinsip Strategi

Logika inti didasarkan pada sinyal silang yang dihasilkan oleh dua rata-rata bergerak (10 periode dan 30 periode). Sistem menghasilkan sinyal panjang ketika MA cepat melintasi di atas MA lambat, dan sinyal pendek ketika MA cepat melintasi di bawah. Setelah setiap entri, sistem secara otomatis menghitung tingkat stop-loss berdasarkan persentase kerugian 2% yang telah ditetapkan sebelumnya dan menetapkan target mengambil keuntungan sesuai dengan rasio risiko-balasan 2,5. Pendekatan ini memastikan setiap perdagangan memiliki karakteristik risiko-balasan yang konsisten.

Keuntungan Strategi

  1. Manajemen Risiko Sistematis: Mencapai manajemen modal standar melalui persentase stop-loss tetap dan rasio risiko-manfaat
  2. Mekanisme Perdagangan Objektif: Sistem sinyal berdasarkan penyeberangan MA menghilangkan bias penilaian subjektif
  3. Adaptabilitas Parameter yang Kuat: Parameter kunci seperti persentase stop-loss dan rasio risiko-imbalan dapat disesuaikan secara fleksibel
  4. Tingkat Otomatisasi Tinggi: Proses otomatisasi dari generasi sinyal hingga manajemen posisi mengurangi kesalahan manusia

Risiko Strategi

  1. Risiko pasar berbelit-belit: Sinyal silang MA dapat menghasilkan kegagalan yang sering terjadi di berbagai pasar
  2. Risiko tergelincir: Harga eksekusi yang sebenarnya dapat sangat berbeda dari harga sinyal di pasar yang bergerak cepat.
  3. Risiko stop loss tetap: Persentase stop loss tunggal mungkin tidak sesuai dengan semua kondisi pasar
  4. Biaya Komisi: Perdagangan yang sering dapat mengakibatkan biaya transaksi yang tinggi

Arah Optimasi Strategi

  1. Mengimplementasikan Filter Tren: Tambahkan rata-rata bergerak jangka panjang atau indikator tren lainnya untuk menyaring sinyal palsu
  2. Mekanisme Stop-Loss Dinamis: Sesuaikan persentase stop-loss berdasarkan volatilitas pasar untuk fleksibilitas yang lebih baik
  3. Konfirmasi Volume: Masukkan indikator volume untuk memverifikasi validitas pemisahan
  4. Optimasi Waktu Masuk: Tunggu untuk pullbacks setelah MA crossovers sebelum memasuki posisi

Ringkasan

Strategi ini menggabungkan metode analisis teknis klasik dengan konsep manajemen risiko modern untuk membangun sistem perdagangan yang lengkap. Meskipun memiliki keterbatasan tertentu, pengoptimalan dan perbaikan terus-menerus memungkinkan strategi untuk mempertahankan kinerja yang stabil di berbagai kondisi pasar. Kuncinya terletak pada terus menyesuaikan pengaturan parameter berdasarkan hasil perdagangan aktual untuk menemukan konfigurasi yang paling cocok untuk lingkungan pasar saat ini.


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