
Strategi ini digunakan untuk menentukan masuk dan keluar dengan menghitung EMA Moving Average dan MACD Indicator, yang menggabungkan sinyal silang keduanya. Lakukan lebih banyak ketika harga melewati garis EMA di atas dan garis MACD di atas garis sinyal; kosong ketika harga melewati garis EMA di bawah dan MACD di bawah garis sinyal.
Strategi ini menggunakan indeks EMA moving average untuk menentukan arah tren saat ini. Pada saat yang sama, MACD crossover menggunakan indikator MACD untuk menghasilkan sinyal beli dan jual. Hanya ketika harga menembus garis EMA, sinyal MACD forks akan ditentukan. Ini dapat mencegah sinyal yang salah.
Strategi ini terutama didasarkan pada keuntungan dari strategi perdagangan rata-rata bergerak dan strategi perdagangan MACD. Rata-rata bergerak lebih baik dalam menentukan arah tren. Selang garis cepat dan lambat dari rata-rata bergerak yang merata di indeks MACD dapat memberi tahu titik jual beli.
Strategi ini menggabungkan penilaian indikator ganda EMA dan MACD, dapat secara efektif menyaring beberapa sinyal yang salah, meningkatkan kualitas sinyal. Pada saat yang sama, EMA menilai tren utama, MACD menilai titik jual beli tertentu, keduanya saling melengkapi, dapat menghasilkan keuntungan yang lebih baik.
Selain itu, strategi ini hanya mempertimbangkan sinyal MACD ketika harga menembus garis rata-rata EMA, untuk menghindari kesalahan perdagangan dalam situasi goyangan. Ini juga meningkatkan stabilitas strategi.
Risiko utama dari strategi ini terletak pada pengaturan parameter. Jika pengaturan parameter EMA dan MACD tidak tepat, sinyal akan terlewatkan atau sinyal yang salah akan dihasilkan. Selain itu, jika tren pasar berbalik, strategi akan menghasilkan kerugian tertentu.
Untuk mengurangi risiko, parameter harus disesuaikan agar parameter EMA dan MACD sesuai dengan siklus pasar saat ini. Selain itu, disarankan untuk menggunakan stop loss untuk mengendalikan kerugian tunggal.
Strategi ini dapat dioptimalkan dalam beberapa hal:
Parameter optimasi dinamis, memungkinkan parameter EMA dan MACD untuk disesuaikan dengan situasi dan siklus waktu nyata, untuk memastikan validitas parameter
Menambahkan kombinasi indikator lain seperti saluran BOLL atau indikator KD untuk memperkaya sinyal strategi
Menggunakan metode pembelajaran mesin untuk mengoptimalkan parameter strategi secara otomatis dan menyesuaikan parameter berdasarkan umpan balik
Saat melewati garis rata-rata EMA, pertimbangkan intensitas arah untuk menghindari false breakout
Menambahkan strategi stop loss untuk mengunci keuntungan dan memotong kerugian
Strategi kuantitatif silang rata ini menggabungkan indikator ganda EMA dan MACD, yang dapat secara efektif menghasilkan sinyal berkualitas tinggi. Pengaturan parameter yang dioptimalkan, penambahan stop loss, dan penambahan indikator lainnya dapat meningkatkan stabilitas dan profitabilitas strategi lebih lanjut. Strategi ini efektif dan sederhana, dengan referensi dan nilai aplikasi yang bagus untuk pedagang kuantitatif.
/*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)