Chiến lược kết hợp đột phá dải đảo ngược yếu tố kép


Ngày tạo: 2024-02-01 10:45:12 sửa đổi lần cuối: 2024-02-01 10:45:12
sao chép: 0 Số nhấp chuột: 600
1
tập trung vào
1617
Người theo dõi

Chiến lược kết hợp đột phá dải đảo ngược yếu tố kép

Tổng quan

Chiến lược này là một chiến lược kết hợp hai yếu tố, được điều khiển bởi yếu tố chuyển đổi ngược và yếu tố kênh băng tần, thực hiện chồng lên nhiều yếu tố, có thể tạo ra lợi thế chiến lược trong các môi trường thị trường khác nhau.

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

Chiến lược này bao gồm hai chiến lược con:

  1. 123 Chiến lược đảo ngược: Khi giá đóng cửa sau hai ngày liên tiếp giảm, nếu giá đóng cửa hôm nay phá vỡ giá thấp nhất hai ngày liên tiếp trước đó, đồng thời vượt qua đường chậm trên đường nhanh của chỉ số ngẫu nhiên vào ngày 9, hãy làm nhiều; Khi giá đóng cửa sau hai ngày liên tiếp tăng, nếu giá đóng cửa hôm nay phá vỡ giá cao nhất hai ngày liên tiếp trước đó, đồng thời vượt qua đường chậm dưới đường nhanh của chỉ số ngẫu nhiên vào ngày 9, hãy làm trống.

  2. Bộ lọc dải sóng: tính toán chỉ số dải sóng của giá trong một chu kỳ nhất định, làm nhiều khi chỉ số dải sóng lớn hơn một ngưỡng nhất định và làm trống khi chỉ số dải sóng nhỏ hơn một ngưỡng nhất định.

Tín hiệu kết hợp là: Nếu chiến lược đảo ngược 123 và chiến lược bộ lọc dải là đồng thời nhiều tín hiệu, hãy giữ nhiều vị trí; Nếu cả hai đều đồng thời có tín hiệu ngắn, hãy giữ vị trí ngắn; Nếu không, hãy xóa.

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

  • Động cơ hai yếu tố, khả năng thích ứng với thị trường, có thể kiếm được lợi nhuận trong nhiều tình huống
  • 123 Chiến lược đảo ngược có thể nắm bắt cơ hội đảo ngược trong biến động
  • Bộ lọc dải sóng có thể theo dõi xu hướng trong các trường hợp có xu hướng rõ ràng
  • Các tín hiệu kết hợp được xác minh để giảm khả năng giao dịch sai

Phân tích rủi ro

  • Thiết lập tham số không đúng có thể dẫn đến giao dịch quá thường xuyên
  • Có thể xảy ra nhiều lần mất mát trong tình huống chấn động
  • Cần chú ý đến ảnh hưởng của phí giao dịch

Hướng tối ưu hóa

  • Điều chỉnh các tham số của bộ lọc dải sóng, tối ưu hóa tính toán các chỉ số dải sóng
  • Điều chỉnh các tham số của chiến lược đảo ngược 123 để tối ưu hóa phán quyết đảo ngược của nhiều giao dịch
  • Tham gia hệ thống ngăn chặn tổn thất để kiểm soát tổn thất đơn lẻ

Tóm tắt

Chiến lược này kết hợp các yếu tố đảo ngược và yếu tố xu hướng để thực hiện giao dịch định lượng được điều khiển bởi nhiều yếu tố. Bằng cách xác minh hai yếu tố có thể làm giảm khả năng giao dịch sai, chiến lược có thể hoạt động tốt trong nhiều thị trường. Sau đó, có thể được tối ưu hóa hơn nữa bằng cách điều chỉnh tham số và thiết lập dừng lỗ, để tăng sự ổn định và lợi nhuận của chiến lược.

Mã nguồn chiến lược
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 21/05/2019
// This is combo strategies for get 
// a cumulative signal. Result signal will return 1 if two strategies 
// is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
//
// 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
// The related article is copyrighted material from
// Stocks & Commodities Mar 2010
// You can use in the xPrice any series: Open, High, Low, Close, HL2, HLC3, OHLC4 and ect...
//
// 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


Bandpass_Filter(Length, Delta, TriggerLevel) =>
    xPrice = hl2
    beta = cos(3.14 * (360 / Length) / 180)
    gamma = 1 / cos(3.14 * (720 * Delta / Length) / 180)
    alpha = gamma - sqrt(gamma * gamma - 1)
    BP = 0.0
    pos = 0.0
    BP := 0.5 * (1 - alpha) * (xPrice - xPrice[2]) + beta * (1 + alpha) * nz(BP[1]) - alpha * nz(BP[2])
    pos := iff(BP > TriggerLevel, 1,
	       iff(BP <= TriggerLevel, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Bandpass Filter", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthBF = input(20, minval=1)
Delta = input(0.5)
TriggerLevel = input(0)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posBandpass_Filter = Bandpass_Filter(LengthBF, Delta, TriggerLevel)
pos = iff(posReversal123 == 1 and posBandpass_Filter == 1 , 1,
	   iff(posReversal123 == -1 and posBandpass_Filter == -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 ? red: possig == 1 ? green : blue )