Đây là một chiến lược đột phá sử dụng chỉ số ATR để tạo ra các tín hiệu giao dịch. Chiến lược sử dụng một hệ thống trung bình động để tạo ra các tín hiệu nhập cảnh và một kênh ATR khuếch đại dựa trên tỷ lệ vàng để xây dựng các vị trí dài và ngắn. Nó có thể đạt được lợi nhuận đáng kể trong xu hướng và thu được lợi nhuận nhỏ nhưng ổn định trong các thị trường giới hạn phạm vi.
Mã tính toán ATR trong một khoảng thời gian của giá đóng cửa, khuếch đại nó bằng 1,618 như dải trên và 2,618 như dải dưới. Kết hợp với EMA, nó tạo thành một hệ thống thoát kênh Bollinger. Đi dài khi giá phá vỡ dải dưới lên và đi ngắn khi phá vỡ dải trên xuống để theo xu hướng.
Chiến lược này tích hợp lọc trung bình động, theo dõi kênh ATR và phương pháp tỷ lệ vàng, có thể theo dõi hiệu quả các xu hướng trung và dài hạn với sự ổn định tốt. Bằng cách điều chỉnh các tham số, nó có thể được điều chỉnh cho các sản phẩm khác nhau trên các tần số khác nhau, xứng đáng được khám phá cho khả năng thích nghi thị trường tuyệt vời của nó.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("ATR Long Only Strategy lower band buy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100) len = input(52, type=input.integer, minval=1, title="Length") mul = input(1.618, type=input.float, minval=0, title="Length") mullow = input(2.618, type=input.float, minval=0, title="Length") price = sma(close, 1) average = ema(close, len) diff = atr(len) * mul difflow = atr(len) * mullow bull_level = average + diff bear_level = average - difflow bull_cross = crossunder(price, bear_level) bear_cross = crossunder(bull_level, price) FromMonth = input(defval = 8, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 18, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2008, title = "From Year", minval = 2008) ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 2020, title = "To Year", minval = 2019) start = timestamp(FromYear, FromMonth, FromDay, 00, 00) finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) startTimeOk() => true if (startTimeOk()) strategy.entry("KOP", strategy.long, when=bull_cross) strategy.close("KOP", when=bear_cross) //strategy.entry("Sell", strategy.short, when=bear_cross) plot(price, title="price", color=color.black, transp=50, linewidth=2) a0 = plot(average, title="average", color=color.red, transp=50, linewidth=1) a1 = plot(bull_level, title="bull", color=color.green, transp=50, linewidth=1) a2 = plot(bear_level, title="bear", color=color.red, transp=50, linewidth=1) fill(a0, a1, color=color.green, transp=97) fill(a0, a2, color=color.red, transp=97)