
Chiến lược này sử dụng đường trung bình di chuyển và tỷ lệ biến động thực tế trung bình để đánh giá xu hướng thị trường và theo dõi xu hướng giao dịch theo xu hướng.
Chiến lược này sử dụng trung bình di chuyển của chu kỳ len ma và trung bình biến động thực của chu kỳ len 2 lầnatr để đánh giá xu hướng thị trường. Quy tắc đánh giá cụ thể là:
Khi giá thấp lớn hơn giá trung bình di chuyển cộng với tỷ lệ biến động thực trung bình ((low > ma + atr), nó được coi là xu hướng tăng.
Khi giá cao hơn so với đường trung bình di chuyển trừ đi đường trung bình thực tế thì giá cao (high < ma - atr) được coi là xu hướng giảm.
Các trường hợp khác vẫn giữ nguyên phán đoán trước đó.
Khi đánh giá xu hướng tăng, khi được phép làm nhiều hơn, hãy làm nhiều hơn theo một tỷ lệ nhất định.
Trong việc đánh giá xu hướng giảm, khi cho phép thực hiện空白, hãy thực hiện空白 theo một tỷ lệ nhất định.
Điều kiện là đến ngày giao dịch kết thúc.
Chiến lược này có những ưu điểm sau:
Chiến lược này có những rủi ro chính như sau:
Giải pháp:
Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:
Chiến lược tổng thể của chiến lược này rõ ràng, dễ hiểu, sử dụng đường trung bình di chuyển để xác định hướng xu hướng và sử dụng tỷ lệ biến động thực tế trung bình để thiết lập dừng để có thể theo dõi xu hướng hiệu quả. Tuy nhiên, có một số rủi ro cần thiết để tối ưu hóa thêm các tham số thiết lập và thêm các chỉ số phán đoán khác. Nói chung, chiến lược này cung cấp một cách suy nghĩ khả thi để theo dõi xu hướng giao dịch.
/*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()