Chiến lược đảo ngược động lực với xác nhận hai lần

Tác giả:ChaoZhang, Ngày: 2024-02-20 15:27:02
Tags:

img

Tổng quan

Chiến lược Động lực đảo ngược kết hợp các tín hiệu đảo ngược giá và tín hiệu đảo ngược biến động để thực hiện giao dịch xu hướng. Nó chủ yếu sử dụng mô hình 123 để xác định các điểm đảo ngược giá, trong khi sử dụng biến động kênh Donchian như một bộ lọc cho các tín hiệu sai. Chiến lược này phù hợp với việc nắm giữ trung bình đến dài hạn.

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

Một số chiến lược khác là sử dụng chỉ số stochastic để kích hoạt giao dịch chỉ khi chỉ số stochastic cũng đảo ngược (đường nhanh giảm hoặc tăng nhanh chóng).

Phần đảo ngược biến động sử dụng biến động kênh Donchian. Kênh Donchian chủ yếu phản ánh phạm vi biến động giá. Khi biến động giá tăng, chiều rộng của Kênh Donchian cũng mở rộng; khi biến động giá giảm, chiều rộng của Kênh Donchian cũng thu hẹp. Sự biến động kênh Donchian (sự rộng) có thể đo lường hiệu quả mức độ biến động thị trường và mức độ rủi ro. Chiến lược này sử dụng đảo ngược biến động kênh Donchian để lọc ra các tín hiệu sai, chỉ phát ra các tín hiệu giao dịch khi biến động và giá đảo ngược cùng một lúc, tránh bị bắt trong các hoạt động gọi lại.

Tóm lại, chiến lược này đảm bảo độ tin cậy của tín hiệu giao dịch và kiểm soát rủi ro thông qua xác nhận đảo ngược kép, làm cho nó trở thành một chiến lược xu hướng tương đối mạnh mẽ.

Ưu điểm

  • Cơ chế lọc kép đảm bảo độ tin cậy của tín hiệu giao dịch và tránh sự phá vỡ sai
  • Kiểm soát rủi ro và giảm khả năng mất mát
  • Thích hợp cho nắm giữ trung bình đến dài hạn, tránh tiếng ồn thị trường và thu được lợi nhuận dư thừa
  • Không gian tối ưu hóa lớn cho các thông số có thể được điều chỉnh cho trạng thái tối ưu
  • Phong cách độc đáo hoạt động tốt kết hợp với các chỉ số kỹ thuật chung

Rủi ro

  • Tùy thuộc vào tối ưu hóa tham số, các tham số không phù hợp ảnh hưởng đến hiệu suất chiến lược
  • Chiến lược dừng lỗ cần được cải thiện hơn nữa, kiểm soát rút tiền tối đa cần được cải thiện
  • Tần số giao dịch có thể thấp, không thể thích nghi với giao dịch thuật toán tần số cao
  • Cần lựa chọn các sản phẩm phù hợp và khung thời gian, phạm vi ứng dụng hạn chế
  • Học máy có thể được sử dụng để tìm các thông số tối ưu

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

  • Tăng mô-đun dừng lỗ thích nghi để giảm đáng kể lượng rút tối đa
  • Đưa ra chỉ số khối lượng giao dịch để đảm bảo tham gia vào khối lượng lớn
  • Tối ưu hóa các thông số cho sự ổn định tốt nhất
  • Hãy thử các sản phẩm và khung thời gian khác nhau để tìm ra phù hợp nhất
  • Cố gắng kết hợp với các chỉ số hoặc chiến lược khác cho sự phối hợp 1+1>2

Tóm lại

Chiến lược Động lực đảo ngược đạt được kiểm soát rủi ro tốt thông qua việc xác nhận hai lần đảo ngược giá và đảo ngược biến động. So với các chỉ số đơn, nó lọc ra rất nhiều tiếng ồn và có sự ổn định tốt hơn. Bằng cách tăng cường tối ưu hóa tham số, mô-đun dừng lỗ, giới thiệu khối lượng, v.v., chiến lược này có thể cải thiện thêm chất lượng tín hiệu và ổn định lợi nhuận. Nó phù hợp như một thành phần của các chiến lược trung và dài hạn cho cổ phiếu, tiền điện tử, v.v., và có thể có lợi nhuận dư thừa tốt khi kết hợp đúng với các mô-đun khác.


/*backtest
start: 2024-01-20 00:00:00
end: 2024-02-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 06/03/2020
// 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
// The Donchian Channel was developed by Richard Donchian and it could be compared 
// to the Bollinger Bands. When it comes to volatility analysis, the Donchian Channel 
// Width was created in the same way as the Bollinger Bandwidth technical indicator was.
//
// As was mentioned above the Donchian Channel Width is used in technical analysis to measure 
// volatility. Volatility is one of the most important parameters in technical analysis. 
// A price trend is not just about a price change. It is also about volume traded during this 
// price change and volatility of a this price change. When a technical analyst focuses his/her 
// attention solely on price analysis by ignoring volume and volatility, he/she only sees a part 
// of a complete picture only. This could lead to a situation when a trader may miss something and 
// lose money. Lets take a look at a simple example how volatility may help a trader:
//
//    Most of the price based technical indicators are lagging indicators.
//    When price moves on low volatility, it takes time for a price trend to change its direction and 
// it could be ok to have some lag in an indicator.
//    When price moves on high volatility, a price trend changes its direction faster and stronger. 
// An indicator's lag acceptable under low volatility could be financially suicidal now - Buy/Sell signals could be generated when it is already too late.
//
// Another use of volatility - very popular one - it is to adapt a stop loss strategy to it:
//    Smaller stop-loss recommended in low volatility periods. If it is not done, a stop-loss could 
// be generated when it is too late.
//    Bigger stop-loss recommended in high volatility periods. If it is not done, a stop-loss could 
// be triggered too often and you may miss good trades.
//
// 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

DCW(length, smoothe) =>
    pos = 0.0
    xUpper = highest(high, length)
    xLower = lowest(low, length)
    xDonchianWidth = xUpper - xLower
    xSmoothed = sma(xDonchianWidth, smoothe)
    pos := iff(xDonchianWidth > xSmoothed, -1,
              iff(xDonchianWidth < xSmoothed, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Donchian Channel Width", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthDCW = input(20, minval=1)
SmootheSCW = input(22, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posDCW = DCW(LengthDCW, SmootheSCW)
pos = iff(posReversal123 == 1 and posDCW == 1 , 1,
	   iff(posReversal123 == -1 and posDCW == -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