
Strategi ini menggunakan pengiraan purata bergerak indeks EMA dan indikator MACD, yang menggabungkan isyarat silang kedua-duanya untuk menentukan masuk dan keluar. Buat lebih banyak apabila harga melewati garis EMA dan garis MACD di atas garis isyarat; kosong apabila harga melewati garis EMA di bawah dan MACD di bawah garis isyarat.
Strategi ini menggunakan purata bergerak indeks EMA untuk menentukan arah trend semasa. Pada masa yang sama, ia menggunakan penyambungan garis dua rata-rata indikator MACD untuk menghasilkan isyarat beli dan jual. Isyarat MACD yang diputuskan hanya apabila harga menembusi garis EMA.
Strategi ini adalah berdasarkan kepada kelebihan strategi perdagangan purata bergerak dan strategi perdagangan MACD. Purata bergerak dapat menilai arah trend dengan lebih baik. Indeks MACD melonggarkan persilangan garis laju dan perlahan dengan purata bergerak dapat memberi petunjuk untuk membeli dan menjual titik.
Strategi ini digabungkan dengan penilaian EMA dan MACD ganda, dapat menyaring beberapa isyarat yang salah dan meningkatkan kualiti isyarat. Pada masa yang sama, EMA menilai trend utama, MACD menilai titik jual beli tertentu, kedua-duanya saling melengkapi, dapat memperoleh keuntungan yang lebih baik.
Di samping itu, strategi ini hanya mengambil kira isyarat MACD apabila harga menembusi garis rata-rata EMA, mengelakkan perdagangan yang salah dalam keadaan goyah. Ini juga meningkatkan kestabilan strategi.
Risiko utama strategi ini terletak pada parameter yang ditetapkan. Jika parameter EMA dan MACD tidak ditetapkan dengan betul, isyarat akan hilang atau menghasilkan isyarat yang salah. Selain itu, jika trend pasaran bertukar, strategi akan menghasilkan kerugian tertentu.
Untuk mengurangkan risiko, parameter harus diselaraskan dengan betul supaya parameter EMA dan MACD sesuai dengan kitaran pasaran semasa. Ia juga disyorkan untuk menggunakan hentian kerugian untuk mengawal kerugian tunggal. Apabila pasaran memasuki dasar atau menyentuh tahap sokongan, pertimbangan harus diambil untuk menghentikan perdagangan dengan betul untuk mengelakkan kerugian berterusan.
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Parameter pengoptimuman dinamik yang membolehkan parameter EMA dan MACD disesuaikan dengan keadaan dan kitaran masa nyata untuk memastikan parameter berlaku
Menambah gabungan petunjuk lain seperti saluran BOLL atau petunjuk KD untuk memperkaya isyarat strategi
Menggunakan kaedah pembelajaran mesin untuk mengoptimumkan parameter strategi secara automatik dan menyesuaikan parameter mengikut hasil tinjauan balik
Untuk mengelakkan penembusan palsu, tentukan kekuatan arah semasa menembusi EMA
Tambah strategi stop loss untuk mengunci keuntungan dan memotong kerugian
Strategi kuantifikasi silang garis rata ini digabungkan dengan EMA dan MACD ganda, yang dapat menghasilkan isyarat berkualiti tinggi secara berkesan. Pengaturan parameter yang dioptimumkan, penambahan stop loss, penambahan indikator lain dapat meningkatkan kestabilan dan keuntungan strategi. Strategi ini berkesan dan mudah, mempunyai nilai rujukan dan aplikasi yang baik untuk pedagang kuantifikasi.
/*backtest
start: 2022-12-15 00:00:00
end: 2023-12-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("LONERTESTV2", overlay=true)
// Input definitions
fastLength = input(12, title="Fast Length")
slowlength = input(26, title="Slow Length")
MACDLength = input(9, title="MACD Length")
emaLength = input(13, title="EMA Length")
//smaLength = input(200, title="SMA Length")
// SMA Indicator - Are we in a Bull or Bear market according to 200 SMA?
//SMA = ta.ema(close, smaLength)
// EMA Indicator - Are we in a rally or not?
EMA = ta.ema(close, emaLength)
// MACD Indicator - Is the MACD bullish or bearish?
MACD = ta.ema(close, fastLength) // - ta.ema(close, slowlength)
aMACD = ta.ema(MACD, MACDLength)
delta = MACD - aMACD
// Set Buy/Sell conditions
buy_entry = close > EMA and delta > 5 ? true : close > EMA and delta > -5
sell_entry = close < EMA and delta < -5 ? true : close < EMA and delta < 5
if buy_entry
strategy.entry(id='EL', direction=strategy.long)
if sell_entry
strategy.entry(id='ES', direction=strategy.short)
// strategy.entry("Buy", strategy.long)
// strategy.entry("Sell", strategy.short)