이 전략은 두 개의 이동 평균을 사용하여 가격 트렌드와 돌파구를 결정합니다. 가격이 상단 레일을 통과 할 때 짧게 이동하고 가격이 하단 레일을 통과 할 때 길게 이동합니다. 위험을 제어하기 위해 스톱 로스 출구를 설정하십시오.
이 전략은 다음과 같은 장점을 가지고 있습니다.
이 전략에는 또한 몇 가지 위험이 있습니다.
이 전략은 다음과 같은 측면에서 최적화 될 수 있습니다.
이 전략의 전반적인 아이디어는 명확하고 이해하기 쉽다. 트렌드를 식별하기 위해 이중 레일 시스템을 사용하고 진입 시기를 결정하기 위해 가격 돌파구를 사용하여 소음을 필터하고 안정적인 수익을 얻을 수 있습니다. 또한 개선 및 최적화에 대한 여지가 있습니다. 전반적으로 실용적인 가치로 재생 가능한 양적 거래 전략입니다.
/*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()