Это торговая стратегия, основанная на перекрестке двойных скользящих средних. Она генерирует сигналы покупки и продажи, когда две скользящие средние различной длины пересекаются. В частности, она длинная, когда более быстрый MA пересекает более медленный MA, и короткая, когда более быстрый MA пересекает ниже более медленного MA.
Основная логика этой стратегии заключается в принципах перекрестного взаимодействия между двумя скользящими средними.
В этой стратегии краткосрочный MA отслеживает краткосрочные тенденции, в то время как долгосрочный MA отслеживает долгосрочные тенденции.
В частности, стратегия рассчитывает MAs с использованием ta.sma за long_period и short_period, определенные пользователями. Затем она использует ta.crossover и ta.crossunder для обнаружения золотого кроссовера и кроссовера смерти между двумя MAs. Когда короткий MA пересекает длинный MA, идите в длинный. Когда короткий MA пересекает ниже, идите в короткий.
К основным преимуществам этой стратегии относятся:
Существует также несколько рисков:
Для смягчения рисков можно настроить параметры, включить стоп-лосс и прибыль или добавить другие технические показатели.
Есть возможности для дальнейшей оптимизации:
В заключение, это идеальная стартовая стратегия для алгоритмической торговли, благодаря простоте в логике и параметрах, при этом способная эффективно улавливать изменения рынка.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Cross 2 Moving Average Strategy", shorttitle="2MA Cross", overlay=true) // User-defined input for moving averages long_period = input(20, title="Long Period") short_period = input(5, title="Short Period") type_ma = input.string("SMA", title = "MA type", options = ["SMA", "EMA"]) // Calculating moving averages long_ma = ta.sma(close, long_period) short_ma = ta.sma(close, short_period) // Plot moving averages plot(long_ma, title="Long Moving Average", color=color.red) plot(short_ma, title="Short Moving Average", color=color.green) // Strategy logic for crossing of moving averages longCondition = ta.crossover(short_ma, long_ma) shortCondition = ta.crossunder(short_ma, long_ma) // Entry orders if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) // Optional: Add stop loss and take profit stop_loss_perc = input(1, title="Stop Loss (%)") / 100 take_profit_perc = input(2, title="Take Profit (%)") / 100 strategy.exit("Exit Long", from_entry="Long", stop=close*(1-stop_loss_perc), limit=close*(1+take_profit_perc)) strategy.exit("Exit Short", from_entry="Short", stop=close*(1+stop_loss_perc), limit=close*(1-take_profit_perc))