Tổng quan: Chiến lược Double K Crossbow kết hợp chiến lược 123 Reversal và chiến lược Special K của Martin Pring
Chiến lược logic:
Double K Crossbow bao gồm hai phần:
123 Chiến lược đảo ngược: Nó xác định tín hiệu mua và bán dựa trên 2 ngày liên tiếp đảo ngược giá đóng cửa, kết hợp với các phép đọc dao động chứng khoán. Nó tạo ra tín hiệu mua khi mức đóng cửa cao hơn mức đóng cửa trước trong 2 ngày và chứng khoán stochastic dưới 50, cho thấy hợp nhất. Nó tạo ra tín hiệu bán khi mức đóng cửa thấp hơn mức đóng cửa trước trong 2 ngày và chứng khoán stochastic trên 50, cho thấy phân phối.
Chiến lược đặc biệt K của Martin Pring
Double K Crossbow củng cố các tín hiệu từ cả hai chiến lược, đòi hỏi sự đồng ý để kích hoạt các giao dịch thực tế.
Phân tích lợi thế:
Kết hợp các tín hiệu từ hai chiến lược để có thể tin cậy hơn vào và ra khỏi giao dịch.
123 Chuyển đổi đánh giá các sự đảo ngược ngắn hạn trong khi đặc biệt K đánh giá xu hướng dài hạn.
Tỷ lệ thay đổi nhiều khung thời gian cung cấp cái nhìn sâu sắc về chu kỳ thị trường.
Các tham số ngẫu nhiên có thể tối ưu hóa thích nghi với các điều kiện thị trường khác nhau.
Phân tích rủi ro:
Các tín hiệu củng cố có thể bỏ lỡ một số điểm mua / bán và chậm lại các động thái ngắn hạn.
Các chiến lược có thể không đồng ý trong các sự kiện ngoại lệ, đòi hỏi phải đánh giá về hướng đi.
Cần theo dõi và tối ưu hóa các thông số cho cả hai chiến lược, tăng sự phức tạp.
Tối ưu hóa không chính xác các thông số ngắn hạn và dài hạn có thể bỏ lỡ các bước ngoặt của chu kỳ.
Cơ hội gia tăng:
Kiểm tra các kết hợp tham số khác nhau để tìm các thiết lập tối ưu.
Thêm mô-đun dừng lỗ để hạn chế lỗ.
Thêm mô-đun kích thước vị trí để điều chỉnh theo điều kiện thị trường.
Kết hợp máy học để mô hình hóa tín hiệu mạnh mẽ hơn.
Thêm tối ưu hóa thích nghi để theo dõi nhịp thị trường một cách năng động.
Kết luận:
Double K Crossbow kết hợp thành công các điểm mạnh của các chiến lược đảo ngược và chu kỳ cho các tín hiệu chất lượng và cơ hội lợi nhuận nhiều khung thời gian. Cách tiếp cận mới này đáng để thử nghiệm và tối ưu hóa thêm như một chiến lược ổn định. Nhưng quản lý rủi ro và điều chỉnh tham số vẫn rất cần thiết cho lợi nhuận nhất quán trong các thị trường luôn thay đổi.
/*backtest start: 2023-09-17 00:00:00 end: 2023-10-17 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 17/02/2021 // This is combo strategies for get a cumulative signal. // // First strategy // This System was created from the Book "How I Tripled My Money In The // Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies. // The strategy buys at market, if close price is higher than the previous close // during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. // The strategy sells at market, if close price is lower than the previous close price // during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50. // // Second strategy // Pring's Special K is a cyclical indicator created by Martin Pring. // His method combines short-term, intermediate and long-term velocity // into one complete series. Useful tool for Long Term Investors // Modified for any source. // // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// Reversal123(Length, KSmoothing, DLength, Level) => vFast = sma(stoch(close, high, low, Length), KSmoothing) vSlow = sma(vFast, DLength) pos = 0.0 pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1, iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) pos MPSK(a, sources) => pos = 0.0 roc1 = (sma(roc(sources,10),10)*1) roc2 = (sma(roc(sources,15),10)*2) roc3 = (sma(roc(sources,20),10)*3) roc4 = (sma(roc(sources,30),15)*4) roc5 = (sma(roc(sources,40),50)*1) roc6 = (sma(roc(sources,65),65)*2) roc7 = (sma(roc(sources,75),75)*3) roc8 = (sma(roc(sources,100),100)*4) roc9 = (sma(roc(sources,195),130)*1) roc10 = (sma(roc(sources,265),130)*2) roc11 = (sma(roc(sources,390),130)*3) roc12 = (sma(roc(sources,530),195)*4) osc = roc1+roc2+roc3+roc4+roc5+roc6+roc7+roc8+roc9+roc10+roc11+roc12 oscsmt = sma(osc,a) pos := iff(osc > oscsmt, 1, iff(osc < oscsmt, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & Martin Pring's Special K", shorttitle="Combo", overlay = true) line1 = input(true, "---- 123 Reversal ----") Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- line2 = input(true, "---- Martin Pring`s ----") a = input(10, title = "Smooth" ) sources = input(title="Source", type=input.source, defval=close) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posMPSK = MPSK(a,sources) pos = iff(posReversal123 == 1 and posMPSK == 1 , 1, iff(posReversal123 == -1 and posMPSK == -1, -1, 0)) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1 , 1, pos)) if (possig == 1 ) strategy.entry("Long", strategy.long) if (possig == -1 ) strategy.entry("Short", strategy.short) if (possig == 0) strategy.close_all() barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )