Chiến lược giao dịch đảo ngược hợp nhất đa chỉ báo


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

Chiến lược này được gọi là chiến lược giao dịch đảo ngược kết hợp nhiều chỉ số. Chiến lược này sử dụng nhiều chỉ số kỹ thuật để xác định thời điểm giá bị đảo ngược trong thời gian ngắn và giao dịch ngược để kiếm lợi nhuận.

Đầu tiên, chiến lược này sử dụng hình dạng 123 đảo ngược để đánh giá giá ngắn hạn. hình dạng 123 đảo ngược là hình dạng của xu hướng hai ngày trước khi giá đóng cửa ba ngày liên tiếp với lỗ hổng cao và thấp rõ ràng. Theo thống kê, tiếp tục hình dạng 123 đảo ngược phát ra tín hiệu lợi nhuận cao hơn.

Thứ hai, chiến lược này kết hợp với chỉ số RSI ngẫu nhiên để xác định độ tin cậy của tín hiệu đảo ngược. RSI thấp hơn 50 đại diện cho hình thức bán tháo, cao hơn 50 đại diện cho hình thức mua quá. Kết hợp với chỉ số RSI có thể tránh tạo ra quá nhiều tín hiệu không đáng tin cậy chỉ với 123 hình thức đảo ngược.

Cuối cùng, chiến lược này được đưa vào phân kỳ đa của chỉ số CMO để xác định. Các phân kỳ CMO kết hợp các chỉ số chuyển động trung bình của các giai đoạn khác nhau, để xác định khả năng biến động giá sẽ đảo ngược. Dấu hiệu của nó một lần nữa xác nhận 123 thời gian giao dịch đảo ngược.

Việc sử dụng tổng hợp nhiều chỉ số trên có thể cải thiện tỷ lệ thành công của việc bắt được giá đảo ngược, tránh quá nhiều tín hiệu không chắc chắn. Khi cả RSI và CMO đều hỗ trợ hình thức 123, tín hiệu giao dịch đảo ngược mạnh mẽ được phát ra.

Chiến lược này phù hợp với việc điều chỉnh thị trường xung đột, để nắm bắt xung động giá trong thời gian ngắn. Tuy nhiên, các cặp chỉ số đa chỉ số cũng dễ xảy ra khi các chỉ số khác nhau được bảo vệ lẫn nhau, cần phải tối ưu hóa các tham số. Chiến lược dừng lỗ cũng cần được sử dụng để kiểm soát tổn thất tối đa của một giao dịch.

Nhìn chung, nhiều chỉ số kết hợp các chiến lược giao dịch đảo ngược, tổng hợp các công cụ khác nhau để cải thiện độ chính xác trong việc đánh giá thời gian thị trường đảo ngược. Tuy nhiên, bất kỳ chiến lược đơn lẻ nào cũng không hoàn hảo, đòi hỏi các nhà giao dịch phải xác minh và điều chỉnh chi tiết theo tình hình thị trường hiện tại, luôn giữ linh hoạt ý thức giao dịch.

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