
Эта стратегия основана на двух показателях, перемещающихся средних ((EMA) золотой форк и мертвой форк для создания торговых сигналов. В частности, стратегия рассчитывает 50-циклические ЭМА и 200-циклические ЭМА, когда короткие ЭМА ((50 циклов) проходят через длинные ЭМА ((200 циклов), создают сигнал покупки; когда короткие ЭМА (50 циклов) проходят через длинные ЭМА (200 циклов), создают сигнал продажи. Это может эффективно улавливать изменения в краткосрочных и долгосрочных тенденциях цен на акции, формируя динамическую количественную торговую стратегию.
Вычисляются два скользящих средних индекса: 50-циклическая ЭМА и 200-циклическая ЭМА. ЭМА придает больший вес последним данным и более чувствительна к краткосрочным изменениям цен.
Определяем торговые сигналы:
Выполнение сделки по сигналу: купить сигнал с лишним, продать сигнал с нулевым.
На графике можно отобразить EMA и торговые сигналы, что поможет сформировать интуитивное суждение.
Эта стратегия имеет следующие преимущества:
Поиск обратных тенденций, особенно подходящих для трендов и рыночной консолидации.
Правила принятия решений просты и понятны, их легко реализовать и отразить.
EMA сглаживает данные о ценах, помогает распознавать сигналы тренда, устраняет шум.
Регулируемый цикл EMA, адаптированный к различным периодам удержания позиций.
В сочетании с другими показателями можно дополнительно отфильтровать сигналы и оптимизировать стратегию.
Однако эта стратегия также несет в себе некоторые риски:
В условиях кризиса может возникнуть больше ошибочных сигналов и больше недействительных сделок.
Robust - это не очень надежная система, основанная на одном правиле.
Не учитывая правила погашения убытков, существует риск увеличения убытков.
EMA может пропустить лучший момент для участия в изменениях цен.
Для определения оптимальных параметров требуется проведение обратных тестов, при этом производительность диска может отличаться от результатов обратных тестов.
Соответствующие меры контроля и оптимизации риска включают: фильтрацию сигналов в сочетании с другими показателями, установку механизмов остановки убытков, внедрение моделей машинного обучения и т. д.
Эта стратегия может быть оптимизирована в следующих аспектах:
В сочетании с другими показателями (например, MACD, KD и т. Д.) реализуется многофакторная модель, повышающая устойчивость стратегии.
Присоединение к механизму остановки убытков. Например, установка фиксированного процента остановки убытков или произвольной остановки убытков. Контроль за максимальной потерей в одной сделке.
Использование методов машинного обучения для получения оптимальных параметров. Улучшение правил оценки сигналов. Улучшение устойчивости стратегий.
На основе результатов отзывов устанавливается оптимальная комбинация циклов EMA. Параметры корректируются в зависимости от рыночных условий.
Оценить влияние затрат на торговлю ∙ Принять во внимание модель скольжения и комиссионные ∙ Оптимизировать управление позициями ∙
Эта стратегия в целом является более классической и простой стратегией прорывного типа торгов. Правила принятия решений на основе золотой форки на основе показателей EMA. Несмотря на то, что она имеет некоторую временную эффективность, существуют некоторые недостатки и возможности для оптимизации.
/*backtest
start: 2022-11-24 00:00:00
end: 2023-11-30 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA Golden Crossover Strategy", overlay=true)
// Input parameters
fastLength = input(50, title="Fast EMA Length")
slowLength = input(200, title="Slow EMA Length")
// Calculate EMAs using ta.ema
fastEMA = ta.ema(close, fastLength)
slowEMA = ta.ema(close, slowLength)
// Plot EMAs on the chart
plot(fastEMA, color=color.blue, title="Fast EMA")
plot(slowEMA, color=color.red, title="Slow EMA")
// Strategy logic
longCondition = ta.crossover(fastEMA, slowEMA)
shortCondition = ta.crossunder(fastEMA, slowEMA)
// Execute orders
if (longCondition)
strategy.entry("Buy", strategy.long)
if (shortCondition)
strategy.entry("Sell", strategy.short)
// Plot buy and sell signals on the chart
plotshape(series=longCondition, title="Buy Signal", color=color.green, style=shape.labelup, location=location.belowbar)
plotshape(series=shortCondition, title="Sell Signal", color=color.red, style=shape.labeldown, location=location.abovebar)