
Ringkasan
Ini adalah strategi perdagangan yang didasarkan pada prinsip regresi rata-rata, yang memanfaatkan penyimpangan yang signifikan antara harga dan rata-rata bergerak indeks 50 siklus (EMA) untuk menentukan peluang perdagangan. Strategi ini dirancang khusus untuk pasar yang sangat fluktuatif, yang bertujuan untuk mendapatkan keuntungan dengan membeli harga yang jauh di bawah dasar EMA dan menjual ketika harga kembali ke EMA. Strategi ini terutama melacak persentase perbedaan antara harga dan EMA, yang memicu sinyal perdagangan ketika perbedaan tersebut melebihi titik terendah tertentu.
Prinsip Strategi
Logika inti dari strategi ini didasarkan pada teori regresi rata-rata, yaitu harga mungkin menyimpang dari rata-ratanya dalam jangka pendek, tetapi cenderung kembali ke rata-rata dalam jangka panjang. Secara khusus, strategi ini menggunakan 50 siklus EMA sebagai harga acuan rata-rata, yang dianggap sebagai peluang beli ketika harga jauh di bawah rata-rata (lebih dari 10%), dan memicu sinyal jual ketika harga naik kembali ke EMA dan menguntungkan.
- Menggunakan 50 siklus EMA sebagai garis dasar
- Perkiraan persentase deviasi harga dari EMA:
diff_perct = ((ema20 - close) / ema20) * 100
- Perkiraan persentase deviasi harga tertinggi dari EMA:
diff_perct2 = ((high - ema20) / ema20) * 100
- Ketika
diff_perct > 10Ketika harga lebih dari 10% lebih rendah dari EMA, ia akan memicu sinyal beli.
- Ketika
diff_perct2 > 0(yaitu harga tertinggi di atas EMA) dan keuntungan perdagangan saat ini lebih besar dari 1, memicu sinyal jual
Keunggulan Strategis
- Persyaratan masuk yang jelasStrategi: menetapkan harga tertentu yang menyimpang dari nilai terendah (<10%), memberikan sinyal masuk yang jelas, mengurangi gangguan penilaian subjektif.
- Memanfaatkan reaksi pasar yang berlebihanStrategi ini dirancang untuk menangkap peluang pasar yang terlalu panik atau turun, di mana harga aset seringkali diremehkan.
- Pelaksanaan otomatisStrategi ini sepenuhnya otomatis, tidak perlu disetel secara real-time, dan mengurangi gangguan emosional.
- Manajemen dana yang fleksibelStrategi: Menggunakan alokasi uang tunai, bukan unit tetap, untuk membuat penggunaan dana lebih fleksibel.
- Mudah dimengertiStrategi ini memiliki logika yang sederhana, mudah dipahami, dan mudah disesuaikan.
- Pengendalian RisikoIni adalah salah satu cara yang paling efektif untuk memicu penjualan jika ada keuntungan, dan ini membantu melindungi keuntungan yang telah diperoleh.
Risiko Strategis
- Risiko trenDalam tren turun yang kuat, harga mungkin terus menyimpang dari EMA dan tidak kembali, menyebabkan fenomena “mengambil alih pisau”, yang menyebabkan kerugian berkelanjutan.
- Parameter SensitivitasNilai deviasi 10 persen mungkin tidak berlaku untuk semua kondisi pasar, mungkin sulit untuk dipicu dalam lingkungan yang rendah volatilitas, dan mungkin terlalu sering diperdagangkan dalam lingkungan yang tinggi volatilitas
- Kurangnya pengendalian kerugian: Tidak ada pengaturan stop loss yang jelas dalam kode, yang dapat menyebabkan kerugian besar jika pasar terus memburuk.
- Bergantung pada akurasi EMAStrategi: Asumsikan bahwa EMA adalah acuan nilai rata-rata yang efektif untuk harga, tetapi ini mungkin tidak berlaku dalam kondisi pasar tertentu.
- Risiko likuiditasDalam pasar yang kurang likuid, pesanan untuk membeli atau menjual mungkin mengalami risiko tergelincir atau tidak sepenuhnya dieksekusi.
- Margin keuntungan tetap: Margin keuntungan ditetapkan sebagai nilai tetap 1, tanpa mempertimbangkan penyesuaian adaptif di bawah fluktuasi pasar yang berbeda.
Arah optimasi
- Pergeseran dari batas: Mengubah 10% dari standar standar deviasi tetap menjadi standar deviasi dinamis berdasarkan volatilitas terkini, misalnya dengan menggunakan ATR (Average True Range) untuk menyesuaikan kondisi masuk.
- Meningkatkan mekanisme penghentian kerugian: Memperkenalkan kondisi stop loss berdasarkan waktu atau harga, misalnya menetapkan waktu maksimum untuk memegang posisi atau persentase kerugian maksimum yang diizinkan.
- Konfirmasi multi-siklus: menilai tren yang menggabungkan periode yang lebih panjang (seperti garis matahari atau garis lingkaran), menghindari masuk saat tren utama berbalik.
- Pembangunan batch dan pembiayaan: Memungkinkan untuk membeli dan menjual secara bertahap, bukan membangun atau menata semua posisi sekaligus, untuk menyebarkan risiko.
- Menambahkan kondisi filter: Menambahkan indikator teknis tambahan (seperti RSI atau MACD) sebagai kondisi penyaringan untuk meningkatkan kualitas sinyal perdagangan.
- Adaptasi terhadap siklus EMAMencoba menggunakan siklus EMA yang beradaptasi, bukan siklus 50 yang tetap, membuat strategi lebih dapat beradaptasi dengan kondisi pasar yang berubah.
- Optimasi pelacakan: Melakukan pengulangan yang luas dalam berbagai siklus dan kondisi pasar untuk menemukan kombinasi optimal.
Meringkaskan
Strategi 50 siklus EMA deviasi dari rata-rata adalah sistem perdagangan otomatis berbasis analisis teknis untuk mencari peluang perdagangan dengan menangkap harga dengan deviasi yang signifikan dari garis rata-rata. Strategi ini sederhana dan intuitif, cocok untuk lingkungan pasar yang lebih berfluktuasi, tetapi juga memiliki risiko tertentu, terutama di pasar tren yang kuat.
Kode Sumber Strategi
/*backtest
start: 2024-03-26 00:00:00
end: 2025-03-25 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("SUIBTC 2H - EMA dip public",overlay=true,initial_capital=100,default_qty_value=100, default_qty_type = strategy.cash,process_orders_on_close=false,calc_on_every_tick=false)
BuyTrigger = input.bool(false)
SellTrigger = input.bool(false)
src = input(open, title="Source")
offset = input.int(title="Offset", defval=5, minval=-500, maxval=500)
ema20 = ta.ema(close, 50)
plot(ema20, title="ema20", color=color.yellow, linewidth=3)
diff_perct = ((ema20 - close) / ema20) * 100
diff_perct2 = ((high - ema20) / ema20) * 100
if ( diff_perct > 10)
BuyTrigger := true
if( diff_perct2 > 0 and strategy.openprofit > 1)
SellTrigger := true
notInTrade = strategy.position_size <= 0
inTrade = strategy.position_size > 0
timeSinceLastTrade_ms = time - strategy.opentrades.entry_time(0)
if (BuyTrigger and notInTrade )
strategy.order("long", strategy.long , oca_name = 'audusdt' , when = BuyTrigger ,limit = open, comment = "buy: SUIBTC EMA Dip")
if (SellTrigger and inTrade )
strategy.close(id="long" , qty_percent = 100, comment = "sell: SUIBTC EMA Dip")