Chiến lược đảo ngược chu kỳ theo xu hướng sau khi rút lui

Tác giả:ChaoZhang, Ngày: 2023-11-15 17:13:18
Tags:

img

Tổng quan

Chiến lược này kết hợp hai chỉ số: đảo ngược trung bình động và dao động giảm xu hướng giá để tạo ra tín hiệu giao dịch và bắt xu hướng phục hồi sau khi đảo ngược chu kỳ.

Nguyên tắc

Chiến lược này chủ yếu sử dụng hai chỉ số kỹ thuật sau đây để đánh giá tín hiệu giao dịch:

  1. Chuyển trung bình đảo ngược

    Nó tính toán xu hướng tăng hoặc giảm giá trong hai ngày qua kết hợp với giá trị đường nhanh K để xác định xem có tín hiệu đảo ngược xảy ra hay không. Khi giá tiếp tục tăng trong hai ngày qua và giá trị đường nhanh K thấp hơn giá trị đường chậm K, một tín hiệu mua được tạo ra. Khi giá tiếp tục giảm trong hai ngày qua và giá trị đường nhanh K cao hơn giá trị đường chậm K, một tín hiệu bán được tạo ra.

  2. Động cơ dao động giá

    Bộ dao động giá Detrend vẽ một đường trung bình động ngang và xác định chu kỳ giá dựa trên mối quan hệ giữa giá và đường. Nó lọc các xu hướng dài hơn thời gian tính toán, do đó tiết lộ biến động ngắn hạn ẩn. Khi giá trên đường trung bình động, đó là tín hiệu mua. Khi giá dưới đường, đó là tín hiệu bán.

Chiến lược này kết hợp các tín hiệu của hai chỉ số. nghĩa là, khi một tín hiệu đảo ngược trung bình động xuất hiện và dao động giảm xu hướng giá cũng đưa ra một tín hiệu đảo ngược xác nhận, lệnh giao dịch được tạo ra. Điều này có thể lọc ra một số tín hiệu đảo ngược không hợp lệ và bắt được xu hướng phục hồi sau khi đảo ngược.

Ưu điểm

Ưu điểm lớn nhất của chiến lược này là nó sử dụng tốt điểm mạnh của hai chỉ số để xác nhận bổ sung, có thể lọc hiệu quả các tín hiệu không hợp lệ và tăng độ tin cậy của tín hiệu.

Chỉ số đảo ngược trung bình động có xu hướng tạo ra tín hiệu sai. Chỉ dựa vào nó để phán đoán có xu hướng theo đuổi đỉnh và đáy. Việc giới thiệu dao động giảm xu hướng giá cho sự kết hợp có thể tránh các hoạt động đảo ngược trong các vùng dao động không lý tưởng.

Các thiết lập tham số của dao động giảm xu hướng giá cũng xác định rằng nó chỉ xác định biến động ngắn hạn, phù hợp rất tốt với phán đoán về sự đảo ngược trung bình động và có thể xác định thời gian đảo ngược hợp lý.

Rủi ro

Những rủi ro chính của chiến lược này bao gồm:

  1. Không đủ động lực hồi phục, có xu hướng bị mắc kẹt

Sự đảo ngược trung bình động có xu hướng xảy ra trong phạm vi bên. Nếu động lực hồi phục là không đủ, nó có khả năng gọi lại và chạm vào mức dừng lỗ một lần nữa, không thể kiếm lợi nhuận.

  1. Cài đặt tham số không chính xác

Nếu các thông số của dao động giảm xu hướng giá được đặt quá lớn, nó sẽ xác định xu hướng trung bình và dài hạn; nếu quá nhỏ, nó sẽ làm tăng rủi ro đánh giá sai.

  1. Các lỗi đảo ngược do các sự kiện đột ngột

Các sự kiện tin tức lớn có thể làm gián đoạn các phán đoán xu hướng hiện có, dẫn đến sự thất bại của các tín hiệu đảo ngược.

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

Chiến lược có thể được tối ưu hóa thêm trong các khía cạnh sau:

  1. Thêm cơ chế dừng lỗ

Thiết lập hợp lý stop loss hoặc stop time loss để kiểm soát single loss.

  1. Kết hợp với các chỉ số khối lượng

Thêm xác nhận khối lượng, chẳng hạn như phát ra tín hiệu chỉ khi phá vỡ khối lượng trung bình, để tránh đột phá không hiệu quả do động lượng không đủ.

  1. Tối ưu hóa tham số động

Tối ưu hóa các tham số theo điều kiện thị trường, thư giãn các tham số một cách thích hợp trong các xu hướng rõ ràng và thắt chặt các tham số trong quá trình củng cố.

  1. Sử dụng các phương pháp học máy để tối ưu hóa năng động

Sử dụng các phương pháp học máy như rừng ngẫu nhiên để đánh giá và chọn các kết hợp tham số để đạt được tối ưu hóa thông minh năng động.

Tóm lại

Chiến lược này kết hợp điểm mạnh của hai chỉ số hợp lý để bắt được xu hướng phục hồi tại các điểm đảo ngược. Mặc dù các vấn đề như bị mắc kẹt và tối ưu hóa tham số vẫn còn, ý tưởng tổng thể là rõ ràng và hợp lý. Nó đáng để thử nghiệm và tối ưu hóa hơn nữa để đạt được lợi nhuận ổn định.


/*backtest
start: 2023-10-15 00:00:00
end: 2023-11-14 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 30/12/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
// The Detrend Price Osc indicator is similar to a moving average, 
// in that it filters out trends in prices to more easily identify 
// cycles. The indicator is an attempt to define cycles in a trend 
// by drawing a moving average as a horizontal straight line and 
// placing prices along the line according to their relation to a 
// moving average. It provides a means of identifying underlying 
// cycles not apparent when the moving average is viewed within a 
// price chart. Cycles of a longer duration than the Length (number 
// of bars used to calculate the Detrend Price Osc) are effectively 
// filtered or removed by the oscillator.
//
// 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

DPO(Length) =>
    pos = 0.0
    xPrice = close
    xsma = sma(xPrice, Length)
    nRes = xPrice - xsma
    pos := iff(nRes > 0, 1,
    	     iff(nRes < 0, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Detrended Price Oscillator", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthDPO = input(14, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posDPO = DPO(LengthDPO)
pos = iff(posReversal123 == 1 and posDPO == 1 , 1,
	   iff(posReversal123 == -1 and posDPO == -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