
Strategi ini menggunakan sistem linier rata-rata dari beberapa waktu, menggabungkan berbagai indikator teknis seperti indikator RSI, untuk mencapai multi-rajah otomatis. Strategi ini disebut Multi-Timeframe Moving Average System Trading Strategy.
Strategi ini menggunakan beberapa indikator rata-rata seperti JMA, TEMA, DEMA untuk menghitung tren harga dalam periode yang berbeda seperti 15 menit, 30 menit, 60 menit. Strategi ini kemudian membandingkan pergerakan harga dalam periode yang berbeda untuk menentukan apakah ada perpecahan antara garis panjang dan garis pendek. Jika ada sinyal perpecahan yang signifikan, sinyal perdagangan dihasilkan.
Secara khusus, trend, trend2 dan trend3 dalam strategi mewakili tren harga 15 menit, 30 menit, dan 60 menit. Jika harga 15 menit berbalik, dan 30 menit dan 60 menit belum berbalik, maka ada perbedaan antara garis pendek dan panjang, dan sinyal perdagangan dihasilkan. Jika semua tren siklus konsisten, maka tidak ada sinyal perdagangan dihasilkan.
Dengan membandingkan hubungan antara beberapa siklus, memfilter beberapa sinyal palsu, menghasilkan sinyal perdagangan yang lebih andal, yang merupakan inti dari strategi tersebut.
Strategi ini memiliki beberapa keuntungan utama:
Strategi ini juga memiliki beberapa risiko:
Untuk mengurangi risiko tersebut, kita dapat mengambil langkah-langkah berikut:
Strategi ini masih memiliki ruang untuk dioptimalkan lebih jauh:
Strategi ini menghasilkan sinyal perdagangan dengan mempertimbangkan hubungan garis panjang dan pendek dari pergerakan harga pada waktu yang lebih banyak. Strategi ini menghasilkan sinyal perdagangan dengan kombinasi analisis komprehensif dari berbagai indikator. Strategi ini juga memiliki ruang untuk perbaikan. Strategi ini dapat dioptimalkan di masa depan dengan mengintegrasikan pembelajaran mesin, slip adaptif, dan konfirmasi harga.
/*backtest
start: 2023-11-11 00:00:00
end: 2023-12-11 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("Drexel Strategy", overlay=true )
Length1=7
Length2=9
Multiplier=input(1.5,"Multiplier")
jma(src,length) =>
beta = 0.45*(length-1)/(0.45*(length-1)+2)
alpha = beta
tmp0 = (1-alpha)*src + alpha*nz(tmp0[1])
tmp1 = (src - tmp0[0])*(1-beta) + beta*nz(tmp1[1])
tmp2 = tmp0[0] + tmp1[0]
tmp3 = (tmp2[0] - nz(tmp4[1]))*((1-alpha)*(1-alpha)) + (alpha*alpha)*nz(tmp3[1])
tmp4 = nz(tmp4[1]) + tmp3[0]
JMA = tmp4
JMA
rsx(src,length) =>
f90_ = (nz(f90_[1]) == 0.0) ? 1.0 : (nz(f88[1]) <= nz(f90_[1])) ? nz(f88[1])+1 : nz(f90_[1])+1
f88 = (nz(f90_[1]) == 0.0) and (length-1 >= 5) ? length-1.0 : 5.0
f8 = 100.0*(src)
f18 = 3.0 / (length + 2.0)
f20 = 1.0 - f18
f10 = nz(f8[1])
v8 = f8 - f10
f28 = f20 * nz(f28[1]) + f18 * v8
f30 = f18 * f28 + f20 * nz(f30[1])
vC = f28 * 1.5 - f30 * 0.5
f38 = f20 * nz(f38[1]) + f18 * vC
f40 = f18 * f38 + f20 * nz(f40[1])
v10 = f38 * 1.5 - f40 * 0.5
f48 = f20 * nz(f48[1]) + f18 * v10
f50 = f18 * f48 + f20 * nz(f50[1])
v14 = f48 * 1.5 - f50 * 0.5
f58 = f20 * nz(f58[1]) + f18 * abs(v8)
f60 = f18 * f58 + f20 * nz(f60[1])
v18 = f58 * 1.5 - f60 * 0.5
f68 = f20 * nz(f68[1]) + f18 * v18
f70 = f18 * f68 + f20 * nz(f70[1])
v1C = f68 * 1.5 - f70 * 0.5
f78 = f20 * nz(f78[1]) + f18 * v1C
f80 = f18 * f78 + f20 * nz(f80[1])
v20 = f78 * 1.5 - f80 * 0.5
f0 = ((f88 >= f90_) and (f8 != f10)) ? 1.0 : 0.0
f90 = ((f88 == f90_) and (f0 == 0.0)) ? 0.0 : f90_
v4_ = ((f88 < f90) and (v20 > 0.0000000001)) ? (v14 / v20 + 1.0) * 50.0 : 50.0
rsx = ((v4_ > 100.0) ? 100.0 : (v4_ < 0.0) ? 0.0 : v4_)-50
rsx
xPrice=open
emaA = ema(xPrice, Length2)
Xprice = rsx(open,14)
XPrice = high, xprice = low
xe1 = jma(xPrice, Length1)
xe11 = jma(Xprice[1],Length1)
xe111 = jma(XPrice[1],Length1)
xe1111=jma(xprice[1],Length1)
xe2 = jma(xe1, Length1)
xe21 = jma(xe111, Length1)
xe3 = jma(xe2, Length1)
xe31 = jma(xe1111,Length2)
xe3a = jma(xe2,Length1)
xe4 = jma(xe3, Length1)
xe5 = jma(xe4, Length1)
xe6 = jma(xe5, Length1)
b = 0.7
c1 = -b*b*b
c2 = 3*b*b+3*b*b*b
c3 = -6*b*b-3*b-3*b*b*b
c3a = nz(c3a[1])
c4 = 1+3*b+b*b*b+3*b*b
TEMA = c1 * xe6 + c2 * xe5 + c3 * xe4 + c4 * xe3
DEMA = 2 * emaA - ema(emaA, Length2)
Length(mod)=>(mod*c3a)+Length2
Trend1=TEMA/DEMA
a=rsx(open,Length(2))
b1=rsx(open,Length(3))
c=rsx(open,Length(5))
d=rsx(open,Length(8))
e=rsx(open,Length(13))
f=rsx(open,Length(21))
g=rsx(open,Length(34))
h=rsx(open,Length(55))
i=rsx(open,Length(89))
j=rsx(open,Length(144))
trend1 = (((a-b1)+(c-d)+(e-f)+(g-h)+(i-j))/10)
trend = trend1>0?avg(a,b,c4,c2):trend1==0?XPrice:avg(rsx(open,24),jma(open,24),rsx(jma(open,24),24))
trend2 = trend1>0?avg(d,e,c2,c1):trend1==0?XPrice:avg(rsx(open,48),jma(open,48),rsx(jma(open,48),48))
trend3 = trend1>0?avg(d,e,c2,c1):trend1==0?xprice:avg(rsx(open,96),jma(open,96),rsx(jma(open,96),96))
bc=request.security(syminfo.tickerid,'15',trend)
bc1=request.security(syminfo.tickerid,'15',trend2)
bc2=request.security(syminfo.tickerid,'15',trend3)
bd=request.security(syminfo.tickerid,'30',trend)
bd1=request.security(syminfo.tickerid,'30',trend2)
bd2=request.security(syminfo.tickerid,'30',trend3)
be=request.security(syminfo.tickerid,'60',trend)
be1=request.security(syminfo.tickerid,'60',trend2)
be2=request.security(syminfo.tickerid,'60',trend3)
bf=request.security(syminfo.tickerid,'120',trend)
bf1=request.security(syminfo.tickerid,'120',trend2)
bf2=request.security(syminfo.tickerid,'120',trend3)
bg=request.security(syminfo.tickerid,'240',trend)
bg1=request.security(syminfo.tickerid,'240',trend2)
bg2=request.security(syminfo.tickerid,'240',trend3)
bh=request.security(syminfo.tickerid,'D',trend)
bh1=request.security(syminfo.tickerid,'D',trend2)
bh2=request.security(syminfo.tickerid,'D',trend3)
Trend=((bc-bc1)+(bd-bd1)+(be-be1)+(bf-bf1)+(bg-bg1)+(bh))
Trend11=((bc-bc1)+(bd-bd1)+(be-be1)+(bf-bf1)+(bg-bg1)+(bh1))
Trend33 = max(min(min(min(bc2,bd2),min(be2,bf2)),bg2),bh2)
AverageTrend=sma(Trend1,1000)
StdDev=Multiplier*stdev(Trend1,1000)
TopBand=AverageTrend+StdDev
BotBand=AverageTrend-StdDev
ap=open
n1=10
n2=21
esa1 = jma(ap, n1)
d1 = jma(abs(ap - esa1), n1)
x1 = trend3==Trend33
y1 = trend2==Trend11
ci = (ap - esa1) / (0.015 * d1)
tci = jma(ci, n2)
wt1=tci
wt2=sma(wt1,4)
fast=jma(open,5)
slow=jma(open,13)
macd=fast-slow
signal=sma(macd,4)
WaveTrend1=wt1-wt2
JMACD1=macd-signal
rsi = (((rsi(open,6))-50)*3)
g1=rsi>Trend1 and WaveTrend1>Trend1 and JMACD1>Trend1
h1=g1?tci*c3a:nz(h[1])
strategy.entry("Long",true,when=x1)
strategy.close("Long",y1)
strategy.entry("Short",false,when=y1)
strategy.close("Short",x1)