
Chiến lược giao dịch này tận dụng tối đa lợi thế của hai chỉ số kỹ thuật là đảo ngược đường trung bình và blitz tối thiểu ba ngày, sử dụng kết hợp để theo dõi xu hướng và nắm bắt cơ hội đảo ngược kịp thời, lọc ra một số tín hiệu phá vỡ giả, có thể giúp tăng tỷ lệ thắng của hệ thống giao dịch.
Chiến lược này bao gồm hai phần:
Sự kết hợp của đường trung bình 2 ngày và đường trung bình 20 ngày.
Hình thức blitz thấp nhất trong ba ngày. Sự xuất hiện của hình thức này là tín hiệu đảo ngược ngắn hạn. Điều kiện hình thành là: mức thấp nhất trong ngày giữa, thấp hơn cả ngày trước và ngày sau, và giá đóng cửa ngày sau cao hơn mức cao nhất ngày trước.
Hoạt động mua hoặc bán được thực hiện khi đường trung bình 2 ngày và đường trung bình 20 ngày cùng hiển thị tín hiệu đảo ngược và hướng tín hiệu phù hợp với hình dạng flashing thấp nhất trong ba ngày.
Trong mã, đầu tiên tính toán đường trung bình 2 ngày và đường trung bình 20 ngày. Khi đường trung bình 2 ngày đi qua hoặc đi qua đường trung bình 20 ngày, tạo ra tín hiệu mua / bán.
Sau đó, thiết lập tín hiệu định hướng hình dạng là 1 hoặc -1 khi phát hiện hình dạng nhấp nháy thấp nhất trong ba ngày. Đọc tín hiệu hình dạng của ngày trước, kết hợp với tín hiệu đường trung bình hiện tại để tạo ra tín hiệu nhập cảnh cuối cùng.
Bằng cách này, bạn có thể lọc ra một số tín hiệu giả mạo và làm cho chiến lược giao dịch đáng tin cậy hơn bằng cách lọc các kết hợp của đường thẳng và hình dạng.
Kết hợp nhiều chỉ số kỹ thuật có thể đóng vai trò bổ sung và xác minh, nâng cao độ tin cậy của tín hiệu.
Sự đảo ngược đường trung bình có thể bắt kịp thời điểm đảo ngược xu hướng, tận dụng cơ hội đảo ngược. Các flashes thấp nhất trong ba ngày có thể xác nhận thêm sự hình thành của sự đảo ngược.
Đường trung bình 20 ngày theo dõi xu hướng trung bình và dài hạn, đường trung bình 2 ngày được sử dụng để nắm bắt thời điểm nhập cảnh sau khi điều chỉnh ngắn hạn. Sự kết hợp của nhiều phạm vi thời gian có thể nắm bắt toàn bộ xu hướng.
Chiến lược này không nhạy cảm với các tham số, dễ thực hiện và tối ưu hóa.
Hình dạng đảo ngược dễ bị đánh giá sai, cần phải tích lũy kinh nghiệm để đánh giá độ tin cậy của nó.
Tín hiệu đảo ngược có thể bị chậm trễ, cần quan sát đặc điểm hình dạng và điều chỉnh đúng vị trí.
Cần tối ưu hóa thử nghiệm cho các giống giao dịch và có thể cần điều chỉnh các thiết lập tham số của một số giống.
Kiểm soát rút lui cần phải đưa ra một cơ chế dừng lỗ để tránh bỏ lỡ một bước ngoặt quan trọng.
Kiểm tra các kết hợp đường trung bình khác nhau, chọn tham số đường trung bình tốt nhất cho tác dụng của giống.
Tham gia các chỉ số phụ trợ khác, chẳng hạn như số lượng giao dịch, dải Brin, v.v., để xác minh đa chỉ số.
Thêm mô-đun dừng lỗ để kiểm soát rút tiền và rủi ro.
Tối ưu hóa thời gian nhập học, tránh các vấn đề về quá sớm hoặc quá muộn
Tối ưu hóa tham số cho các giống cụ thể, cải thiện khả năng thích ứng.
Chiến lược này tận dụng tối đa lợi thế của sự đảo ngược đường cân bằng và hình dạng ngắn hạn, để thực hiện sự kết hợp hiệu quả của cả hai, có thể cải thiện sự ổn định và tỷ lệ thắng của hệ thống giao dịch. Tuy nhiên, cần chú ý đến kiểm soát rủi ro và kiểm tra và tối ưu hóa các tham số để phù hợp với các đặc điểm của các giống khác nhau. Nhìn chung, cấu trúc của chiến lược này đơn giản, rõ ràng và dễ thực hiện, là một chiến lược giao dịch đảo ngược xu hướng rất hiệu quả.
/*backtest
start: 2022-10-19 00:00:00
end: 2023-10-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 25/12/2021
// This is combo strategies for get a cumulative signal.
//
// First strategy
// This indicator plots 2/20 exponential moving average. For the Mov
// Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
//
// Second strategy
// This startegy based on 3-day pattern reversal described in "Are Three-Bar
// Patterns Reliable For Stocks" article by Thomas Bulkowski, presented in
// January,2000 issue of Stocks&Commodities magazine.
// That pattern conforms to the following rules:
// - It uses daily prices, not intraday or weekly prices;
// - The middle day of the three-day pattern has the lowest low of the three days, with no ties allowed;
// - The last day must have a close above the prior day's high, with no ties allowed;
// - Each day must have a nonzero trading range.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
EMA20(Length ) =>
pos = 0.0
xPrice = close
xXA = ema(xPrice, Length)
nHH = max(high, high[1])
nLL = min(low, low[1])
nXS = iff((nLL > xXA)or(nHH < xXA), nLL, nHH)
pos := iff(nXS > close[1] , -1, iff(nXS < close[1] , 1, nz(pos[1], 0)))
pos
BarR()=>
pos = 0.0
pos := iff(open[2] > close[2] and high[1] < high[2] and low[1] < low[2] and low[0] > low[1] and high[0] > high[1], 1,
iff(open[2] < close[2] and high[1] > high[2] and low[1] > low[2] and high[0] < high[1] and low[0] < low[1], -1, nz(pos[1], 0)))
pos
strategy(title="Combo 2/20 EMA & 3 Day Pattern", shorttitle="Combo", overlay = true)
var I1 = "●═════ 2/20 EMA ═════●"
Length = input(14, minval=1, group = I1)
//var I2 = "●═════ 3-Bar-Reversal-Pattern ═════●"
var misc = "●═════ MISC ═════●"
reverse = input(false, title="Trade reverse", group = misc)
var timePeriodHeader = "●═════ Time Start ═════●"
d = input(1, title="From Day", minval=1, maxval=31, group=timePeriodHeader)
m = input(1, title="From Month", minval=1, maxval=12, group=timePeriodHeader)
y = input(2005, title="From Year", minval=0, group=timePeriodHeader)
StartTrade = true
prePos3Bar = BarR()
posEMA20 = EMA20(Length)
pos3BarR = security(syminfo.tickerid, "D", prePos3Bar[1], barmerge.gaps_off, barmerge.lookahead_on)
pos = iff(posEMA20 == 1 and pos3BarR == 1 and StartTrade , 1,
iff(posEMA20 == -1 and pos3BarR == -1 and StartTrade, -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 )