Chiến lược theo xu hướng để đảo ngược chu kỳ sau khi thoái lui


Ngày tạo: 2023-11-15 17:13:18 sửa đổi lần cuối: 2023-11-15 17:13:18
sao chép: 0 Số nhấp chuột: 605
1
tập trung vào
1617
Người theo dõi

Chiến lược theo xu hướng để đảo ngược chu kỳ sau khi thoái lui

Tổng quan

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

Nguyên tắc

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

  1. Đường trung bình di chuyển đảo ngược

Phần này có thể đánh giá liệu có tín hiệu đảo ngược hay không bằng cách tính toán sự sụt giảm của giá đóng cửa trong hai ngày qua, kết hợp với giá trị K của đường nhanh. Một tín hiệu mua được tạo ra khi giá tăng liên tục trong hai ngày qua và giá trị K của đường nhanh thấp hơn giá trị K của đường chậm; Một tín hiệu bán được tạo ra khi giá giảm liên tục trong hai ngày qua và giá trị K của đường nhanh cao hơn giá trị K của đường chậm.

  1. Giá rời khỏi chỉ số

Chỉ số Detrend Price Oscillator xác định chu kỳ giá bằng cách vẽ một đường trung bình di chuyển ngang và dựa trên mối quan hệ của giá với đường này. Nó lọc các xu hướng dài hơn chu kỳ tính toán, do đó có thể xác định các biến động ngắn hạn ẩn trong đường trung bình di chuyển.

Chiến lược này tổng hợp các tín hiệu của hai chỉ số, tức là khi có tín hiệu đảo ngược đường trung bình di chuyển, đồng thời chỉ số thoát khỏi giá cũng đưa ra tín hiệu đảo ngược xác nhận, sẽ tạo ra chỉ thị giao dịch. Như vậy, bạn có thể lọc ra một số tín hiệu đảo ngược không hiệu quả và nắm bắt cơ hội xu hướng phục hồi sau khi đảo ngược.

Ưu điểm

Lợi thế lớn nhất của chiến lược này là sử dụng hợp lý lợi thế 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 hiệu quả, tăng cường độ tin cậy của tín hiệu.

Chỉ số đảo ngược đường trung bình tự nó dễ tạo ra tín hiệu sai, chỉ dựa vào nó để đánh giá, dễ theo đuổi giá cao và giá thấp. Trong khi đó, việc đưa ra chỉ số tách khỏi giá để kết hợp, có thể tránh hoạt động đảo ngược trong phạm vi dao động không lý tưởng.

Cài đặt tham số của chỉ số Price Detachment cũng quyết định nó chỉ nhận ra các biến động có chu kỳ ngắn hơn, do đó phù hợp với phán quyết về sự đảo ngược của đường trung bình di chuyển, có thể nhận ra thời gian đảo ngược hợp lý.

Rủi ro

Chiến lược này có những rủi ro:

  1. Không có khả năng phục hồi, dễ bị mắc kẹt

Chuyển đổi đường trung bình di chuyển dễ xảy ra trong khu vực rung chính. Nếu không đủ sức bật, dễ dàng điều chỉnh lại chạm vào đường dừng lỗ và không thể kiếm được lợi nhuận.

  1. Chọn không đúng

Thiết lập tham số của chỉ số Price Departure quá lớn sẽ nhận ra xu hướng chu kỳ trung bình; quá nhỏ sẽ làm tăng nguy cơ sai lầm. Cần thử nghiệm cẩn thận đối với các loại khác nhau.

  1. Sự kiện bất ngờ dẫn đến thất bại

Sự can thiệp của các sự kiện tin tức đột ngột lớn có thể làm gián đoạn sự phán đoán xu hướng ban đầu, dẫn đến hiệu quả của tín hiệu đảo ngược. Điều này đòi hỏi phải chú ý đến tin tức cơ bản và tránh giao dịch mù quáng khi xảy ra sự kiện tin tức.

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

Chiến lược này có thể được tối ưu hóa thêm bằng cách:

  1. Tăng hệ thống chống thiệt hại

Thiết lập dừng di chuyển hoặc dừng thời gian một cách hợp lý để kiểm soát tổn thất đơn lẻ.

  1. Kết hợp với chỉ số khối lượng giao dịch

Tăng xác nhận khối lượng giao dịch, ví dụ, chỉ phát tín hiệu khi khối lượng giao dịch trung bình bị phá vỡ, có thể tránh phá vỡ không hiệu quả khi khối lượng không đủ.

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

Các tham số được tối ưu hóa động theo giai đoạn thị trường, mở rộng tham số khi xu hướng rõ ràng và thắt chặt tham số khi dao động.

  1. Tối ưu hóa động học bằng cách học máy

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

Tóm tắt

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

Mã nguồn chiến lược
/*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 )