
Gambaran keseluruhan
Ini adalah strategi perdagangan berdasarkan prinsip regresi rata-rata, menggunakan penyimpangan yang ketara antara harga dan purata bergerak indeks 50 kitaran ((EMA)) untuk menentukan peluang perdagangan. Strategi ini direka khusus untuk pasaran yang bergelombang tinggi, bertujuan untuk mendapatkan keuntungan dengan membeli harga yang jauh di bawah EMA dan menjual apabila harga kembali ke EMA. Strategi ini terutamanya mengesan perbezaan peratusan antara harga dan EMA, yang mencetuskan isyarat perdagangan apabila perbezaan tersebut melebihi paras tertentu.
Prinsip Strategi
Logik teras strategi ini adalah berdasarkan teori regresi rata-rata, iaitu harga mungkin menyimpang dari nilai rata-rata dalam jangka pendek, tetapi cenderung untuk kembali ke nilai rata-rata dalam jangka panjang. Khususnya, strategi ini menggunakan 50 kitaran EMA sebagai nilai purata harga rujukan, yang dianggap sebagai peluang membeli apabila harga jauh di bawah nilai rata-rata (lebih daripada 10%); dan apabila harga kembali ke EMA ke atas dan menguntungkan, ia mencetuskan isyarat jual.
- Menggunakan EMA 50 kitaran sebagai garis asas
- Untuk mengira peratusan perbezaan harga dari EMA:
diff_perct = ((ema20 - close) / ema20) * 100
- Untuk mengira peratusan perbezaan antara harga tertinggi dan EMA:
diff_perct2 = ((high - ema20) / ema20) * 100
- Apabila
diff_perct > 10Apabila harga lebih rendah 10% daripada EMA, ia akan mencetuskan isyarat beli.
- Apabila
diff_perct2 > 0(iaitu, harga tertinggi lebih tinggi daripada EMA) dan keuntungan dagangan semasa lebih besar daripada 1, mencetuskan isyarat menjual
Kelebihan Strategik
- Syarat masuk yang jelasStrategi: menetapkan harga tertentu yang menyimpang daripada nilai terendah (<10%), memberikan isyarat masuk yang jelas, mengurangkan gangguan penilaian subjektif.
- Menggunakan reaksi berlebihan pasaranStrategi ini bertujuan untuk menangkap peluang untuk panik atau kejatuhan yang berlebihan di pasaran, di mana harga aset sering diremehkan.
- Pelaksanaan automatikStrategi ini sepenuhnya automatik, tidak memerlukan pemadaman dalam masa nyata, dan mengurangkan gangguan emosi.
- Pengurusan wang yang fleksibelStrategi menggunakan pembahagian wang tunai dan bukannya unit tetap, menjadikan penggunaan dana lebih fleksibel.
- Mudah difahamiStrategi ini mempunyai logik yang sederhana dan mudah difahami dan disesuaikan.
- Kawalan RisikoIa juga boleh menyebabkan penjual menjual produknya hanya jika ia sudah menghasilkan keuntungan, dan ia membantu melindungi keuntungan yang telah diperoleh.
Risiko Strategik
- Risiko TrendDalam trend penurunan yang kuat, harga mungkin terus menyimpang dari EMA dan tidak kembali, menyebabkan fenomena “pengambilalihan pisau” yang menyebabkan kerugian berterusan.
- Kepekaan ParameterSempadan penyimpangan: 10% mungkin tidak berlaku untuk semua keadaan pasaran, mungkin sukar untuk mencetuskan dalam persekitaran turun naik rendah, dan mungkin terlalu sering diperdagangkan dalam persekitaran turun naik tinggi.
- Kekurangan mekanisme kawalan kerugian: Tiada seting stop loss yang jelas dalam kod, yang boleh menyebabkan kerugian besar jika pasaran terus merosot.
- Bergantung kepada ketepatan EMAStrategi: EMA adalah rujukan nilai purata yang berkesan untuk harga, tetapi ini mungkin tidak berlaku dalam keadaan pasaran tertentu.
- Risiko kecairanDalam pasaran yang kurang cair, pesanan untuk membeli atau menjual mungkin menghadapi risiko tergelincir atau tidak dapat dilaksanakan sepenuhnya.
- Margin keuntungan tetap: Margin keuntungan ditetapkan sebagai nilai tetap 1, tanpa mengambil kira penyesuaian adaptasi di bawah kadar turun naik pasaran yang berbeza.
Arah pengoptimuman
- Pergerakan jauh dari paras paras paras paras: menukar 10% daripada nilai terhad yang tetap ke nilai terhad yang dinamik berdasarkan turun naik baru-baru ini, contohnya dengan menggunakan ATR (Average True Range) untuk menyesuaikan syarat kemasukan
- Meningkatkan mekanisme kawalan kerugianMemperkenalkan syarat-syarat hentian berdasarkan masa atau harga, seperti menetapkan masa pegangan maksimum atau peratusan kerugian maksimum yang dibenarkan
- Pengesahan pelbagai kitaran: menilai trend yang menggabungkan tempoh yang lebih lama (seperti garis matahari atau garis pusingan) dan mengelakkan masuk ketika trend utama berbalik.
- Pembinaan dan pembiayaan: Menerapkan pembelian bergilir-gilir dan jualan bergilir-gilir, dan bukannya membina atau meletakkan semua kedudukan sekaligus, untuk menyebarkan risiko.
- Tambah syarat penapisanTambahan penunjuk teknikal tambahan (seperti RSI atau MACD) sebagai syarat penapis untuk meningkatkan kualiti isyarat perdagangan.
- Penyesuaian kepada kitaran EMACuba gunakan kitaran EMA yang menyesuaikan diri, dan bukannya kitaran 50 tetap, untuk menjadikan strategi lebih sesuai dengan keadaan pasaran yang berubah.
- Pengoptimuman pengesanan: Melakukan pengesanan semula secara meluas dalam kitaran dan keadaan pasaran yang berbeza untuk mencari kombinasi parameter yang optimum.
ringkaskan
Strategi 50 EMA Periode Kecil adalah sistem perdagangan automatik berdasarkan analisis teknikal untuk mencari peluang perdagangan dengan menangkap harga yang berlainan dengan garis rata-rata. Strategi ini mudah dan intuitif, sesuai untuk persekitaran pasaran yang lebih bergelombang, tetapi juga ada risiko tertentu, terutamanya di pasaran yang sedang tren yang kuat. Dengan menambah mekanisme berhenti, penyesuaian parameter dinamik, dan pengesahan pelbagai indikator, langkah-langkah pengoptimuman dapat meningkatkan kestabilan dan keuntungan strategi secara signifikan.
Kod 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")