
Chiến lược này sử dụng hai đường trung bình di chuyển để đánh giá xu hướng và đột phá của giá. Khi giá lên đường, hãy làm trống, khi giá xuống đường, hãy làm nhiều hơn để kiểm soát rủi ro.
Chiến lược này có những ưu điểm sau:
Chiến lược này cũng có một số rủi ro:
Chính sách 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ất rõ ràng và dễ hiểu, thông qua hệ thống hai làn đường để xác định xu hướng, giá phá vỡ thời gian vào thị trường, có thể lọc tiếng ồn để đạt được lợi nhuận ổn định, cũng có một số không gian để cải tiến và tối ưu hóa. Nhìn chung, đây là một chiến lược giao dịch định lượng có giá trị thực tế có thể lặp lại.
/*backtest
start: 2023-11-13 00:00:00
end: 2023-11-20 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=3
strategy(title = "Noro's Shift MA Strategy v1.0", shorttitle = "Shift MA str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)
//Settings
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
per = input(3, defval = 1, minval = 1, maxval = 1000, title = "Length")
src = input(ohlc4, title = "Source")
buylevel = input(-5.0, defval = -5.0, minval = -100, maxval = 0, title = "Buy line (lime)")
selllevel = input(0.0, defval = 0.0, minval = -100, maxval = 100, title = "Sell line (red)")
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")
//SMAs
sma = sma(src, per)
buy = sma * ((100 + buylevel) / 100)
sell = sma * ((100 + selllevel) / 100)
plot(buy, linewidth = 2, color = lime, title = "Buy line")
plot(sell, linewidth = 2, color = red, title = "Sell line")
//Trading
size = strategy.position_size
lot = 0.0
lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1]
if (not na(close[per])) and size == 0
strategy.entry("L", strategy.long, lot, limit = buy)
if (not na(close[per]))
strategy.entry("Close", strategy.short, 0, limit = sell)
if time > timestamp(toyear, tomonth, today, 23, 59)
strategy.close_all()