Strategi pembalikan rata-rata bergerak


Tanggal Pembuatan: 2023-12-21 15:45:23 Akhirnya memodifikasi: 2023-12-21 15:45:23
menyalin: 1 Jumlah klik: 733
1
fokus pada
1623
Pengikut

Strategi pembalikan rata-rata bergerak

Strategi ini diberi nama Mean Reversion Reverse Strategy Based on Moving Average, dan ide utamanya adalah membeli setelah melewati garis rata-rata kunci dan berhenti setelah mencapai target keuntungan yang ditetapkan.

Prinsip utama dari strategi ini adalah memanfaatkan pembalikan rata-rata jangka pendek untuk menangkap peluang rebound dalam kondisi perdagangan. Khususnya, ketika harga jatuh dari rata-rata periode yang lebih lama (seperti 20 hari, 50 hari, dll) setelah menunjukkan tanda-tanda overshoot yang kuat, harga sering menghasilkan beberapa tingkat rebound karena sifat reversi rata-rata pergerakan pasar.

Logika pembelian spesifik dari strategi ini adalah: Beli satu tangan setelah harga jatuh di bawah garis 20 hari, pasang satu tangan setelah jatuh di bawah garis 50 hari, terus pasang satu tangan setelah jatuh di bawah garis 100 hari, pasang satu tangan maksimal setelah jatuh di bawah garis 200 hari, lakukan 4 tangan tambahan. Setelah mencapai target stop loss yang telah ditentukan.

Analisis Keunggulan

  1. Menggunakan karakteristik berbalik rata-rata untuk mengidentifikasi peluang rebound jangka pendek secara efektif
  2. Bangunan batch untuk mengurangi risiko satu tempat
  3. Tetapkan kondisi penghentian untuk mengunci keuntungan
  4. Filter dari harga open dan low sebelumnya untuk menghindari false breakout

Analisis risiko

  1. Jika Anda memegang saham dalam jangka panjang, Anda mungkin menghadapi risiko reversal.
  2. Sinyal rata-rata mungkin salah, sehingga menyebabkan kerugian
  3. Target penghentian yang ditetapkan mungkin tidak tercapai, tidak dapat sepenuhnya atau sebagian berhenti

Arah optimasi

  1. Dapat menguji tingkat pengembalian dan stabilitas di bawah pengaturan parameter yang berbeda
  2. Indikator lain seperti MACD, KD, dan lain-lain dapat dipertimbangkan untuk membeli
  3. Periode rata-rata dapat dipilih sesuai dengan gaya perdagangan mereka berdasarkan karakteristik varietas yang berbeda
  4. Algoritma pembelajaran mesin dapat diperkenalkan untuk mengoptimalkan parameter secara dinamis

Meringkaskan

Strategi ini secara keseluruhan adalah strategi perdagangan rata-rata yang lebih klasik dan umum. Strategi ini benar-benar menggunakan fitur smooting rata-rata, sekaligus menggabungkan beberapa rata-rata untuk mengidentifikasi waktu pembelian jangka pendek.

Kode Sumber Strategi
/*backtest
start: 2023-12-13 00:00:00
end: 2023-12-20 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA_zorba1", shorttitle="zorba_ema", overlay=true)

// Input parameters
qt1 = input.int(5, title="Quantity 1", minval=1)
qt2 = input.int(10, title="Quantity 2", minval=1)
qt3 = input.int(15, title="Quantity 3", minval=1)
qt4 = input.int(20, title="Quantity 4", minval=1)
ema10 = ta.ema(close, 10)
ema20 = ta.ema(close, 20)
ema50 = ta.ema(close, 50)
ema100 = ta.ema(close, 100)
ema200 = ta.ema(close, 200)

// Date range filter
start_date = timestamp(year=2021, month=1, day=1)
end_date = timestamp(year=2024, month=10, day=27)
in_date_range = true

// Profit condition
profit_percentage = input(1, title="Profit Percentage")  // Adjust this value as needed

// Pyramiding setting
pyramiding = input.int(2, title="Pyramiding", minval=1, maxval=10)

// Buy conditions
buy_condition_1 = in_date_range and close < ema20 and close > ema50 and close < open and close < low[1]
buy_condition_2 = in_date_range and close < ema50 and close > ema100 and close < open and close < low[1]
buy_condition_3 = in_date_range and close < ema100 and close > ema200 and close < open and close < low[1]
buy_condition_4 = in_date_range and close < ema200 and close < open and close < low[1]

// Exit conditions
profit_condition = strategy.position_avg_price * (1 + profit_percentage / 100) <= close
exit_condition_1 = in_date_range and (close > ema10 and ema10 > ema20 and ema10 > ema50 and ema10 > ema100 and ema10 > ema200 and close < open) and profit_condition and close < low[1] and close < low[2]
exit_condition_2 = in_date_range and (close < ema10 and close[1] > ema10 and close < close[1] and ema10 > ema20 and ema10 > ema50 and ema10 > ema100 and ema10 > ema200 and close < open) and profit_condition and close < low[1] and close < low[2]

// Exit condition for when today's close is less than the previous day's low
//exit_condition_3 = close < low[1]

// Strategy logic
strategy.entry("Buy1", strategy.long, qty=qt1 * pyramiding, when=buy_condition_1)
strategy.entry("Buy2", strategy.long, qty=qt2 * pyramiding, when=buy_condition_2)
strategy.entry("Buy3", strategy.long, qty=qt3 * pyramiding, when=buy_condition_3)
strategy.entry("Buy4", strategy.long, qty=qt4 * pyramiding, when=buy_condition_4)

strategy.close("Buy1", when=exit_condition_1 or exit_condition_2)
strategy.close("Buy2", when=exit_condition_1 or exit_condition_2)
strategy.close("Buy3", when=exit_condition_1 or exit_condition_2)
strategy.close("Buy4", when=exit_condition_1 or exit_condition_2)