Chiến lược giao dịch đảo ngược kết hợp nhiều chỉ số

Tác giả:ChaoZhang, Ngày: 2023-09-13 15:04:40
Tags:

Chiến lược này được gọi là Multi-indicator Combined Reversal Trading Strategy. Nó tích hợp các chỉ số kỹ thuật khác nhau để xác định các cơ hội đảo ngược giá ngắn hạn và giao dịch chống lại xu hướng lợi nhuận trước đó.

Đầu tiên, chiến lược sử dụng mô hình đảo ngược 123 để xác định sự đảo ngược xu hướng ngắn hạn. Mô hình 123 là khi giá chênh lệch đáng kể trong ba ngày liên tiếp và ngày thứ ba đóng cửa theo hướng ngược lại với hai ngày trước đó. Theo thống kê, giao dịch với các tín hiệu đảo ngược 123 có tỷ lệ thắng cao hơn.

Thứ hai, chỉ số RSI được kết hợp để đánh giá độ tin cậy của các tín hiệu đảo ngược. RSI dưới 50 đại diện cho các điều kiện bán quá mức, trong khi trên 50 là mua quá mức. Sử dụng RSI tránh tạo ra các tín hiệu không đáng tin cậy quá mức chỉ dựa trên mô hình 123.

Thứ ba, chỉ số CMO crossover đa giai đoạn được giới thiệu. crossover CMO kết hợp các đường trung bình động theo cấp số nhân trong các giai đoạn khác nhau đánh giá sự đảo ngược động lực.

Việc áp dụng kết hợp nhiều chỉ số làm tăng tỷ lệ thành công trong việc nắm bắt sự đảo ngược giá bằng cách tránh các tín hiệu không chắc chắn quá mức. Chỉ khi RSI và CMO hỗ trợ mô hình 123, một tín hiệu giao dịch đảo ngược mạnh sẽ xuất hiện.

Chiến lược này phù hợp với các thị trường dao động, dao động để nắm bắt biến động giá ngắn hạn. Tuy nhiên, kết hợp quá nhiều chỉ số cũng có thể dẫn đến xung đột.

Tóm lại, chiến lược giao dịch đảo ngược kết hợp nhiều chỉ số tích hợp các công cụ khác nhau để cải thiện độ chính xác phán đoán về đảo ngược thị trường. Nhưng không có chiến lược nào là hoàn hảo. Các nhà giao dịch cần xác nhận và điều chỉnh dựa trên điều kiện thị trường hiện tại, duy trì tư duy giao dịch linh hoạt.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 25/02/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 related CMOaDisparity Index article is copyrighted material from Stocks & Commodities Dec 2009
// My strategy modification.
//
// 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

CMOD(LengthFirst, LengthSecond, LengthThird) =>
    pos = 0.0
    xEMAFirst = ema(close,LengthFirst)
    xEMASecond  = ema(close,LengthSecond)
    xEMAThird  = ema(close,LengthThird)
    xResFirst = 100 * (close - xEMAFirst) / close
    xResSecond = 100 * (close - xEMASecond) / close
    xResThird = 100 * (close - xEMAThird) / close
    pos := iff(xResThird > xResFirst, -1,
             iff(xResThird < xResSecond, 1, nz(pos[1], 0)))     
    pos

strategy(title="Combo Backtest 123 Reversal & CMOaDisparity Index", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthFirst = input(50, minval=1)
LengthSecond = input(25, minval=1)
LengthThird = input(10, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posCMOD = CMOD(LengthFirst, LengthSecond, LengthThird)
pos = iff(posReversal123 == 1 and posCMOD == 1 , 1,
	   iff(posReversal123 == -1 and posCMOD == -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