Chiến lược kết hợp đảo ngược động lượng


Ngày tạo: 2023-10-30 11:49:26 sửa đổi lần cuối: 2023-10-30 11:49:26
sao chép: 1 Số nhấp chuột: 644
1
tập trung vào
1617
Người theo dõi

Chiến lược kết hợp đảo ngược động lượng

Tổng quan

Chiến lược này là sử dụng kết hợp hai chỉ số động lực để khám phá nhiều cơ hội giao dịch hơn. Chỉ số đầu tiên là chiến lược đảo ngược chỉ số ngẫu nhiên chậm và nhanh mà Wolf Jansen đưa ra trong cuốn sách của mình. Chỉ số thứ hai là giá tổng hợp theo xu hướng của John Ehlers.

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

Nguyên tắc của chiến lược đảo ngược chỉ số ngẫu nhiên nhanh chậm trong phần đầu tiên là: làm nhiều khi giá đóng cửa thấp hơn giá đóng cửa ngày trước hai ngày liên tiếp và đường nhanh cao hơn đường chậm; làm trống khi giá đóng cửa cao hơn giá đóng cửa ngày trước hai ngày liên tiếp và đường nhanh thấp hơn đường chậm.

Công thức tính toán cho giá tổng hợp theo xu hướng của phần hai là:

DSP = EMA ((HL/2, 0.25 chu kỳ) - EMA ((HL/2, 0.5 chu kỳ)

Trong đó, HL / 2 là điểm trung bình giá cao thấp, 0.25 chu kỳ EMA đại diện cho xu hướng ngắn hạn của giá, 0.5 chu kỳ EMA đại diện cho xu hướng dài hạn của giá. Giá tổng hợp xu hướng đi đại diện cho mức tăng giảm của giá so với chu kỳ thống trị của nó.

Chiến lược này xem xét tổng hợp hai tín hiệu chỉ số. Chỉ khi hai chỉ số phát ra tín hiệu mua hoặc bán cùng một lúc, thì sẽ mở vị trí.

Phân tích lợi thế

  • Sử dụng hai chỉ số để lọc các tín hiệu không chắc chắn, có thể giảm giao dịch sai
  • Hai chỉ số này được xác thực lẫn nhau để tăng độ tin cậy của tín hiệu.
  • Chiến lược đảo ngược chỉ số ngẫu nhiên nhanh chậm để nắm bắt cơ hội đảo ngược ngắn hạn
  • Xu hướng giảm giá tổng hợp có thể nhận ra xu hướng đường dài giữa
  • Kết hợp hai chỉ số, có thể nắm bắt sự đảo ngược và theo xu hướng, linh hoạt cao

Phân tích rủi ro

  • Các chỉ số ngẫu nhiên nhanh chóng không hoạt động tốt trong một thị trường bất ổn
  • Giá tổng hợp đi xu hướng có thể phát tín hiệu sai trước điểm biến xu hướng
  • Giao dịch chỉ khi cả hai chỉ số phát ra tín hiệu cùng một lúc có thể bỏ lỡ một số cơ hội
  • Cần thiết lập đúng các tham số để có hiệu quả kết hợp

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

  • Có thể thử nghiệm các tham số khác nhau để tối ưu hóa hiệu quả của chỉ số
  • Bạn có thể thử các trọng lượng chỉ số khác nhau, chẳng hạn như trì hoãn tín hiệu tổng hợp giá theo xu hướng
  • Có thể thêm Stop Loss để kiểm soát rủi ro
  • Có thể kết hợp nhiều loại chỉ số khác nhau để xây dựng mô hình đa yếu tố

Tóm tắt

Chiến lược này sử dụng hai chỉ số động lực khác nhau để nâng cao chất lượng tín hiệu bằng cách lọc kép và kiểm soát rủi ro trong khi duy trì tần suất giao dịch. Tuy nhiên, cần lưu ý đến các hạn chế của chỉ số và tối ưu hóa các tham số một cách thích hợp. Nếu có thể tối ưu hóa liên tục, chiến lược này có khả năng thu được lợi nhuận vượt quá mức lớn.

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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 18/11/2019
// 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
// Detrended Synthetic Price is a function that is in phase with the 
// dominant cycle of real price data. This DSP is computed by subtracting 
// a half-cycle exponential moving average (EMA) from the quarter cycle 
// exponential moving average.
// See "MESA and Trading Market Cycles" by John Ehlers pages 64 - 70. 
//
// 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

D_DSP(Length, SellBand, BuyBand) =>
    pos = 0.0
    xHL2 = hl2
    xEMA1 = ema(xHL2, Length)
    xEMA2 = ema(xHL2, 2 * Length)
    xEMA1_EMA2 = xEMA1 - xEMA2
    pos := iff(xEMA1_EMA2 > SellBand, 1,
	         iff(xEMA1_EMA2 < BuyBand, -1, nz(pos[1], 0))) 
	pos

strategy(title="Combo Backtest 123 Reversal & D_DSP (Detrended Synthetic Price) V 2", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthDSP = input(14, minval=1)
SellBand = input(-25)
BuyBand = input(25)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posD_DSP = D_DSP(LengthDSP, SellBand, BuyBand)
pos = iff(posReversal123 == 1 and posD_DSP == 1 , 1,
	   iff(posReversal123 == -1 and posD_DSP == -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 )