Это стратегия обратного движения, основанная на простом пересечении скользящей средней. Она использует 1-дневные и 5-дневные простые скользящие средние. Когда более короткая SMA пересекает более длинную SMA, она идет длинной. Когда более короткая SMA пересекает ниже более длинной SMA, она идет короткой. Это типичная стратегия, следующая за трендом.
Стратегия рассчитывает 1-дневную SMA (sma1) и 5-дневную SMA (sma5) цены закрытия. Когда sma1 пересекает sma5, он входит в длинную позицию. Когда sma1 пересекает ниже sma5, он входит в короткую позицию. После открытия длинной позиции стоп-лосс устанавливается на 5 USD ниже цены входа и прибыль получается выше 150 USD. Для коротких позиций стоп-лосс составляет 5 USD выше цены входа и прибыль получается ниже 150 USD.
Эта простая стратегия двойной SMA легко понять и реализовать для быстрой проверки стратегии. Но она имеет ограниченную толерантность к риску и потенциал прибыли. Необходимы дальнейшие оптимизации параметров и фильтров для адаптации к более рыночным условиям.
/*backtest start: 2023-02-19 00:00:00 end: 2024-02-19 00:00:00 period: 2d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Valeria 181 Bot Strategy Mejorado 2.21", overlay=true, margin_long=100, margin_short=100) var float lastLongOrderPrice = na var float lastShortOrderPrice = na longCondition = ta.crossover(ta.sma(close, 1), ta.sma(close, 5)) if (longCondition) strategy.entry("Long Entry", strategy.long) // Enter long shortCondition = ta.crossunder(ta.sma(close, 1), ta.sma(close, 5)) if (shortCondition) strategy.entry("Short Entry", strategy.short) // Enter short if (longCondition) lastLongOrderPrice := close if (shortCondition) lastShortOrderPrice := close // Calculate stop loss and take profit based on the last executed order's price stopLossLong = lastLongOrderPrice - 5 // 10 USDT lower than the last long order price takeProfitLong = lastLongOrderPrice + 151 // 100 USDT higher than the last long order price stopLossShort = lastShortOrderPrice + 5 // 10 USDT higher than the last short order price takeProfitShort = lastShortOrderPrice - 150 // 100 USDT lower than the last short order price // Apply stop loss and take profit to long positions strategy.exit("Long Exit", from_entry="Long Entry", stop=stopLossLong, limit=takeProfitLong) // Apply stop loss and take profit to short positions strategy.exit("Short Exit", from_entry="Short Entry", stop=stopLossShort, limit=takeProfitShort)