Эта стратегия позволяет определить прорыв тренда путем вычисления скользящих средних за разные временные рамки.
Если 10-дневная EMA пересекает 200-дневную EMA, а 20-дневная EMA пересекает 50-дневную EMA, вы должны пойти на длинный курс. Если 10-дневная EMA пересекает 200-дневную EMA и 20-дневная EMA пересекает 50-дневную EMA, вы должны пойти на короткий курс.
Стратегия сначала рассчитывает четыре экспоненциальные скользящие средние (EMAs) за 10-дневный, 20-дневный, 50-дневный и 200-дневный периоды. 10-дневная EMA представляет собой краткосрочный тренд, 20-дневный промежуточный, 50-дневный среднесрочный и 200-дневный долгосрочный тренд. Когда более короткая EMA пересекает более длинную EMA, это сигнализирует о потенциальном изменении тренда. Однако использование всего одного перекрестка EMA легко создает ложные сигналы.
Для повышения надежности стратегия применяет два слоя фильтрации: 10/200 EMA перекрестные индикаторы долгосрочных/короткосрочных тенденционных сдвигов, в то время как 20/50 EMA перекрестные индикаторы среднесрочных/среднесрочных сдвигов.
Двойная EMA-фильтрация значительно снижает ложные сигналы, создавая более надежные торговые записи.
Улучшения включают ослабление порогов прорыва, добавление подтверждения объема и оптимизацию параметров.
Подводя итог, двойная движущаяся средняя, дополненная оптимизацией, объемом и другими показателями, может создать устойчивую систему отслеживания тренда.
Простая, но практичная стратегия, следующая за трендом. Двойная EMA-ядра надежно фильтрует ложные прорывы на качественные сигналы. Легкая параметризация также облегчает принятие. Дальнейшие улучшения в управлении рисками и оптимизации могут повысить производительность. В целом доступная вводная квантовая стратегия, основанная на простоте.
/*backtest start: 2023-12-12 00:00:00 end: 2023-12-13 02:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Advancing Our Basic Strategy", overlay=true) ema10 = ema(close, 10) ema20 = ema(close, 20) ema50 = ema(close, 50) ema200 = ema(close, 200) long = ema10 > ema200 and ema20 > ema50 short = ema10 < ema200 and ema20 < ema50 longcondition = long and long[10] and not long[11] shortcondition = short and short[10] and not short[11] closelong = ema10 < ema200 or ema20 < ema50 and not long[11] closeshort = ema10 > ema200 or ema20 > ema50 and not short[11] plot(ema10, title="10", color=green, linewidth=2) plot(ema20, title="20", color=red, linewidth=3) plot(ema50, title="50", color=purple, linewidth=2) plot(ema200, title="200", color=blue, linewidth=3) testPeriodStart = timestamp(2018,8,1,0,0) testPeriodStop = timestamp(2038,8,30,0,0) if time >= testPeriodStart and time <= testPeriodStop strategy.entry("Long", strategy.long, 1, when=longcondition) strategy.entry("Short", strategy.short, 1, when=shortcondition) strategy.close("Long", when = closelong) strategy.close("Short", when = closeshort)