Chiến lược được đặt tên làChiến lược theo dõi xu hướng dựa trên SMA và ATR.
Chiến lược này sử dụng chỉ số SMA để xác định hướng xu hướng giá và đặt các vị trí dừng lỗ với chỉ số ATR để theo dõi xu hướng. Nó đi ngắn khi giá phá vỡ xu hướng tăng và đi dài khi giá phá vỡ xu hướng giảm để thực hiện giao dịch xu hướng.
(1) Đi dài khi giá đóng tăng và cao hơn SMA.
(2) Đi ngắn khi giá đóng giảm và thấp hơn SMA.
Sử dụng giá trị của chỉ số ATR nhân số nhân stop loss được đặt làm vị trí stop loss.
Sau khi mỗi thanh đóng, kiểm tra vị trí dừng lỗ và cập nhật nó đến giá trị dừng lỗ gần với giá hiện tại.
Chức năng dừng lỗ khi giá chạm vào đường dừng lỗ.
Cài đặt stop loss động của chỉ số ATR cho phép theo dõi tự động xu hướng.
Các quy tắc dừng lỗ nghiêm ngặt giúp kiểm soát mức rút tiền tối đa cho mỗi giao dịch.
Chỉ có 3 tham số làm cho điều chỉnh và tối ưu hóa dễ dàng.
Nếu số lần stop loss được đặt quá cao, vị trí stop loss có thể quá lỏng lẻo, do đó làm tăng mức rút.
Giá sai đột phá có thể dẫn đến việc bỏ lỡ hướng xu hướng.
Sự phụ thuộc quá mức vào tối ưu hóa tham số có thể dẫn đến phù hợp đường cong. Sự ổn định của các tham số nên được đánh giá cẩn thận.
Các loại thuật toán dừng lỗ khác có thể được thử nghiệm, chẳng hạn như dừng lỗ di chuyển, dừng lỗ tỷ lệ, v.v.
Các chỉ số khác có thể được thêm vào để lọc các sự phá vỡ sai. Ví dụ, thêm các điều kiện khối lượng giao dịch.
Lịch sử kiểm tra ngược để đánh giá các thông số
Ý tưởng tổng thể của chiến lược này là rõ ràng. Nó đánh giá hướng xu hướng thông qua SMA và sử dụng ATR để theo dõi xu hướng với kiểm soát rút tiền tốt. Nó phù hợp với giao dịch xu hướng trung bình dài hạn. Nhưng các tham số vẫn cần điều chỉnh đúng cách trong giao dịch trực tiếp và rủi ro tối ưu hóa quá mức nên được ngăn ngừa.
/*backtest start: 2024-01-16 00:00:00 end: 2024-01-16 17:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © omererkan //@version=5 strategy(title="SMA with ATR", overlay=true) smaLen = input.int(100, title="SMA Length") atrLen = input.int(10, title="ATR Length") stopOffset = input.float(4, title="Stop Offset Multiple", step=0.25) smaValue = ta.sma(close, smaLen) stopValue = ta.atr(atrLen) * stopOffset lowerCloses = close < close[1] and close[1] < close[2] and close[2] < close[3] enterLong = close > smaValue and lowerCloses longStop = 0.0 longStop := if enterLong and strategy.position_size < 1 close - stopValue else math.max(close - stopValue, longStop[1]) higherCloses = close > close[1] and close[1] > close[2] and close[2] > close[3] enterShort = close < smaValue and higherCloses shortStop = 0.0 shortStop := if enterShort and strategy.position_size > -1 close + stopValue else math.min(close + stopValue, shortStop[1]) plot(smaValue, color=#4169e1, linewidth=2, title="SMA") plot(strategy.position_size > 0 ? longStop : na, color=color.lime, style=plot.style_linebr, title="Long stop", linewidth=2) plot(strategy.position_size < 0 ? shortStop : na, color=color.red, style=plot.style_linebr, title="Short stop", linewidth=2) if enterLong strategy.entry("EL", strategy.long) if enterShort strategy.entry("ES", strategy.short) if strategy.position_size > 0 strategy.exit("SL Long", from_entry="EL", stop=longStop) if strategy.position_size < 0 strategy.exit("SL Short", from_entry="ES", stop=shortStop) if enterLong strategy.cancel("Exit Short") if enterShort strategy.cancel("Exit Long")