Chiến lược này đầu tiên sử dụng các tín hiệu đảo ngược giá để giao dịch, sau đó kết hợp các chỉ số lọc xu hướng để sàng lọc, thực hiện hệ thống điều khiển bằng hai yếu tố.
Phần đảo ngược giá sử dụng hệ thống đảo ngược 123. Hệ thống này được lấy từ cuốn sách
Khi các điều kiện trên được đáp ứng, một tín hiệu mua được tạo ra.
Một tín hiệu bán được tạo ra.
Mục tiêu của hệ thống đảo ngược này là để nắm bắt sự đảo ngược ngắn hạn khi giá hình thành đảo ngược tạm thời.
Phần lọc xu hướng sử dụng hệ thống Extracting The Trend (ETT). Hệ thống ETT đánh giá hướng xu hướng thông qua sự kết hợp của bộ lọc và trung bình động. Trong chiến lược này, chức năng chính của nó là xác minh các tín hiệu đảo ngược giá, tránh hoạt động đảo ngược khi không có xu hướng rõ ràng.
Chiến lược này kết hợp các tín hiệu giao dịch từ cả hai chiến lược phụ, cuối cùng thực hiện một hệ thống giao dịch đảo ngược dựa trên hai yếu tố.
Chiến lược giao dịch đảo ngược hai yếu tố tích hợp các lợi thế của mỗi chiến lược phụ thông qua sự kết hợp:
Do đó, chiến lược này có thể lọc hiệu quả các tín hiệu đảo ngược không hợp lệ. Với đánh giá xu hướng chính xác, nó thực hiện hoạt động đảo ngược, do đó cải thiện hiệu suất tổng thể của hệ thống giao dịch.
Chiến lược giao dịch đảo ngược hai yếu tố có những rủi ro chính sau:
Để giảm các rủi ro trên, các cân nhắc bao gồm điều chỉnh các tham số biên dịch, tối ưu hóa các chiến lược đảo ngược & ETT để đánh giá tốt hơn, cũng như mở rộng phạm vi dừng lỗ phù hợp cho giao dịch đảo ngược.
Chiến lược này có thể được tối ưu hóa trong các khía cạnh sau:
Với logic chiến lược và các tín hiệu giao dịch chính không thay đổi, kết quả backtest tốt hơn có thể được mong đợi thông qua tối ưu hóa tham số và kết hợp.
Chiến lược giao dịch đảo ngược hai yếu tố kết hợp hữu cơ các tín hiệu đảo ngược giá và lọc xu hướng cho hệ thống đánh giá đa yếu tố. So với các chiến lược tín hiệu đảo ngược duy nhất, chiến lược này có thể nắm bắt tốt hơn sự đảo ngược giá ngắn hạn trong khi tránh các tín hiệu sai khi không có xu hướng rõ ràng, do đó cải thiện chất lượng tín hiệu. Hiệu suất tốt hơn có thể được mong đợi thông qua tối ưu hóa tham số và thêm các yếu tố khác.
/*backtest start: 2023-11-26 00:00:00 end: 2023-12-26 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 03/08/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 // Extracting The Trend // The related article is copyrighted material from Stocks & Commodities Mar 2010 // // 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 ETT(Length,Delta,Trigger) => pos = 0 xBandpassFilter = 0.0 xPrice = hl2 beta = cos(3.1415 * (360 / Length) / 180) gamma = 1 / cos(3.1415 * (720 * Delta / Length) / 180) alpha = gamma - sqrt(gamma * gamma - 1) xBandpassFilter := 0.5 * (1 - alpha) * (xPrice - xPrice[2]) + beta * (1 + alpha) * nz(xBandpassFilter[1]) - alpha * nz(xBandpassFilter[2]) xMean = sma(xBandpassFilter, 2 * Length) pos :=iff(xMean > Trigger, 1, iff(xMean < Trigger, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & Extracting The Trend", shorttitle="Combo", overlay = true) Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- LengthETT = input(20, minval=1) Delta = input(0.5) Trigger = input(0) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posETT = ETT(LengthETT,Delta,Trigger) pos = iff(posReversal123 == 1 and posETT == 1 , 1, iff(posReversal123 == -1 and posETT == -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 )