Chiến lược này sử dụng đường trung bình động và đường trung bình thực để xác định hướng xu hướng thị trường cho giao dịch theo dõi xu hướng.
Chiến lược này sử dụng đường trung bình động trong các giai đoạn và hai lần đường trung bình thực sự trong các giai đoạn để xác định xu hướng thị trường.
Khi mức thấp lớn hơn trung bình động cộng với phạm vi trung bình thực sự (mức thấp > ma + atr), nó được đánh giá là xu hướng tăng. Khi mức cao thấp hơn trung bình động trừ khoảng trung bình thực sự (cao < ma - atr), nó được đánh giá là xu hướng giảm.
Trong các trường hợp khác, phán quyết trước đó được duy trì.
Khi một xu hướng tăng được xác định, đi dài ở một tỷ lệ phần trăm nhất định khi được phép đi dài. Khi một xu hướng giảm được xác định, đi ngắn ở một tỷ lệ phần trăm nhất định khi được phép đi ngắn.
Điều kiện đóng cửa là đạt đến ngày kết thúc giao dịch được chỉ định.
Những lợi thế của chiến lược này là:
Những rủi ro chính đối với chiến lược này là:
Giải pháp:
Chiến lược có thể được tối ưu hóa từ các khía cạnh sau:
Ý tưởng tổng thể của chiến lược này là rõ ràng và dễ hiểu. Nó sử dụng đường trung bình động để xác định hướng xu hướng và sử dụng đường trung bình thực sự để thiết lập điểm dừng. Nó có thể theo dõi xu hướng một cách hiệu quả. Nhưng có một số rủi ro nhất định, và tối ưu hóa thêm các thiết lập tham số và thêm các chỉ số phán đoán khác là cần thiết. Nói chung, chiến lược này cung cấp một cách tiếp cận khả thi cho việc theo dõi xu hướng.
/*backtest start: 2024-01-04 00:00:00 end: 2024-01-11 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //2019 //Noro //@version=4 strategy(title = "Noro's MA+ATR Strategy", shorttitle = "MA+ATR str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %") len = input(30, minval = 2, title = "MA Length") src = input(ohlc4, title = "MA Source") limitmode = input(false) fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //MA + BG atr = sma(tr, len) * 2 ma = sma(src, len) plot(ma, color = color.blue, linewidth = 4) trend = 0 trend := low > ma + atr ? 1 : high < ma - atr ? -1 : trend[1] col = trend == 1 ? color.lime : color.red bgcolor(col, transp = 70) //Trading lot = 0.0 lot := strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1] if trend == 1 and limitmode == false strategy.entry("Long", strategy.long, needlong == false ? 0 : lot) if trend == -1 and limitmode == false strategy.entry("Short", strategy.short, needshort == false ? 0 : lot) if trend == 1 and limitmode strategy.entry("Long", strategy.long, needlong == false ? 0 : lot) if trend == -1 and limitmode strategy.entry("Short", strategy.short, needshort == false ? 0 : lot) // if time > timestamp(toyear, tomonth, today, 23, 59) // strategy.close_all()