Strategi ini menggabungkan MACD Colors dan Linear Regression Indicators, dengan kombinasi yang cerdik untuk mencapai perdagangan berbalik yang kerap, sangat sesuai untuk short-line arbitraj dan perlindungan, yang merupakan strategi netral pasaran yang tipikal.
Strategi ini terdiri daripada beberapa bahagian:
Warna tiang MACD sebagai penunjuk trend. Apabila warna tiang MACD berwarna hijau, menunjukkan bahawa ia berada dalam trend menaik, dan tidak melakukan blanko; apabila warna tiang MACD berwarna merah, menunjukkan bahawa ia berada dalam trend menurun, dan tidak melakukan blanko.
Regresi linear sebagai penunjuk isyarat perdagangan utama. Apabila harga berbalik secara linear dari bawah, buat lebih banyak; Apabila harga berbalik secara linear dari atas ke bawah, buat kosong.
Saluran PAC terdiri daripada EMA yang tinggi, rendah, dan harga penutupan untuk menentukan arah regresi linear. Isyarat perdagangan dihasilkan hanya apabila arah regresi linear sesuai dengan trend dalam saluran.
EMA 89 sebagai garisan stop loss, apabila harga kembali menembusi garisan ini, stop loss diletakkan.
Logik penjanaan isyarat dagangan adalah:
isyarat berbilang kepala: regresi linear atas melalui saluran PAC tren bawah dan regresi linear ke arah atas dan MACD tiang warna bukan merah isyarat kosong: regresi linear ke bawah melalui saluran PAC ke atas dan regresi linear ke bawah dan MACD tidak berwarna hijau
Stop loss keluar isyarat: harga turun melalui EMA 89
Strategi ini menggabungkan penilaian trend dan tahap harga kritikal untuk mencapai perdagangan lindung nilai yang kerap.
Menggunakan warna tiang MACD untuk menentukan trend besar dan mengelakkan dagangan berlawanan arah.
Regresen linear mempunyai kehalusan yang dapat menyaring sebahagian daripada kebisingan.
Laluan yang dibentuk oleh EMA dengan jelas menentukan arah polygon.
Setting Stop Loss Line adalah munasabah dan menjamin keuntungan maksimum.
Frekuensi dagangan yang tinggi, sesuai untuk strategi frekuensi tinggi yang digunakan untuk perdagangan prosedur.
Perdagangan lindung nilai boleh menghasilkan keuntungan dalam keadaan yang tidak menentu.
Regresen linear dan penunjuk laluan memerlukan pengoptimuman parameter tertentu, jika tidak, ia mungkin tidak berfungsi.
Pembatalan kerosakan dalam keadaan gegaran yang besar mungkin lebih kerap dicetuskan.
Jumlah transaksi yang lebih tinggi memerlukan perhatian terhadap kesan yuran.
Indeks MACD mempunyai kemunduran dan mungkin terlepas daripada perubahan trend jangka pendek.
Saluran EMA juga perlu terus dioptimumkan untuk menyesuaikan diri dengan perubahan pasaran.
Sesuaikan parameter regresi linear dan saluran untuk menjadikan indikator lebih sesuai dengan ciri-ciri varieti yang berbeza.
Melepaskan stop loss dan memastikan nisbah stop loss lebih besar daripada 1.
Mengoptimumkan parameter MACD untuk menangkap lebih banyak isyarat jangka pendek.
Cuba dengan penunjuk lain sebagai alternatif regresi linear, seperti garis Bryn.
Meningkatkan kawalan kedudukan untuk mengelakkan kerugian yang terlalu besar.
Menapis sebahagian daripada isyarat dagangan digabungkan dengan RSI.
Strategi ini menggunakan pelbagai indikator teknikal untuk mencapai perdagangan perlindungan frekuensi tinggi. Kelebihannya adalah menangkap pembalikan jangka pendek, kawalan risiko yang masuk akal, sangat sesuai untuk masa gejolak pasaran. Ia juga perlu memperhatikan pengoptimuman dan penambahbaikan parameter tertentu, untuk mengelakkan terlalu sesuai.
/*backtest
start: 2022-10-20 00:00:00
end: 2023-10-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
// strategy("Sonic R + Linear Reg + Kumo Cloud + Barcolor MACD", overlay=true,default_qty_value=10000,initial_capital=200,currency=currency.USD, pyramiding=1)
EMA = input(defval=89, title="EMA Signal")
HiLoLen = input(34, minval=2,title="High Low channel Length")
pacC = ema(close,HiLoLen)
pacL = ema(low,HiLoLen)
pacH = ema(high,HiLoLen)
DODGERBLUE = #1E90FFFF
// Plot the Price Action Channel (PAC) base on EMA high,low and close//
L=plot(pacL, color=DODGERBLUE, linewidth=1, title="High PAC EMA",transp=90)
H=plot(pacH, color=DODGERBLUE, linewidth=1, title="Low PAC EMA",transp=90)
C=plot(pacC, color=DODGERBLUE, linewidth=2, title="Close PAC EMA",transp=80)
//Moving Average//
signalMA =ema(close,EMA)
plot(signalMA,title="EMA Signal",color=black,linewidth=3,style=line)
linereg = linreg(close, EMA, 0)
plot(linereg, color = orange, title = "Linear Regression Curve", style = line, linewidth = 1)
//////ICHIMOKU/////////
conversionPeriods = input(9),
basePeriods = input(26, minval=1, title="Base Line")
laggingSpan2Periods = input(52, minval=1, title="Lagging Span"),
displacement = input(26, minval=1)
donchian(len) => avg(lowest(len), highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods-1)
p1 = plot(leadLine1, offset = displacement-1, color=gray,title="Senkou span A", transp=90)
p2 = plot(leadLine2, offset = displacement-1, color=gray, title="Senkou span B", transp=90)
fill(p1, p2, color = leadLine1 > leadLine2 ? green : red, title="Kumo Cloud")
///////////////// MACD BARCOLOR /////////////////////
fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)
MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD
hisup= iff(delta>delta[1] and delta>0, 1,
iff(delta<delta[1], -1, nz(hisup[1], 0)))
hisdown = iff(delta<delta[1] and delta<0, 1,
iff(delta>delta[1], -1, nz(hisdown[1], 0)))
barcolor(hisup==1 and MACD>0 ? lime: hisdown==1 and MACD<0 ? red : blue )
///////////// SIGNAL ///////////////
conbuy = iff(crossover(linereg,pacL) and rising(linereg,5), 1,
iff(crossover(linereg,pacH) or (crossunder(linereg,pacL) and pacL<signalMA), -1, nz(conbuy[1], 0)))
consell = iff(crossunder(linereg,pacH) and falling(linereg,5), 1,
iff(crossunder(linereg,pacL) or (crossover(linereg,pacH) and pacH>signalMA), -1, nz(consell[1], 0)))
golong= conbuy==1 and close>open and open<pacH and close>linereg and hisdown!=1
goshort= consell==1 and close<open and open>pacL and close<linereg and hisup!=1
if(golong)
strategy.entry("Buy",strategy.long)
if(goshort)
strategy.entry("Sell",strategy.short)
closelong= conbuy==-1
closeshort=consell==-1
if(closelong)
strategy.close("Buy")
if(closeshort)
strategy.close("Sell")
////////////// TP and SL//.
//SL = input(defval=200.00, title="Stop Loss Point", type=float, step=1)
//rr= input(defval=0.1,title="Reward/Risk",type=float)
//useTPandSL = input(defval = false, title = "Use exit order strategy?")
//Stop = SL
//Take=SL*rr
//Q = 100
//if(useTPandSL)
// strategy.exit("Out Long", "Buy", qty_percent=Q, profit= Take, loss=Stop)
// strategy.exit("Out Short", "Sell", qty_percent=Q, profit= Take, loss=Stop)