Strategi stop-profit dan stop-loss dinamis adaptif crossover rata-rata pergerakan ganda

SMA MA SL TP ATR
Tanggal Pembuatan: 2024-11-18 15:32:26 Akhirnya memodifikasi: 2024-11-18 15:54:16
menyalin: 0 Jumlah klik: 505
1
fokus pada
1617
Pengikut

Strategi stop-profit dan stop-loss dinamis adaptif crossover rata-rata pergerakan ganda

Ringkasan

Strategi ini adalah sistem perdagangan kuantitatif yang didasarkan pada sinyal crossover dua garis sejajar, mengidentifikasi perubahan tren pasar melalui persilangan rata-rata bergerak jangka pendek dan jangka panjang, dan dikombinasikan dengan manajemen stop loss dinamis untuk mengendalikan risiko. Strategi ini melakukan perdagangan dengan harga pasar, secara otomatis menghapus posisi yang ada dan membuka posisi baru ketika sinyal dipicu, untuk melindungi keamanan dana dengan menetapkan titik stop loss.

Prinsip Strategi

Strategi ini menggunakan rata-rata bergerak sederhana (SMA) dari dua periode yang berbeda sebagai dasar utama sinyal perdagangan. Ketika rata-rata jangka pendek melintasi rata-rata jangka panjang, sistem menghasilkan beberapa sinyal; Ketika rata-rata jangka pendek melintasi rata-rata jangka panjang, sistem menghasilkan sinyal penarikan.

Keunggulan Strategis

  1. Kejelasan mekanisme sinyal - Garis silang ganda adalah indikator teknis klasik, sinyal jelas dan mudah dipahami
  2. Manajemen risiko yang sempurna - Mengontrol risiko setiap transaksi dengan stop loss dinamis
  3. Tingkat otomatisasi yang tinggi - pelaksanaan otomatisasi seluruh proses dari pengenalan sinyal ke manajemen posisi
  4. Adaptif - dapat disesuaikan dengan berbagai kondisi pasar melalui parameter
  5. Struktur sederhana - kode logis yang jelas, mudah untuk dipertahankan dan dioptimalkan
  6. Pemantauan real-time - fitur pengingat transaksi untuk melacak pelaksanaan strategi

Risiko Strategis

  1. Risiko pasar yang bergoyang - perdagangan yang sering dapat menyebabkan kerugian dalam situasi yang bergoyang di zona
  2. Risiko slippage - Eksekusi harga pasar mungkin menghadapi slippage yang lebih besar
  3. Sensitivitas parameter - pilihan siklus rata-rata memiliki dampak yang lebih besar pada kinerja strategi
  4. Risiko terobosan palsu - kemungkinan penurunan cepat setelah terobosan jangka pendek
  5. Manajemen Risiko Uang - Stop loss persentase tetap mungkin tidak cocok untuk semua kondisi pasar

Arah optimasi strategi

  1. Menambahkan filter tren untuk menghindari sering berdagang di pasar yang bergejolak
  2. Memperkenalkan indikator volatilitas yang secara dinamis menyesuaikan stop loss rasio
  3. Menambahkan sinyal konfirmasi volume untuk meningkatkan kualitas transaksi
  4. Optimalkan waktu buka pos, pertimbangkan untuk memperkenalkan mekanisme penyesuaian harga
  5. Perbaikan sistem manajemen dana, kontrol posisi dinamis
  6. Meningkatkan indikator sentimen pasar, meningkatkan keandalan sinyal

Meringkaskan

Ini adalah strategi perdagangan kuantitatif yang terstruktur, logis, dan jelas. Strategi ini menangkap perubahan tren melalui crossover dua garis sejajar, dengan manajemen risiko stop loss yang dinamis. Keuntungan dari strategi ini adalah tingkat sistematisasi yang tinggi, risiko dapat dikendalikan, tetapi tetap perlu memperhatikan berbagai jenis risiko pasar di pasar nyata.

Kode Sumber Strategi
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("BTCUSD Daily Strategy - Market Orders Only", overlay=true, initial_capital=10000, currency=currency.USD)

// Configurable Inputs
stop_loss_percent = input.float(title="Stop Loss (%)", defval=1.0, minval=0.0, step=0.1)
take_profit_percent = input.float(title="Take Profit (%)", defval=2.0, minval=0.0, step=0.1)
short_ma_length = input.int(title="Short MA Length", defval=9, minval=1)
long_ma_length = input.int(title="Long MA Length", defval=21, minval=1)

// Moving Averages
short_ma = ta.sma(close, short_ma_length)
long_ma = ta.sma(close, long_ma_length)

// Plotting Moving Averages
plot(short_ma, color=color.blue, title="Short MA")
plot(long_ma, color=color.red, title="Long MA")

// Buy and Sell Signals
buy_signal = ta.crossover(short_ma, long_ma)
sell_signal = ta.crossunder(short_ma, long_ma)

// Market Buy Logic
if (buy_signal and strategy.position_size <= 0)
    // Close any existing short position
    if (strategy.position_size < 0)
        strategy.close(id="Market Sell")
    
    // Calculate Stop Loss and Take Profit Prices
    entry_price = close
    long_stop = entry_price * (1 - stop_loss_percent / 100)
    long_take_profit = entry_price * (1 + take_profit_percent / 100)

    // Enter Long Position
    strategy.entry(id="Market Buy", direction=strategy.long)
    strategy.exit(id="Exit Long", from_entry="Market Buy", stop=long_stop, limit=long_take_profit)

    // Alert for Market Buy
    alert("Market Buy Signal at price " + str.tostring(close) + ". Stop Loss: " + str.tostring(long_stop) + ", Take Profit: " + str.tostring(long_take_profit), alert.freq_once_per_bar_close)

// Market Sell Logic
if (sell_signal and strategy.position_size >= 0)
    // Close any existing long position
    if (strategy.position_size > 0)
        strategy.close(id="Market Buy")

    // Calculate Stop Loss and Take Profit Prices
    entry_price = close
    short_stop = entry_price * (1 + stop_loss_percent / 100)
    short_take_profit = entry_price * (1 - take_profit_percent / 100)

    // Enter Short Position
    strategy.entry(id="Market Sell", direction=strategy.short)
    strategy.exit(id="Exit Short", from_entry="Market Sell", stop=short_stop, limit=short_take_profit)

    // Alert for Market Sell
    alert("Market Sell Signal at price " + str.tostring(close) + ". Stop Loss: " + str.tostring(short_stop) + ", Take Profit: " + str.tostring(short_take_profit), alert.freq_once_per_bar_close)