
Chính sách này được gọi làChiến lược theo 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 của giá và sử dụng chỉ số ATR để thiết lập vị trí dừng lỗ để theo dõi xu hướng. Khi giá phá vỡ xu hướng tăng, hãy tháo lỗ và khi giá phá vỡ xu hướng giảm, hãy thực hiện giao dịch theo xu hướng.
(1) Làm nhiều hơn khi giá đóng cửa tăng và cao hơn SMA (2) Cắt lỗ khi giá đóng cửa giảm và dưới SMA
Sử dụng giá trị của chỉ số ATR nhân với số nhân dừng lỗ được thiết lập như vị trí dừng lỗ.
Kiểm tra vị trí dừng lỗ sau mỗi lần đóng cửa đường K và cập nhật mức dừng lỗ gần hơn giá hiện tại.
Giá chạm vào đường dừng lỗ và chủ động dừng lỗ.
Thiết lập dừng động sử dụng 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 tối đa của một giao dịch.
Chỉ có 3 tham số để điều chỉnh và tối ưu hóa.
Nếu thiết lập hệ số dừng quá lớn, có thể dẫn đến vị trí dừng quá thoải mái, làm tăng rút lui.
Khi giá bị phá vỡ giả, nó có thể dẫn đến sai hướng xu hướng, nên được kết hợp với các tín hiệu lọc khác.
Tối ưu hóa tham số phụ thuộc quá mức có thể dẫn đến tối ưu hóa đường cong. Cần thận trọng đánh giá tính ổn định của tham số.
Các loại thuật toán dừng khác có thể được thử nghiệm, chẳng hạn như dừng di chuyển, dừng tỷ lệ, v.v.
Các chỉ số khác có thể được thêm vào để lọc các đột phá giả. Ví dụ như tăng điều kiện khối lượng giao dịch.
Các tham số được đánh giá thích ứng với các giống và chu kỳ khác nhau thông qua lịch sử.
Chiến lược này có tư duy tổng thể rõ ràng, thông qua SMA để đánh giá hướng xu hướng và sử dụng ATR để theo dõi xu hướng, khả năng kiểm soát lùi tốt, phù hợp với giao dịch xu hướng đường dài và trung bình. Tuy nhiên, vẫn cần điều chỉnh các tham số thích hợp trong thực tế và phòng ngừa rủi ro quá tối ưu hó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")