Tài nguyên đang được tải lên... tải...

Chiến lược cung vũ kỵ đôi

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

img

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 để tận dụng lợi thế của các tín hiệu đảo ngược và các chỉ số chu kỳ. Nó nhằm tạo ra các tín hiệu mua và bán chính xác hơn bằng cách tận dụng các điểm mạnh của cả hai chiến lược.

Chiến lược logic:

Double K Crossbow bao gồm hai phần:

  1. 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.

  2. Chiến lược đặc biệt K của Martin Pring: Nó sử dụng một chỉ số chu kỳ tổng hợp được hình thành bằng cách xếp chồng giá trị thay đổi tỷ lệ từ các khung thời gian khác nhau. Nó tạo ra tín hiệu mua khi chỉ số vượt trên đường trung bình động và bán tín hiệu khi vượt dưới.

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 )

Thêm nữa