Strategi mengambil untung dengan beberapa moving average golden cross batch

EMA
Tanggal Pembuatan: 2024-12-20 16:54:43 Akhirnya memodifikasi: 2024-12-20 16:54:43
menyalin: 4 Jumlah klik: 407
1
fokus pada
1617
Pengikut

Strategi mengambil untung dengan beberapa moving average golden cross batch

Ringkasan

Strategi ini adalah sistem perdagangan pelacakan tren yang didasarkan pada moving average (EMA) multi-indeks. Strategi ini menggunakan crossing emas yang terbentuk dari tiga garis rata EMA25, EMA50 dan EMA100 untuk mengkonfirmasi tren naik yang kuat, dan masuk secara batch ketika harga menembus EMA25. Strategi ini menggunakan stop loss dinamis dan stop loss batch untuk mengelola risiko dan keuntungan.

Prinsip Strategi

Logika inti dari strategi ini mencakup bagian-bagian utama berikut:

  1. Konfirmasi tren: Menggunakan tiga periode berbeda EMA ((25, 50, 100), ketika garis rata-rata jangka pendek berada di atas garis rata-rata jangka menengah, garis rata-rata jangka menengah berada di atas garis rata-rata jangka panjang, membentuk bentuk silang emas, mengkonfirmasi tren naik.
  2. Sinyal masuk: Berdasarkan pembentukan persilangan emas, ketika harga penutupan naik melampaui EMA25, masuklah dua set masing-masing 50% dari posisi Anda.
  3. Stop loss setting: Stop loss dinamis yang didasarkan pada harga terendah dari 20 siklus terakhir, dan menambahkan zona penyangga tambahan ((0.0003)) untuk menghindari false breakout.
  4. Pembagian stop: menetapkan dua target stop yang berbeda perkalian ((1.0 dan 1.5 kali lipat), posisi pertama berangkat saat mencapai target stop yang lebih rendah, posisi kedua berangkat saat mencapai target stop yang lebih tinggi.
  5. Perlindungan berakhirnya tren: Ketika harga turun di bawah EMA100, sinyal posisi kosong akan dipicu untuk semua posisi untuk mencegah kerugian yang ditimbulkan oleh pembalikan tren.

Keunggulan Strategis

  1. Multiple confirmation mechanism: Dengan menggunakan kombinasi dari multiple averages, dapat secara efektif menyaring sinyal palsu, meningkatkan keandalan transaksi.
  2. Manajemen risiko yang dinamis: Stop loss disesuaikan secara dinamis berdasarkan fluktuasi pasar real-time, lebih mudah beradaptasi.
  3. Dengan operasi batch, Anda dapat mengunci sebagian dari keuntungan Anda, tetapi Anda juga dapat membiarkan keuntungan Anda terus berlari dan memaksimalkan keuntungan Anda.
  4. Mekanisme Perlindungan Tren: Mengatur garis rata-rata jangka panjang sebagai garis peringatan untuk pembalikan tren, yang dapat menghentikan kerugian tepat waktu dan menghindari penarikan balik yang besar.

Risiko Strategis

  1. Risiko keterlambatan: Indikator garis rata-rata sendiri memiliki keterlambatan, yang dapat menyebabkan terlambat waktu masuk, kehilangan titik pembelian terbaik.
  2. Risiko pasar yang bergoyang: Dalam pasar yang bergoyang, sering terjadi false breakout yang dapat menyebabkan stop loss berkelanjutan.
  3. Risiko buffer zone stop loss tetap: penggunaan buffer zone stop loss tetap mungkin tidak cocok untuk semua kondisi pasar.
  4. Risiko manajemen dana: alokasi posisi tetap 50% mungkin tidak cukup fleksibel.

Arah optimasi strategi

  1. Optimasi parameter dinamis: dapat secara otomatis menyesuaikan siklus rata-rata dan stop loss buffer zone sesuai dengan volatilitas pasar.
  2. Filter kondisi pasar: Tambahkan kekuatan tren dan indikator volatilitas, menyesuaikan parameter strategi dalam kondisi pasar yang berbeda.
  3. Optimalisasi manajemen posisi: Dimensi posisi disesuaikan secara dinamis berdasarkan volatilitas dan nilai bersih akun.
  4. Optimalisasi waktu masuk: dapat dikombinasikan dengan indikator teknis lainnya (seperti RSI, MACD, dll.) untuk mengoptimalkan waktu masuk.
  5. Optimasi cara penutupan: mekanisme penutupan bergerak dapat diperkenalkan untuk melindungi penutupan yang lebih baik.

Meringkaskan

Strategi ini membangun sistem perdagangan pelacakan tren yang lebih lengkap melalui kombinasi garis rata-rata ganda dan operasi batch. Keunggulan strategi ini adalah menggabungkan beberapa elemen kunci pelacakan tren dan manajemen risiko, tetapi masih memerlukan optimasi parameter dan perbaikan aturan sesuai dengan situasi pasar yang sebenarnya. Dengan arah optimasi yang disarankan, strategi ini diharapkan dapat mempertahankan kinerja yang stabil di berbagai lingkungan pasar.

Kode 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")