この戦略は,価格の動向と突破を決定するために2つの移動平均値を使用します.価格が上方レールを破るとショートで,価格が下部レールを破るとロングです.リスクを制御するためにストップ損失出口を設定します.
この戦略には以下の利点があります.
この戦略にはいくつかのリスクもあります:
この戦略は,次の側面で最適化できます.
この戦略の全体的な考え方は明確で理解しやすい.トレンドを特定するためにダブルレールシステムを使用し,エントリータイミングを決定するために価格突破を使用することで,ノイズをフィルターし,安定した利益を達成することができます.改善と最適化にも余地があります.全体として,これは実用的な価値を持つ再現可能な定量的な取引戦略です.
/*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()