Chiến lược Stochastics kép

Tác giả:ChaoZhang, Ngày: 2023-11-07 15:25:19
Tags:

img

Tổng quan

Chiến lược Stochastics kép đánh giá các vùng tăng và giảm bằng cách tính toán các chỉ số chứng khoán của giai đoạn hiện tại và nhiều khung thời gian, nhằm mục đích mua thấp và bán cao. Nó tính toán các chỉ số chứng khoán của cả giai đoạn hiện tại và 3 lần giai đoạn, và tạo ra các tín hiệu giao dịch dựa trên sự chéo chéo của các chỉ số khung thời gian khác nhau để theo dõi xu hướng.

Chiến lược logic

Chiến lược tính toán hai bộ chỉ số chứng khoán đồng thời. Bộ đầu tiên là chứng khoán của giai đoạn hiện tại, cụ thể là các giá trị K và D. Bộ thứ hai là chứng khoán gấp 3 lần giai đoạn hiện tại, cụ thể là MTFK và MTFD.

Khi MTFK vượt trên 50 và hiện tại K lớn hơn D, một tín hiệu mua được tạo ra, cho thấy một vùng tăng để đi dài. Khi MTFD vượt dưới 50 và hiện tại K nhỏ hơn D, một tín hiệu bán được tạo ra, cho thấy một vùng giảm để đi ngắn.

Do đó, chiến lược sử dụng các chỉ số chứng khoán kép để đánh giá các vùng tăng và giảm và theo dõi xu hướng giá. Nó đi dài trong các vùng tăng và đi ngắn trong các vùng giảm, đạt được mục tiêu mua thấp và bán cao.

Cụ thể, logic long entry là:

longCondition = crossover(mtfK, 50) and k>50 and k>d and mtfK>mtfD  

Lý thuyết ngắn gọn là:

shortCondition = crossunder(mtfD, 50) and k<50 and k<d and mtfK<mtfD

Trong đó mtfK là giá trị K của giai đoạn 3x, và mtfD là giá trị D của giai đoạn 3x. Các tín hiệu dài được tạo ra khi mtfK vượt trên 50 và k>d. Các tín hiệu ngắn được tạo ra khi mtfD vượt dưới 50 và k

Chiến lược này cũng thiết lập logic stop loss. Khi dài, nếu mtfD vượt qua dưới dải trên, một tín hiệu gần được tạo ra. Khi ngắn, nếu mtfK vượt qua trên dải dưới, một tín hiệu gần được kích hoạt.

Phân tích lợi thế

Những lợi thế của chiến lược này là:

  1. Sử dụng stochastics kép cung cấp đánh giá chính xác hơn về các khu vực tăng và giảm. Chỉ số thời gian hiện tại đánh giá xu hướng ngắn hạn trong khi chỉ số thời gian lớn hơn đánh giá xu hướng dài hạn. Kết hợp cả hai có thể nắm bắt xu hướng tốt hơn.

  2. Giao dịch dựa trên sự chéo chéo của các chỉ số khung thời gian khác nhau có thể theo dõi hiệu quả xu hướng và đạt được mức mua thấp và bán cao.

  3. Logic dừng lỗ giúp kiểm soát rủi ro và hạn chế lỗ ở một mức độ nào đó.

  4. Logic chiến lược đơn giản và rõ ràng, dễ hiểu và thực hiện cho giao dịch trực tiếp.

Phân tích rủi ro

Chiến lược này cũng có một số rủi ro:

  1. Stochastics kép có thể tạo ra các tín hiệu sai, gây ra các giao dịch không cần thiết. Ví dụ, sự khác biệt giữa xu hướng ngắn hạn và dài hạn do các sự kiện đột ngột.

  2. Các thiết lập stop loss không chính xác có thể dẫn đến sự gia tăng tổn thất.

  3. Giao dịch thường xuyên được tạo ra bởi chiến lược có thể ảnh hưởng tiêu cực đến lợi nhuận do hoa hồng.

  4. Chiến lược chỉ dựa trên các chỉ số kỹ thuật mà không xem xét các yếu tố cơ bản, nên được theo dõi ở một mức độ nào đó.

Giải pháp:

  1. Điều chỉnh các tham số của stochastics kép để giảm tín hiệu sai.

  2. Tối ưu hóa logic dừng lỗ và đặt khoảng cách dừng lỗ hợp lý.

  3. Điều chỉnh các thông số để giảm tần suất giao dịch.

  4. Hãy chú ý đến các sự kiện cơ bản quan trọng để tránh giao dịch chủ quan.

Hướng dẫn tối ưu hóa

Chiến lược có thể được tối ưu hóa trong các khía cạnh sau:

  1. Tối ưu hóa các tham số của stochastics kép để giảm tín hiệu sai. Kiểm tra tác động của các giá trị K và D khác nhau.

  2. Kết hợp các chỉ số khác để lọc tín hiệu, chẳng hạn như MACD, đường trung bình động vv, tránh các tín hiệu sai.

  3. Tối ưu hóa chiến lược dừng lỗ bằng cách thử nghiệm các điểm dừng lỗ và tỷ lệ khác nhau để kiểm soát rủi ro hiệu quả.

  4. Bao gồm các chỉ số khối lượng giao dịch, chẳng hạn như khối lượng phá vỡ, để tránh giao dịch không hiệu quả trong quá trình củng cố giá.

  5. Kiểm tra các khoảng thời gian giữ khác nhau. quá ngắn thời gian giữ dẫn đến hoa hồng ăn lợi nhuận, quá lâu không thể ngăn chặn tổn thất trong thời gian.

  6. Bao gồm các yếu tố cơ bản, đóng các vị trí xung quanh các sự kiện quan trọng để tránh bị sốc.

Tóm lại

Chiến lược Stochastics kép đánh giá các vùng tăng và giảm theo các chỉ số stochastic thời kỳ hiện tại và nhiều thời kỳ, đạt được mục tiêu mua thấp và bán cao. Nó có những lợi thế như khả năng theo dõi xu hướng mạnh mẽ, logic đơn giản và giao dịch trực tiếp dễ dàng. Nhưng rủi ro tồn tại, đòi hỏi điều chỉnh tham số, tối ưu hóa lỗ dừng và kết hợp các kỹ thuật hoặc cơ bản khác để cải thiện. Nếu được tối ưu hóa toàn diện và kiểm tra nghiêm ngặt, chiến lược này có thể trở thành một hệ thống theo xu hướng rất thực tế.


/*backtest
start: 2023-10-07 00:00:00
end: 2023-11-06 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("stoch startegy", overlay=false,default_qty_type=strategy.percent_of_equity,default_qty_value=100,currency=currency.USD)

len = input(54, minval=1, title="Length for Main Stochastic") 
smoothK = input(12, minval=1, title="SmoothK for Main Stochastic")
smoothD = input(3, minval=1, title="SmoothD for Main Stochastic")
upLine = input(80, minval=50, maxval=90, title="Upper Line Value?")
lowLine = input(30, minval=10, maxval=50, title="Lower Line Value?")
trailStep=input(100,minval=10,title="Trialing step value")

// current stochastic calculation
k = sma(stoch(close, high, low, len), smoothK)
d = sma(k, smoothD)

//mtf stochastic calculation smoothed with period

mtfK= sma(stoch(close, high, low, len), smoothK*3)
mtfD= sma(k, smoothD*3)

plot(k,"current TF k",blue,style=line, linewidth=2)
plot(d,"current TF d",red,style=line, linewidth=2)
plot(mtfK,"MTF TF k",black,style=line)
plot(mtfD,"Multi TF d",green,style=line, linewidth=2)
hline(upLine)
hline(50)
hline(lowLine)

longCondition = crossover(mtfK, 50) and k>50 and  k>d and mtfK>mtfD
if (longCondition)
    strategy.entry("Lungo", strategy.long)

shortCondition = crossunder(mtfD, 50) and k<50 and  k<d and mtfK<mtfD
if (shortCondition)
    strategy.entry("Corto", strategy.short)
    
exitlong=crossunder(mtfD, upLine)
exitshort=crossover(mtfK, lowLine)

if (exitlong)
    strategy.exit("Esci lungo","Lungo",trail_points=trailStep)
if (exitshort)
    strategy.exit("Esci corto","Corto",trail_points=trailStep)
    
showZones   = input(true, title="Show Bullish/Bearish Zones")
// bullish signal rule: 
bullishRule = k >= mtfD
// bearish signal rule: 
bearishRule = k <= mtfD
// current trading State
ruleState = 0
ruleState := bullishRule ? 1 : bearishRule ? -1 : nz(ruleState[1])
bgcolor(showZones ? ( ruleState==1 ? green : ruleState==-1 ? red : gray ) : na , title="supertrend Bullish/Bearish Zones", transp=90)



Thêm nữa