Chiến lược giao dịch đa khung thời gian dựa trên các chỉ báo Supertrend và CCI


Ngày tạo: 2024-01-18 15:09:33 sửa đổi lần cuối: 2024-01-18 15:09:33
sao chép: 2 Số nhấp chuột: 855
1
tập trung vào
1617
Người theo dõi

Chiến lược giao dịch đa khung thời gian dựa trên các chỉ báo Supertrend và CCI

Tổng quan

Chiến lược này kết hợp chỉ số siêu xu hướng và chỉ số kênh hàng hóa (CCI) để thực hiện theo dõi xu hướng và tạo tín hiệu giao dịch trên nhiều khung thời gian. Ý tưởng chính của chiến lược này là sử dụng chỉ số CCI để xác định hướng xu hướng ngắn hạn, đồng thời kết hợp với chỉ số siêu xu hướng để xác định hướng xu hướng trung hạn và dài hạn.

Nguyên tắc chiến lược

Chỉ số CCI đánh giá xu hướng ngắn hạn

Chỉ số CCI có thể xác định hiện tượng quá mua quá bán, khi chỉ số CCI đi từ dưới lên qua trục 0 là tín hiệu đa đầu, ngược lại là tín hiệu đầu không. 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 chu kỳ và vị trí trục trung tâm của chỉ số CCI.

TrendUp := cci[1] > ML ? max(Up,TrendUp[1]) : Up 
TrendDown := cci[1]< ML ? min(Dn,TrendDown[1]) : Dn

Phần mã này sẽ xác định xem cc có đi trên trục 0 hay không, nếu có thì cập nhật đường ray trên của xu hướng siêu, và đường ray dưới để cập nhật đường ray dưới.

Chỉ số siêu xu hướng đánh giá xu hướng trung và dài hạn

Chỉ số siêu xu hướng có thể xác định hướng của xu hướng trung và dài hạn bằng cách kết hợp chỉ số ATR với giá. Khi giá phá vỡ siêu xu hướng, tín hiệu lên là tín hiệu nhiều đầu và tín hiệu xuống là tín hiệu không đầu.

Công thức tính toán cho chỉ số siêu xu hướng trong chiến lược này là:

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 Trend đánh giá xu hướng hiện tại của siêu xu hướng:

Trend := cci > ML ? 1: cci < ML ? -1: nz(Trend[1],1)

Kết hợp CCI và siêu xu hướng

Bằng cách tích hợp chỉ số CCI và chỉ số xu hướng siêu, chiến lược này thực hiện phán đoán xu hướng trong nhiều khung thời gian. Chỉ số CCI nắm bắt xu hướng ngắn hạn, chỉ số xu hướng siêu phán đoán xu hướng trung hạn.

Một tín hiệu giao dịch đáng tin cậy hơn được tạo ra khi cả hai hướng đều phù hợp.

isLong  = st_trend == 1
isShort = st_trend == -1

Thời gian nhập là ngắn hạn và trung hạn đồng hướng, thời gian ra là ngắn hạn và trung hạn và dài hạn ngược.

Lợi thế chiến lược

Phân tích nhiều khung thời gian

Chiến lược này kết hợp cả các chỉ số đánh giá xu hướng ngắn hạn và trung hạn, làm cho tín hiệu giao dịch đáng tin cậy hơn.

Các tham số có thể điều chỉnh

Các tham số Factor trong chỉ số siêu xu hướng và cc_period của chỉ số CCI có thể được điều chỉnh theo thị trường, giúp chiến lược linh hoạt hơn.

Đơn giản và rõ ràng

Cấu trúc chiến lược đơn giản, rõ ràng, dễ hiểu và thực hiện, rất phù hợp cho người mới bắt đầu giao dịch số lượng.

Phạm vi rộng

Có thể áp dụng cho các thị trường như cổ phiếu, ngoại hối, tiền điện tử, hoặc có thể điều chỉnh tùy theo các tham số để áp dụng cho các loại khác nhau.

Rủi ro chiến lược và giải pháp

Giá cả biến động mạnh

Nhiều tín hiệu giả sẽ xuất hiện khi giá dao động mạnh. Các tham số Factor của siêu xu hướng có thể được mở rộng thích hợp, làm giảm tần suất giao dịch của chiến lược.

Tiếp theo không mạnh mẽ

Siêu xu hướng tự nó không đủ để theo dõi sự mạnh mẽ, nó có thể được xem xét kết hợp với các chỉ số động lực để theo dõi xu hướng trong giai đoạn tăng tốc xu hướng.

Chiến lược dừng lỗ

Chiến lược này không có thiết lập dừng lỗ, có thể kết hợp với kích thước chỉ số ATR thiết lập trails dừng lỗ.

Hướng tối ưu hóa chiến lược

Sự liên quan của thị trường

Điều chỉnh các tham số của siêu xu hướng và CCI theo các đặc điểm của thị trường khác nhau để tăng sự ổn định của chiến lược.

Động lực chỉ số kết hợp

Kết hợp với các chỉ số động lực như MACD, KDJ, theo dõi xu hướng trong giai đoạn tăng tốc xu hướng, có thể thu được lợi nhuận cao hơn.

Học tập tích hợp

Sử dụng các phương pháp học máy và học tập tích hợp để tối ưu hóa các tham số chiến lược và quy tắc giao dịch.

Tóm tắt

Chiến lược này kết hợp thành công với các siêu xu hướng và chỉ số CCI, để thực hiện phán đoán xu hướng trong nhiều khung thời gian. Chiến lược đơn giản, dễ hiểu, tham số có thể điều chỉnh, tiềm năng thu nhập lớn. Có thể được tối ưu hóa hơn nữa bằng cách điều chỉnh, dừng lỗ và học tập tích hợp, làm cho nó trở thành một chiến lược giao dịch đáng tin cậy, ổn định và hiệu quả.

Mã nguồn chiến lượ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 )