Chiến lược này áp dụng một hệ thống trung bình động nhiều khung thời gian, kết hợp với chỉ số RSI và các chỉ số kỹ thuật khác, để đạt được chuyển đổi tự động giữa các vị trí dài và ngắn.
Các chỉ số cốt lõi của chiến lược này là hệ thống trung bình động. Chiến lược sử dụng nhiều chỉ số trung bình động như JMA, TEMA, DEMA để tính xu hướng giá trong các khoảng thời gian khác nhau như 15min, 30min, 60min. Ví dụ, xu hướng MA được tính bởi JMA trong khung thời gian 15min đại diện cho phán đoán xu hướng giá trong khung thời gian đó. Sau đó, chiến lược so sánh xu hướng giá giữa các khung thời gian khác nhau để xác định sự khác biệt giữa xu hướng dài hơn và ngắn hơn. Nếu phát hiện sự khác biệt đáng kể, các tín hiệu giao dịch sẽ được tạo ra. Ngoài ra, chiến lược cũng kết hợp các chỉ số khác như RSI và Xu hướng sóng để đảm bảo độ tin cậy của tín hiệu giao dịch.
Cụ thể, các biến xu hướng, xu hướng2 và xu hướng3 trong chiến lược đại diện cho xu hướng giá của các khung thời gian 15 phút, 30 phút và 60 phút tương ứng. Nếu có sự đảo ngược giá 15 phút, trong khi 30 phút và 60 phút chưa đảo ngược, nó được đánh giá là sự khác biệt giữa xu hướng ngắn hơn và dài hơn, do đó tạo ra tín hiệu giao dịch. Không có tín hiệu nào sẽ được tạo ra nếu xu hướng của tất cả các khung thời gian là phù hợp.
Bằng cách so sánh các mối quan hệ giữa nhiều khung thời gian và lọc ra một số tín hiệu sai, các tín hiệu giao dịch đáng tin cậy hơn có thể được tạo ra
Những lợi thế chính của chiến lược này là:
Một số rủi ro cũng tồn tại với chiến lược này:
Chúng tôi có thể thực hiện các biện pháp sau đây để giảm thiểu các rủi ro trên:
Có chỗ cho việc tối ưu hóa thêm chiến lược này:
Chiến lược này so sánh xu hướng giá nhiều khung thời gian để xác định các mối quan hệ dài hạn so với ngắn hạn và tạo ra các tín hiệu giao dịch thông qua việc phân tích nhiều chỉ số
/*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)