Strategi ini menggunakan indikator EMA dan MACD selama 255 siklus untuk mencari peluang perdagangan reversal. Ketika harga jauh dari 255 EMA, reverse entry dilakukan ketika MACD mengalami Gold Fork atau Dead Fork.
Menggunakan 255 siklus EMA sebagai penilaian tren jangka panjang menengah. Harga jauh dari EMA mewakili masuk ke zona overbought dan oversold.
EMA di atas mengatur naik, EMA di bawah mengatur turun, dan lebar orbit disesuaikan secara dinamis melalui indikator ATR.
Ketika harga lebih tinggi dari uptrend, itu adalah zona overbought, dan ketika harga lebih rendah dari downtrend, itu adalah zona oversold. Dalam kasus ini, tunggu sinyal pembalikan muncul.
Indikator MACD menggunakan parameter standar ((12,26,9) .
Kombinasi sinyal EMA overbought and oversold dan MACD, untuk melakukan reverse entry ketika harga berada jauh dari EMA dan MACD berbalik.
Menggunakan 255 siklus EMA dapat lebih baik menilai arah tren jangka menengah dan panjang.
MACD Gold Fork Dead Fork dapat menangkap peluang reversal jangka pendek dengan lebih sensitif.
EMA di atas dan di bawah bisa digunakan untuk menentukan area overbought dan oversold, dan menghindari pergerakan bergelombang dalam tren.
Strategi perdagangan terbalik, yang dapat diakses sebelum harga berbalik, memiliki beberapa rencana.
Menggunakan stop loss ATR dinamis dapat secara efektif mengendalikan risiko.
Sinyal MACD dapat mengalami pembalikan palsu yang menyebabkan kerugian yang tidak perlu.
Dalam situasi tren yang kuat, kemungkinan besar terbalik gagal, dan terbalik buta harus dihindari.
Stop loss yang terlalu kecil dapat menyebabkan stop loss yang dipicu, dan yang terlalu besar mungkin tidak cukup untuk mengendalikan risiko.
Pengaturan parameter yang tidak tepat juga dapat mempengaruhi efektivitas strategi, yang perlu dioptimalkan melalui pengujian berulang.
Biaya transaksi juga mempengaruhi pendapatan akhir dan perlu dipertimbangkan dampaknya terhadap strategi.
Anda dapat menguji parameter siklus EMA yang berbeda untuk mencari indikator yang lebih sesuai untuk menilai tren jangka menengah dan panjang.
Indikator lain dapat dicoba dalam kombinasi dengan EMA untuk menilai zona overbought dan oversold. Misalnya, Bollinger Bands, KD, RSI, dll.
Parameter MACD juga dapat dioptimalkan untuk menemukan kombinasi yang lebih sensitif atau stabil.
Cara lain untuk menghentikan kerugian dapat diuji, seperti trailing stop loss untuk mengunci keuntungan.
Parameter dapat dioptimalkan sesuai dengan siklus yang berbeda dari varietas yang berbeda, sehingga strategi lebih adaptif.
Indikator kekuatan tren dapat dikombinasikan untuk menghindari pembalikan dalam tren yang kuat.
Strategi ini mengintegrasikan penilaian tren jangka panjang di EMA dan sinyal pembalikan jangka pendek MACD, dan merupakan strategi pembalikan dasar di zona overbought dan oversold. Strategi ini memiliki beberapa keuntungan, tetapi ada juga beberapa risiko yang perlu diwaspadai. Dengan terus mengoptimalkan parameter dan pengendalian risiko, strategi ini dapat menjadi strategi perdagangan kuantitatif yang efektif.
/*backtest
start: 2023-09-12 00:00:00
end: 2023-09-19 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © bufirolas
//--- From 15 Trading Examples by Trader Alyx ---
// Seems like this strategy works better if we reverse the EMA filter logic.
// "Description: This basic scalping strategy allows you to enter the market based upon sentiment
// provided by the EMA, set at 255 periods. When price is trading below the 255 EMA, you would
// look to enter a LONG BUY positions, and when price is trading above the 255 EMA, you would
// look to enter a SELL SHORT position. The MACD lagging indicator will show you clear signals for
// when to do this. When the MACD lines cross in a bullish manner and price is below the 255
// EMA, buy. When the MACD lines cross in a bearish manner and price is above the 255 EMA,
// sell.
// NOTE: Make sure that price is trading away from the 255EMA before entering a LONG or SHORT
// position. As you can see in the chart below, the clearest signs for trade entry were presented
// when price was trading AWAY from the 255EMA"
//@version=4
// strategy("255 EMA Strategy", overlay=true, pyramiding=1, default_qty_type=strategy.cash, default_qty_value=100, commission_value = 0.04, initial_capital=100)
//Inputs
i_reverse=input(false, title="Trade Reverse")
i_EMAreverse=input(true, title="EMA Reverse Entry")
i_EMAlength=input(defval=255, title="EMA Length")
i_EMAexpander=input(defval=5, title="EMA Expander")
i_MACDmult=input(defval=1, minval=1, title="MACD Mult")
//SL & TP Calculations
i_SL=input(true, title="Use Swing Lo/Hi Stop Loss & Take Profit")
i_SwingLookback=input(20, title="Swing Lo/Hi Lookback")
i_SLExpander=input(defval=0, step=.2, title="SL Expander")*.01
i_TPExpander=input(defval=0, step=.2, title="TP Expander")*.01
//Strategy Variables
EMA=ema(close,i_EMAlength)
[macdLine, signalLine, histLine]=macd(close, 12*i_MACDmult, 26*i_MACDmult, 9*i_MACDmult)
EMAupper=EMA+((atr(100))*i_EMAexpander)
EMAlower=EMA-((atr(100))*i_EMAexpander)
//SL & TP Variables
SwingLow=lowest(i_SwingLookback)
SwingHigh=highest(i_SwingLookback)
//Calculations
EMAbuy=i_EMAreverse ? close > EMAupper : close < EMAlower
EMAsell=i_EMAreverse ? close < EMAlower : close > EMAupper
MACDbuy=crossover(macdLine, signalLine)
MACDsell=crossunder(macdLine, signalLine)
//SL & TP Calculations
bought=strategy.position_size != strategy.position_size[1]
lSL=valuewhen(bought, SwingLow, 0)*(1-i_SLExpander)
sSL=valuewhen(bought, SwingHigh, 0)*(1+i_SLExpander)
lTP=strategy.position_avg_price + (strategy.position_avg_price-(valuewhen(bought, SwingLow, 0))*(1-i_TPExpander))
sTP=strategy.position_avg_price - (valuewhen(bought, SwingHigh, 0) - strategy.position_avg_price)*(1+i_TPExpander*100)
islong=strategy.position_size > 0
isshort=strategy.position_size < 0
SL= islong ? lSL : isshort ? sSL : na
TP= islong ? lTP : isshort ? sTP : na
//Entries
strategy.entry("long", long=not i_reverse?true:false, when=EMAbuy and MACDbuy)
strategy.entry("short", long=not i_reverse?false:true, when=EMAsell and MACDsell)
//Exits
if i_SL
strategy.exit("longexit", "long", stop=SL, limit=TP)
strategy.exit("shortexit", "short", stop=SL, limit=TP)
//Plots
plot(EMA, "EMA", color=color.white, linewidth=2)
plot(EMAupper, "EMA Upper Band")
plot(EMAlower, "EMA Lower Band")
plot(i_SL ? SL : na, color=color.red, style=plot.style_cross, title="SL")
plot(i_SL ? TP : na, color=color.green, style=plot.style_cross, title="TP")