Strategi ini menggunakan EMA dan MACD selama 255 kitaran untuk mencari peluang perdagangan berbalik. Apabila harga jauh dari 255 EMA, masukkan reverse apabila MACD bergolak atau mati.
Menggunakan 255 kitaran EMA sebagai penghakiman trend jangka panjang. Harga jauh dari EMA mewakili memasuki kawasan overbought dan oversold.
EMA di atas menetapkan atas, EMA di bawah menetapkan bawah, lebar orbit disesuaikan secara dinamik melalui penunjuk ATR.
Apabila harga lebih tinggi dari atas landasan, ia adalah kawasan membeli yang lebih tinggi, dan apabila harga lebih rendah dari bawah landasan, ia adalah kawasan menjual yang lebih tinggi. Dalam kes ini, tunggu isyarat pembalikan muncul.
Penunjuk MACD menggunakan parameter standard ((12,26,9) apabila garpu emas MACD adalah isyarat multihead, apabila garpu mati adalah isyarat kepala kosong .
Gabungan dengan isyarat EMA overbought and oversold dan MACD, apabila harga berada jauh dari EMA dan apabila MACD berpatah balik, masuk ke dalam kebalikan.
Menggunakan EMA 255 kitaran dapat menentukan arah trend jangka panjang.
MACD Gold Fork Dead Fork boleh menangkap peluang pembalikan jangka pendek dengan lebih sensitif.
EMA diletakkan di atas dan di bawah untuk menentukan kawasan overbought dan oversold, dan mengelakkan pergerakan dalam trend.
Strategi perdagangan terbalik, yang boleh masuk sebelum harga berbalik, mempunyai beberapa perancangan.
Penggunaan ATR Dinamik Stop Loss dapat mengawal risiko dengan berkesan.
Isyarat MACD mungkin bertukar palsu, menyebabkan kerugian yang tidak perlu.
Kemungkinan besar untuk berbalik dalam keadaan trend yang kuat adalah lebih besar, dan berbalik buta harus dielakkan.
Penetapan stop loss yang terlalu kecil boleh menyebabkan stop loss dicetuskan, dan yang terlalu besar mungkin tidak mengawal risiko.
Tetapan parameter yang tidak betul juga boleh menjejaskan kesan strategi dan perlu dioptimumkan melalui ujian berulang.
Kos dagangan juga mempengaruhi hasil akhir, dan perlu dipertimbangkan kesannya terhadap strategi.
Anda boleh menguji parameter kitaran EMA yang berbeza untuk mencari indikator trend jangka panjang yang lebih sesuai.
Anda boleh mencuba indikator lain yang digabungkan dengan EMA untuk menilai kawasan overbought dan oversold. Contohnya, Bollinger Bands, KD, RSI dan sebagainya.
Parameter MACD juga boleh dioptimumkan untuk mencari parameter gabungan yang lebih sensitif atau stabil.
Anda boleh menguji cara-cara lain untuk menghentikan kerugian, seperti trailing stop loss untuk mengunci keuntungan.
Parameter boleh dioptimumkan mengikut kitaran yang berbeza untuk pelbagai jenis, menjadikan strategi lebih mudah disesuaikan.
Ia boleh digabungkan dengan penunjuk kekuatan trend untuk mengelakkan pembalikan dalam trend yang kuat.
Strategi ini mengintegrasikan penghakiman trend jangka panjang di EMA dan isyarat pembalikan MACD jangka pendek, dan perdagangan terbalik di kawasan overbought dan oversold, merupakan strategi pembalikan asas. Strategi ini mempunyai kelebihan tertentu, tetapi terdapat juga beberapa risiko yang perlu dijaga. Dengan terus mengoptimumkan parameter dan kawalan risiko, strategi ini boleh menjadi strategi perdagangan kuantitatif yang berkesan.
/*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")