Экспоненциальная скользящая средняя кроссоверная стратегия - это простая количественная стратегия торговли, которая отслеживает тенденции цен. Она использует перекрестки двух экспоненциальных скользящих средних с различными параметрами настроек в качестве сигналов покупки и продажи. Когда краткосрочная EMA пересекает длинную EMA, генерируется сигнал покупки. Когда краткосрочная EMA пересекает длинную EMA, генерируется сигнал продажи.
Основная логика этой стратегии основана на теории EMA. Экспоненциальные скользящие средние могут эффективно сглаживать колебания цен и определять направление ценовой тенденции. Быстрая EMA быстро реагирует на изменения цен, в то время как медленная EMA обеспечивает ссылку на направление ценовой тенденции. Когда быстрая EMA пересекает медленную EMA, это указывает на то, что цены начали расти и генерируется сигнал покупки. Когда быстрая EMA пересекает ниже медленной EMA, это указывает на то, что цены начали падать и генерируется сигнал продажи.
В частности, эта стратегия сначала определяет два экспоненциальных скользящих средних: fib_level и fib_price. fib_level устанавливается вводом пользователя, а fib_price рассчитывается на основе самых высоких и самых низких цен последних 100 бар. Когда цена закрытия пересекает fib_price или ниже, генерируются сигналы покупки и продажи соответственно. В то же время стоп-лосс устанавливается на самые высокие и самые низкие цены последних 10 бар.
Риски могут быть уменьшены путем оптимизации параметров EMA, использования тройной системы EMA или сочетания с другими индикаторами для подтверждения сигнала.
Эта стратегия может быть оптимизирована из следующих аспектов:
Оптимизируйте параметры периода EMA. Испытывайте различные комбинации периодов, чтобы найти лучшие параметры.
Добавьте объем и другие фильтры. генерируйте сигналы покупки, когда объем растет, и сигналы продажи, когда объем падает, чтобы избежать неправильных сигналов во время резких скачков цен.
Использование алгоритмов машинного обучения для автоматической оптимизации параметров на основе исторических данных.
Добавьте механизм остановки, чтобы остановить размещение убытков.
Стратегия экспоненциальной скользящей средней кроссовер является простой в использовании количественной торговой стратегии в целом. Она использует сильные стороны EMA для определения ценовых тенденций и устанавливает остановки для контроля рисков. Стратегия проста в понимании, гибкая в параметрах и применима для количественной торговли между различными продуктами. Дальнейшие оптимизации в настройке параметров, дополнительные фильтры и последующие остановки могут привести к еще лучшей эффективности стратегии.
/*backtest start: 2023-12-08 00:00:00 end: 2024-01-07 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Fibonacci Strategy", overlay=true) // Define Fibonacci 0.5 level fib_level = input(0.5, title="Fibonacci Level") // Calculate Fibonacci 0.5 level price fib_price = ta.lowest(low, 100) + (ta.highest(high, 100) - ta.lowest(low, 100)) * fib_level // Define entry and exit conditions long_condition = ta.crossover(close, fib_price) short_condition = ta.crossunder(close, fib_price) // Set exit points (using previous high or low) long_exit = ta.highest(high, 10) short_exit = ta.lowest(low, 10) // Plot Fibonacci 0.5 level plot(fib_price, "Fib 0.5", color=color.blue, linewidth=1, style=plot.style_circles) // Initialize variables var inLong = false var inShort = false // Set trading signals if (long_condition) if not inLong strategy.entry("Buy", strategy.long) inLong := true strategy.exit("Exit", "Buy", limit=long_exit) if (short_condition) if not inShort strategy.entry("Sell", strategy.short) inShort := true strategy.exit("Exit", "Sell", limit=short_exit) if (ta.crossover(close, long_exit) or ta.crossunder(close, short_exit)) inLong := false inShort := false