Esta estrategia utiliza dos promedios móviles para determinar las tendencias de los precios y los avances. Ir corto cuando el precio rompe el rieles superior y ir largo cuando el precio rompe el rieles inferior. Establecer salidas de stop loss para controlar los riesgos.
Esta estrategia tiene las siguientes ventajas:
Esta estrategia también tiene algunos riesgos:
Esta estrategia puede optimizarse en los siguientes aspectos:
La idea general de esta estrategia es clara y fácil de entender. Al usar el sistema de doble carril para identificar tendencias y usar avances de precios para determinar el momento de entrada, puede filtrar el ruido y lograr ganancias estables. También hay margen de mejora y optimización. En general, es una estrategia comercial cuantitativa reproducible con valor práctico.
/*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()