Chiến lược này kết hợp ATR và trung bình động T3 để xác định và theo dõi xu hướng. ATR tạo thành các kênh giá để đánh giá hướng xu hướng tổng thể.
ATR tạo thành các kênh giá, hướng kênh xác định xu hướng chính.
Trung bình di chuyển T3 giúp xác định thời gian nhập khẩu cụ thể, mua trên đường phá giá T3.
Giá phá vỡ dưới dải dưới sẽ kích hoạt thoát khỏi lỗ dừng; phá vỡ trên dải trên sẽ mang lại lợi nhuận.
Tùy chọn giao dịch chỉ dài hoặc hai hướng.
Tối ưu hóa tham số kết hợp với bản chất chỉ số để tìm các thiết lập tối ưu.
Các kênh ATR cung cấp xác định xu hướng và hướng rõ ràng.
Các thông số T3 có thể điều chỉnh để ghi lại xu hướng ở các cấp độ khác nhau.
Các quy tắc dừng lỗ và lấy lợi nhuận nhất quán tránh các lối ra tùy ý.
Tần suất giao dịch thấp phù hợp với các chiến lược nắm giữ dài hạn.
Sự khác biệt chỉ số có thể gây ra các giao dịch sai.
Không xem xét các mô hình biến động cổ phiếu cá nhân có nguy cơ quá phù hợp.
Tần suất giao dịch thấp có nguy cơ mất cơ hội và tiềm năng lợi nhuận hạn chế.
Việc nắm giữ các vị trí lớn mang lại rủi ro trượt cuối ngày.
Thêm các chỉ số khác để đảm bảo tính hợp lệ của giao dịch.
Điều chỉnh tham số cho các sản phẩm khác nhau cải thiện khả năng thích nghi.
Tối ưu hóa kích thước vị trí để cân bằng tần suất và rủi ro.
Hãy xem xét động dừng lỗ và lợi nhuận để mở rộng không gian lợi nhuận.
Thêm các bộ lọc cấp chiến lược để cải thiện độ bền.
Chiến lược tích hợp ATR và T3 trung bình động để theo dõi xu hướng đơn giản và hiệu quả.
/*backtest start: 2023-09-09 00:00:00 end: 2023-09-16 00:00:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //Author - CryptoJoncis strategy("ATR and T3 strategy", shorttitle="AT3S_CryptoJoncis", overlay=true) shorting = input(false, title="shorts on?") precentage_diff = input(5,title="Precantage")/100 Lengthx = input(25, title="Lenght of T3") //For best results use 0.7 or 0.618 Vfactx = input(0.72, minval=0.01,step=0.01, title="Volume Factor of T3 with HA source") Source_of_T3_Normal = close Source_of_T3 = Source_of_T3_Normal FirstEMAx = ema(Source_of_T3, Lengthx) SecondEMAx = ema(FirstEMAx, Lengthx) ThirdEMAx = ema(SecondEMAx, Lengthx) FourthEMAx = ema(ThirdEMAx, Lengthx) FifthEMAx = ema(FourthEMAx, Lengthx) SixthEMAx = ema(FifthEMAx, Lengthx) //Doing all the calculations which are from c1x = -Vfactx*Vfactx*Vfactx c2x = 3*Vfactx*Vfactx + 3*Vfactx*Vfactx*Vfactx c3x = -6*Vfactx*Vfactx -3*Vfactx -3*Vfactx*Vfactx*Vfactx c4x = 1 + 3*Vfactx + Vfactx*Vfactx*Vfactx + 3*Vfactx*Vfactx //Assigning EMAS to T3 Moving average T3MAx = c1x * SixthEMAx + c2x * FifthEMAx + c3x * FourthEMAx + c4x * ThirdEMAx color_of_Tilson_Moving_Average = T3MAx > T3MAx[1] ? lime : red plot(T3MAx, title="Tilson Moving Average(ema)", color=color_of_Tilson_Moving_Average) t_up = T3MAx + (T3MAx * precentage_diff) t_dn = T3MAx - (T3MAx * precentage_diff) x=plot(t_up, color=color_of_Tilson_Moving_Average) z=plot(t_dn, color=color_of_Tilson_Moving_Average) fill(x,z, color= T3MAx[1] < T3MAx ? lime : gray) Factor=input(5, minval=1) Pd=input(5, minval=1) // Up=hl2-(Factor*atr(Pd)) Dn=hl2+(Factor*atr(Pd)) TrendUp=close[1]>TrendUp[1]? max(Up,TrendUp[1]) : Up TrendDown=close[1]<TrendDown[1]? min(Dn,TrendDown[1]) : Dn Trend = close > TrendDown[1] ? 1: close< TrendUp[1]? -1: nz(Trend[1],1) Tsl = Trend==1? TrendUp: TrendDown linecolor = Trend == 1 ? green : red // b=plot(Tsl, color = linecolor , style = line , linewidth = 2,title = "") Factor1=input(1, minval=1) Pd1=input(1, minval=1) // Up1=hl2-(Factor1*atr(Pd1)) Dn1=hl2+(Factor1*atr(Pd1)) TrendUp1=close[1]>TrendUp1[1]? max(Up1,TrendUp1[1]) : Up1 TrendDown1=close[1]<TrendDown1[1]? min(Dn1,TrendDown1[1]) : Dn1 Trend1 = close > TrendDown1[1] ? 1: close< TrendUp1[1]? -1: nz(Trend1[1],1) Tsl1 = Trend1==1? TrendUp1: TrendDown1 linecolor1 = Trend1 == 1 ? green : red // a=plot(Tsl1, color = linecolor1 , style = line , linewidth = 2,title = "") long = (close > Tsl and close > Tsl1 and close > T3MAx) short = (close < Tsl and close < Tsl1 and close < T3MAx) if(shorting==true) strategy.entry("MacdSE", strategy.short, comment="Open Short", when=short) strategy.entry("MacdLE", strategy.long, comment="Open Long", when=long) strategy.close("MacdLE", when=hl2 < t_dn) strategy.close("MacdSE", when=hl2 > t_up) if(shorting==false) strategy.entry("MacdLE", strategy.long, comment="Open Long", when=long) strategy.close("MacdLE", when=hl2 < t_dn) fill(a,b,color=linecolor)