Strategi Pengambilan Untung Berbilang Moving Average Golden Cross Batch

EMA
Tarikh penciptaan: 2024-12-20 16:54:43 Akhirnya diubah suai: 2024-12-20 16:54:43
Salin: 4 Bilangan klik: 407
1
fokus pada
1617
Pengikut

Strategi Pengambilan Untung Berbilang Moving Average Golden Cross Batch

Gambaran keseluruhan

Strategi ini adalah sistem perdagangan trend-tracking berdasarkan purata bergerak pelbagai indeks ((EMA)). Ia menggunakan tiga garis rata EMA25, EMA50 dan EMA100 yang membentuk persilangan emas untuk mengesahkan trend menaik yang kuat, dan memasuki lot apabila harga menembusi EMA25. Strategi ini menggunakan stop loss dinamik dan stop loss lot untuk menguruskan risiko dan keuntungan.

Prinsip Strategi

Logik teras strategi merangkumi bahagian penting berikut:

  1. Pengesahan trend: EMA menggunakan tiga kitaran yang berbeza ((25,50,100), membentuk bentuk silang emas, mengesahkan trend ke atas apabila garis purata jangka pendek berada di atas garis purata jangka menengah, dan garis purata jangka menengah berada di atas garis purata jangka panjang.
  2. Isyarat masuk: Berdasarkan pembentukan persilangan emas, apabila harga penutupan melangkaui EMA25 ke atas, masuklah ke dalam dua kumpulan masing-masing sebanyak 50% daripada kedudukan.
  3. Tetapan Stop Loss: Tetapan Stop Loss dinamik berdasarkan harga terendah dalam 20 kitaran terakhir, dan menambah satu ruang perlindungan tambahan ((0.0003)) untuk mengelakkan penembusan palsu.
  4. Berpecah-belah penangguhan: menetapkan dua sasaran penangguhan berganda yang berlainan ((1.0 dan 1.5 kali ganda), kedudukan pertama berlepas apabila mencapai sasaran penangguhan yang lebih rendah, kedudukan kedua berlepas apabila mencapai sasaran penangguhan yang lebih tinggi.
  5. Perlindungan akhir trend: Apabila harga jatuh di bawah EMA100, semua kedudukan akan diletakkan pada isyarat kosong untuk mengelakkan kerugian yang disebabkan oleh pembalikan trend.

Kelebihan Strategik

  1. Mekanisme pengesahan berbilang: Dengan penggunaan gabungan pelbagai garis rata, ia dapat menyaring isyarat palsu dengan berkesan, meningkatkan kebolehpercayaan transaksi.
  2. Pengurusan risiko dinamik: Stop loss disesuaikan secara dinamik berdasarkan turun naik pasaran dalam masa nyata, lebih mudah disesuaikan.
  3. Pembinaan dan penangguhan gudang secara berturut-turut: Dengan operasi berturut-turut, anda boleh mengunci sebahagian daripada keuntungan, tetapi anda juga boleh membiarkan keuntungan terus berjalan, untuk memaksimumkan keuntungan.
  4. Mekanisme perlindungan trend: menetapkan garis rata-rata jangka panjang sebagai garis amaran untuk pembalikan trend, yang dapat menghentikan kerugian tepat pada masanya, untuk mengelakkan penarikan balik yang besar.

Risiko Strategik

  1. Risiko keterlambatan: Indeks garis purata sendiri mempunyai keterlambatan, yang boleh menyebabkan masa masuk terlambat dan kehilangan titik pembelian terbaik.
  2. Risiko pasaran goyah: Dalam pasaran goyah, penembusan palsu yang kerap boleh menyebabkan kerugian berterusan.
  3. Risiko zon pelindung kerugian tetap: Penggunaan zon pelindung kerugian tetap mungkin tidak sesuai untuk semua keadaan pasaran.
  4. Risiko pengurusan dana: Peruntukan kedudukan tetap 50% mungkin tidak fleksibel.

Arah pengoptimuman strategi

  1. Pengoptimuman parameter dinamik: boleh menyesuaikan secara automatik kitaran garis purata dan zon penampan kerugian mengikut turun naik pasaran.
  2. Penapisan keadaan pasaran: Tambah kekuatan trend dan indikator kadar turun naik, menyesuaikan parameter strategi dalam keadaan pasaran yang berbeza.
  3. Pengurusan kedudukan yang dioptimumkan: saiz kedudukan yang disesuaikan secara dinamik berdasarkan kadar turun naik dan nilai bersih akaun.
  4. Pengoptimuman masa masuk: boleh digabungkan dengan petunjuk teknikal lain (seperti RSI, MACD, dll.) untuk mengoptimumkan masa masuk.
  5. Optimasi cara penangguhan: mekanisme penangguhan mudah alih boleh diperkenalkan untuk melindungi lebih baik penangguhan yang menguntungkan.

ringkaskan

Strategi ini membina sistem perdagangan trend yang lebih lengkap dengan menggunakan pelbagai kombinasi garis rata dan cara operasi berturut-turut. Kelebihan strategi ini adalah menggabungkan beberapa elemen penting untuk trend dan pengurusan risiko, tetapi masih memerlukan pengoptimuman parameter dan penambahbaikan peraturan berdasarkan keadaan pasaran sebenar. Dengan arah pengoptimuman yang disyorkan, strategi ini dijangka dapat mengekalkan prestasi yang stabil dalam pelbagai keadaan pasaran.

Kod sumber strategi
/*backtest
start: 2024-11-19 00:00:00
end: 2024-12-18 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("Golden Cross with Customizable TP/SL", overlay=true)

// Parameters for EMA
ema_short_length = 25
ema_mid_length = 50
ema_long_length = 100

// Parameters for stop-loss and take-profit
lookback_bars = input.int(20, title="Lookback bars for lowest low")
pip_buffer = input.float(0.0003, title="Stop-loss buffer (pips)")  // Fixed default pip value (e.g., 3 pips for 5-digit pairs)
tp_multiplier1 = input.float(1.0, title="Take-profit multiplier 1")
tp_multiplier2 = input.float(1.5, title="Take-profit multiplier 2")

// Calculate EMAs
ema25 = ta.ema(close, ema_short_length)
ema50 = ta.ema(close, ema_mid_length)
ema100 = ta.ema(close, ema_long_length)

// Golden Cross condition (EMA25 > EMA50 > EMA100)
golden_cross = ema25 > ema50 and ema50 > ema100

// Entry condition: Candle crosses above EMA25 after a golden cross
cross_above_ema25 = ta.crossover(close, ema25)
entry_condition = golden_cross and cross_above_ema25

// Stop-loss and take-profit calculation
lowest_low = ta.lowest(low, lookback_bars)
var float entry_price = na
var float stop_loss = na
var float take_profit1 = na
var float take_profit2 = na

if (entry_condition)
    entry_price := close
    stop_loss := lowest_low - pip_buffer
    take_profit1 := entry_price + (entry_price - stop_loss) * tp_multiplier1
    take_profit2 := entry_price + (entry_price - stop_loss) * tp_multiplier2
    strategy.entry("Buy1", strategy.long, qty=0.5)  // First 50%
    strategy.entry("Buy2", strategy.long, qty=0.5)  // Second 50%

// Separate exit conditions for each entry
cross_below_ema100 = ta.crossunder(close, ema100)
exit_condition1 = close >= take_profit1
exit_condition2 = close >= take_profit2
exit_condition_sl = close <= stop_loss

if (exit_condition1 or cross_below_ema100)
    strategy.close("Buy1")
if (exit_condition2 or cross_below_ema100 or exit_condition_sl)
    strategy.close("Buy2")

// Plot EMAs
plot(ema25, color=color.blue, title="EMA 25")
plot(ema50, color=color.orange, title="EMA 50")
plot(ema100, color=color.red, title="EMA 100")