Эта торговая стратегия основана на простой системе пересечения скользящей средней и скользящей средней для отслеживания тренда. Она использует пересечение быстрых и медленных скользящих средних с различными периодами в качестве сигналов для длинного или короткого курса. Когда быстрый MA пересекает более медленного MA снизу, идите на длинный; когда быстрый MA пересекает ниже медленного MA сверху, идите на короткий. Эта стратегия хорошо работает для продуктов с очевидными трендами.
Стратегия использует быструю простую скользящую среднюю, такую как 60-дневная, и медленную, такую как 200-дневную.
Когда короткий MA пересекает длинный MA снизу, это сигнализирует о том, что краткосрочные цены начинают расти и выходят на бычий рынок, так что идите на длинный.
Стратегия использует перекресток MA для определения направления тренда. Когда краткосрочные цены растут быстрее, короткий MA подтолкнет длинный MA вверх и пересечет его снизу. Это означает, что появляется восходящий тренд и должна быть занята длинная позиция. Напротив, когда краткосрочные цены падают быстрее, короткий MA вытащит длинный MA вниз и пересечет его сверху, что подразумевает нисходящий тренд и следует занять короткую позицию.
Захватывая точки перелома ценовых тенденций с использованием быстрых и медленных перекрестников MA, стратегия может соответственно корректировать длинные/короткие позиции.
Такие методы, как корректировка периодов MA в зависимости от частоты волатильности продуктов, улучшение режима остановки/вывода прибыли с использованием более сложных индикаторов, добавление фильтра объема и т.д., могут оптимизировать эту стратегию и повысить стабильность.
Стратегия может быть дополнительно оптимизирована в следующих аспектах:
Оптимизировать быстрые и медленные периоды MA для адаптации к продуктам с различными частотами волатильности.
Улучшить условия входа, добавив больше фильтров, таких как пики громкости, чтобы уменьшить ложные сигналы.
Улучшить стоп-лосс/стоп-прибыль, например, динамический стоп-прибыль или динамический стоп-прибыль, чтобы повысить рентабельность.
Рассмотрим торговые издержки, такие как комиссии, и добавим модули оценки затрат для более реалистичных бэктестов.
Проектируйте Вселенную параметров, чтобы найти оптимальные комбинации параметров, адаптированных к различным продуктам.
Добавить идентификацию местных моделей, чтобы помочь определить поворотные моменты тренда и улучшить сроки входа и выхода.
Благодаря систематической оптимизации стратегии, рентабельность, стабильность могут быть значительно улучшены и снижены затраты.
Стратегия торговли определяет сдвиги в тренде с помощью кроссоверов MA, типичной стратегии, следующей за трендом. Она использует кроссовер между быстрыми и медленными MAs для генерации длинных / коротких сигналов, определяя направление тренда посредством комбинации двух. Эта стратегия стабильно и надежно улавливает тенденции и легко понимается и реализуется. При оптимизации она может адаптироваться к большинству продуктов и формирует фундаментальную количественную торговую стратегию.
/*backtest start: 2024-01-04 00:00:00 end: 2024-01-11 00:00:00 period: 10m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © thebearfib // //@version=5 // strategy("x-over 150d_200d_sma - Free", overlay = true) repaint = input.bool(defval = false, title = "[RePaint] Uncheck to see real time results") //when you deselect it - it shows what would have happened in real time while trading the system srcmc = request.security(syminfo.tickerid, 'D', open, lookahead= repaint ? barmerge.lookahead_on : barmerge.lookahead_off, gaps=barmerge.gaps_off) fast_length = input(title="Fast Length", defval=60) slow_length = input(title="Slow Length", defval=275) _fast = ta.sma(srcmc, fast_length) _slow = ta.sma(srcmc, slow_length) plot(_fast, title="Fast SMA", color=color.red, linewidth = 1) plot(_slow, title="Slow SMA", color=color.white, linewidth = 3) // // ———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— // ————————————————————————————————— Calculating ————————————————————————————————————————————————————————————————————————— // ———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— // longProfitPerc = input.float(title="Long Take Profit (%)", minval=0.01, step=1.0, defval=42) * .01 longStopPerc = input.float(title="Long Stop (%)", minval=0.01, step=1.0, defval=13) * .01 // // ———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— // ————————————————————————————————— Stop Conditions ———————————————————————————————————————————————————————————————————— // ———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— longExitPrice = strategy.opentrades > 0 ? strategy.position_avg_price * (1 + longProfitPerc) : srcmc * (1 + longProfitPerc) longStopPrice = strategy.opentrades > 0 ? strategy.position_avg_price * (1 - longStopPerc) : srcmc * (1 - longStopPerc) // ———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— // ————————————————————————————————— Long Conditions ———————————————————————————————————————————————————————————————————— // ———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— longCondition = srcmc > _slow and ta.crossover(_fast, _slow) closeCondition = ta.crossover(srcmc, _slow) if (longCondition) strategy.entry("Entry (long)", strategy.long, comment="→ 𝗟𝗴 𝗘𝗻𝘁𝗿𝘆") if (closeCondition) strategy.close("Entry (long)", comment=" 𝗟𝗴 𝗘𝘅𝗶𝘁 ←") if (strategy.position_size > 0) strategy.exit(id="XL", limit=longExitPrice, stop = longStopPrice, comment_profit = "Take Profit", comment_loss = "Stop Loss") // // ———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— // ————————————————————————————————— Never the End Just the beginning ————————————————————————————————————————————————— // ———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— //