
Chiến lược này được thực hiện bằng cách tính toán đường trung tâm, đường trên và đường dưới của kênh Keltner, dựa trên đường trung tâm, đường trung tâm và đường dưới ABOVE. Sau khi đánh giá hướng của kênh, thực hiện giao dịch đột phá.
Chỉ số cốt lõi là kênh Keltner. Các đường dẫn trong kênh là giá điển hình (((giá cao nhất + giá thấp nhất + giá đóng cửa) / 3 của một trung bình di chuyển trọng lượng N ngày. Các đường dẫn trên và dưới phân chia một phạm vi giao dịch trong quỹ đạo. Trong đó, phạm vi giao dịch có thể được chọn bằng sóng thực ATR hoặc có thể sử dụng trực tiếp sóng (((giá cao nhất - giá thấp nhất). Chiến lược này sử dụng phương pháp sau.
Cụ thể, chiến lược chủ yếu đánh giá xem giá có phá vỡ đường lên hay đường xuống, phân định đường giữa để đưa ra quyết định nhiều đầu hoặc đầu trống. Nếu giá đóng cửa lớn hơn đường lên, hãy làm nhiều hơn; Nếu giá đóng cửa nhỏ hơn đường dưới, hãy làm trống. Đường dừng là giá MA đường giữa.
Chiến lược này nói chung là đơn giản, trực tiếp, thuộc loại chiến lược đột phá giá phổ biến. Ưu điểm là ý tưởng rõ ràng, dễ hiểu thực hiện, phù hợp cho người mới bắt đầu học. Nhưng cũng có một số hạn chế, nhạy cảm với tham số, hiệu quả tham số không đồng đều, cần kiểm tra và tối ưu hóa nhiều lần.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © WMX_Q_System_Trading
//@version=3
strategy(title = "WMX Keltner Channels strategy", shorttitle = "WMX Keltner Channels strategy", overlay = true)
useTrueRange = input(true)
length = input(20, minval=5)
mult = input(2.618, minval=0.1)
mah =ema(ema( ema(high, length),length),length)
mal =ema(ema( ema(low, length),length),length)
range = useTrueRange ? tr : high - low
rangema =ema(ema( ema(range, length),length),length)
upper = mah + rangema * mult
lower = mal - rangema * mult
ma=(upper+lower)/2
uc = red
lc=green
u = plot(upper, color=uc, title="Upper")
basis=plot(ma, color=yellow, title="Basis")
l = plot(lower, color=lc, title="Lower")
fill(u, basis, color=uc, transp=95)
fill(l, basis, color=lc, transp=95)
strategy.entry("Long", strategy.long, stop = upper, when = strategy.position_size <= 0 and close >upper)
strategy.entry("Short", strategy.short, stop = lower, when = strategy.position_size >= 0 and close<lower)
if strategy.position_size > 0
strategy.exit("Stop Long", "Long", stop = ma)
if strategy.position_size < 0
strategy.exit("Stop Short", "Short", stop = ma)