Chiến lược này tích hợp chỉ số Supertrend và Chỉ số kênh hàng hóa (CCI) để thực hiện theo dõi xu hướng nhiều khung thời gian và tạo tín hiệu giao dịch. Ý tưởng chính là sử dụng chỉ số CCI để đánh giá hướng xu hướng ngắn hạn trong khi kết hợp chỉ số Supertrend để xác định hướng xu hướng trung hạn đến dài hạn.
Chỉ số CCI có thể xác định các kịch bản mua quá mức và bán quá mức. Một đường chéo lên của đường 0 là một tín hiệu tăng trong khi một đường giảm là một tín hiệu giảm. Chiến lược này sử dụng tính năng này để xác định hướng xu hướng ngắn hạn.
cci_period = input(28, "CCI Period")
cci = cci(source, cci_period)
ML = input(0, "CCI Mid Line pivot")
Mã trên xác định khoảng thời gian CCI và vị trí giữa dòng.
TrendUp := cci[1] > ML ? max(Up,TrendUp[1]) : Up
TrendDown := cci[1]< ML ? min(Dn,TrendDown[1]) : Dn
Mã này kiểm tra xem cci đi qua trên/dưới đường 0 để cập nhật dải trên/dưới của Supertrend.
Chỉ số Supertrend kết hợp ATR với giá để xác định xu hướng trung và dài hạn.
Supertrend được tính như sau:
Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd))
Trong đó Factor và Pd là các tham số có thể điều chỉnh.
Các biến xu hướng xác định xu hướng hiện tại Supertrend:
Trend := cci > ML ? 1: cci < ML ? -1: nz(Trend[1],1)
Bằng cách tích hợp CCI và Supertrend, chiến lược này nhận ra phán đoán xu hướng nhiều khung thời gian.
Khi các hướng đồng ý, các tín hiệu giao dịch đáng tin cậy hơn được tạo ra.
isLong = st_trend == 1
isShort = st_trend == -1
Nhập khi ngắn hạn và trung hạn liên kết, thoát khi hướng không đồng ý.
Tích hợp các chỉ số ngắn hạn và trung hạn cho các tín hiệu đáng tin cậy hơn.
Nhân tố Supertrend và Thời gian CCI có thể được điều chỉnh theo điều kiện thị trường.
Logic đơn giản và dễ hiểu, tuyệt vời cho người mới bắt đầu.
Áp dụng cho cổ phiếu, ngoại hối, tiền điện tử theo điều chỉnh tham số.
Nhiều tín hiệu sai có thể xảy ra khi giá dao động mạnh.
Kết hợp các chỉ số động lực để theo dõi các xu hướng tăng tốc.
Thêm stop loss dựa trên ATR để kiểm soát rủi ro.
Điều chỉnh các thông số cho các thị trường khác nhau.
Kết hợp với MACD, KDJ vv để bắt được động lực mạnh mẽ.
Sử dụng AI và phương pháp tập hợp để tối ưu hóa các thông số và quy tắc.
Chiến lược này kết hợp thành công Supertrend và CCI để theo dõi xu hướng nhiều khung thời gian. Logic đơn giản, tiềm năng phần thưởng tốt và khả năng tùy biến. Có thể cải thiện hơn nữa thông qua điều chỉnh tham số, dừng lỗ và học máy để trở thành một hệ thống giao dịch vững chắc.
/*backtest start: 2024-01-10 00:00:00 end: 2024-01-17 00:00:00 period: 10m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //@author=Daveatt StrategyName = "Best Supertrend CCI Strategy" ShortStrategyName = "Best Supertrend CCI Strategy" strategy(title=StrategyName, shorttitle=ShortStrategyName, overlay=true ) ////////////////////////// //* COLOR CONSTANTS *// ////////////////////////// AQUA = #00FFFFFF BLUE = #0000FFFF RED = #FF0000FF LIME = #00FF00FF GRAY = #808080FF DARKRED = #8B0000FF DARKGREEN = #006400FF GOLD = #FFD700 WHITE = color.white // Plots GREEN_LIGHT = color.new(color.green, 40) RED_LIGHT = color.new(color.red, 40) BLUE_LIGHT = color.new(color.aqua, 40) PURPLE_LIGHT = color.new(color.purple, 40) source = input(close) /////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// /////////////////////////////////// CCI ///////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// cci_period = input(28, "CCI Period") cci = cci(source, cci_period) //UL = input(80, "Upper level") //LL = input(20, "Lower Level") ML = input(0, "CCI Mid Line pivot") /////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// ///////////////////////////// SUPERTREND ///////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// Factor=input(3,title="[ST] Factor", minval=1,maxval = 100, type=input.float) Pd=input(3, title="[ST] PD", minval=1,maxval = 100) /////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// /////////////////////// SUPERTREND DETECTION ////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// f_supertrend(Factor, Pd) => Up=hl2-(Factor*atr(Pd)) Dn=hl2+(Factor*atr(Pd)) TrendUp = 0.0 TrendUp := cci[1] > ML ? max(Up,TrendUp[1]) : Up TrendDown = 0.0 TrendDown := cci[1]< ML ? min(Dn,TrendDown[1]) : Dn Trend = 0.0 Trend := cci > ML ? 1: cci < ML ? -1: nz(Trend[1],1) Tsl = Trend==1? TrendUp: TrendDown [Trend, Tsl] [st_trend, st_tsl] = f_supertrend(Factor, Pd) // Plot the ST linecolor = close >= st_tsl ? color.green : color.red plot(st_tsl, color = linecolor , linewidth = 3,title = "SuperTrend", transp=0) isLong = st_trend == 1 isShort = st_trend == -1 longClose = isLong[1] and isShort shortClose = isShort[1] and isLong strategy.entry("Long", 1, when=isLong) strategy.close("Long", when=longClose ) strategy.entry("Short", 0, when=isShort) strategy.close("Short", when=shortClose )