Chiến lược theo dõi xu hướng dựa trên SMA và ATR

Tác giả:ChaoZhang, Ngày: 2024-01-18 16:04:51
Tags:

img

I. Tên của chiến lược

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.

II. Tổng quan chiến lược

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.

III. Nguyên tắc chiến lược

1. Các tín hiệu nhập cảnh

(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.

2. Dừng Loss Setting

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.

3. Ngừng Loss Updating

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.

4. Dấu hiệu ra ngoài

Chức năng dừng lỗ khi giá chạm vào đường dừng lỗ.

IV. Ưu điểm của chiến lược

1. Khả năng theo dõi xu hướng mạnh

Cài đặt stop loss động của chỉ số ATR cho phép theo dõi tự động xu hướng.

2. Kiểm soát tốt lượng nước

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.

3. Thiết lập tham số đơn giản

Chỉ có 3 tham số làm cho điều chỉnh và tối ưu hóa dễ dàng.

V. Rủi ro của chiến lược

1. Rủi ro của Stop Loss là quá lỏng lẻo

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.

2. Mối nguy hiểm của việc thoát khỏi bệnh giả

Giá sai đột phá có thể dẫn đến việc bỏ lỡ hướng xu hướng.

3. Rủi ro của tối ưu hóa tham số

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.

VI. Định hướng tối ưu hóa chiến lược

1. Tối ưu hóa thuật toán dừng lỗ

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.

2. Thêm tín hiệu lọc

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.

3. Đánh giá sự ổn định của các thông số

Lịch sử kiểm tra ngược để đánh giá các thông số khả năng thích nghi với các sản phẩm và khung thời gian khác nhau.

VII. Tóm tắt

Ý 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")


Thêm nữa