Стратегия двойного золотого кросс-алгоритма EMA


Дата создания: 2024-01-22 11:04:41 Последнее изменение: 2024-01-22 11:04:41
Копирование: 0 Количество кликов: 303
1
Внимание
1105
Внимание

双EMA黄金交叉算法策略

Обзор

Эта стратегия позволяет генерировать золотые перекрестные и мертвые перекрестные торговые сигналы, рассчитывая на пересечение быстрой линии ЭМА и медленной линии ЭМА. Когда быстрая линия ЭМА пересекает медленную линию ЭМА, генерируется сигнал покупки; когда быстрая линия ЭМА пересекает медленную линию ЭМА, генерируется сигнал продажи. Эта стратегия использует преимущества движущейся средней линии, чтобы эффективно отслеживать рыночные тенденции и генерировать торговые сигналы на этапе запуска тренда.

Принципы стратегии

Основными показателями этой стратегии являются быстрая линия ЭМА и медленная линия ЭМА. Стратегия выполняется путем установки двух различных параметров ЕМА: быстрая линия ЭМА на 10, медленная линия ЕМА на 20. Из них 10-дневная линия ЕМА реагирует быстрее на изменения цен, а 20-дневная линия медленнее. Когда краткосрочная линия ЭМА пересекает длинную линию ЕМА, короткая средняя линия начинает вести длинную среднюю линию вверх, что означает, что ситуация может вступить в состояние взлома.

Благодаря принципу перекрестного действия быстрого EMA, эта стратегия позволяет в полной мере отслеживать время перехода рыночных тенденций и производить своевременные торговые сигналы. В то же время, EMA сам по себе обладает способностью фильтровать ложные сигналы, чтобы избежать частого открытия позиций во время рыночных потрясений. Это позволяет стратегии отслеживать рыночные переломные моменты при снижении количества ошибочных сделок, что дает более высокую рентабельность.

Анализ преимуществ

  • Использование EMA-процесса для захвата рыночных поворотных точек и повышения рентабельности
  • Быстрая линия EMA и медленная линия EMA используются совместно, чтобы использовать свои преимущества.
  • EMA имеет свой собственный фильтр, который может уменьшить количество ошибочных сделок
  • Простые, понятные и оптимизированные
  • Мощная масштабируемость, дополнительная оптимизация с использованием других вспомогательных показателей

Анализ рисков

  • Двойная EMA может часто вызывать ошибочные сигналы в нестабильных рынках
  • Неправильная настройка параметров EMA может пропустить рыночный поворот
  • В связи с этим, в связи с некоторым задержкой, возможно, будет упущена возможность короткой линии.
  • Не в состоянии справиться с мутациями

Оптимизация для этих рисков может быть осуществлена путем введения дополнительных показателей, таких как увеличение условий фильтрации сделок, сочетание MACD с предупреждением ошибочных сигналов, использование адаптивной скорости ответа ускоренного EMA и т. д. Кроме того, необходимы разумные остановки убытков и активные остановки.

Оптимизация

Среди направлений, которые могут быть оптимизированы, можно выделить следующие:

  • Увеличение фильтрации открытых позиций: например, в сочетании с показателями объема торгов, чтобы избежать ложных прорывов с низким объемом
  • В сочетании с такими вспомогательными показателями, как MACD, можно избежать ошибочных сигналов.
  • Введение адаптивной ЭМА, динамическая корректировка параметров ЭМА в соответствии с рыночными условиями
  • Совместная работа с несколькими временными рамками для использования преимуществ EMA различных циклов
  • Оптимизировать стратегию стоп-лосса, блокируя прибыль с помощью мобильных стоп-лосов, коэффициентов стоп-лосов и т.д.
  • Автоматическая оптимизация параметров в сочетании с такими технологиями, как глубокое обучение

Подведение итогов

Эта стратегия имеет сильный реальный эффект, используя принцип пересечения двойных быстромедленных линий EMA, чтобы захватить ключевые точки поворота на рынке. В сочетании с вспомогательными показателями и оптимизацией стоп-лосса, можно еще больше повысить стабильность стратегии. Идея стратегии проста и ясна, стоит количественного изучения и применения трейдерами, а также имеет большой потенциал для расширения и оптимизации.

Источник стратегии
                
                    /*backtest
start: 2023-01-15 00:00:00
end: 2024-01-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Backtest single EMA cross", overlay=true)

qty = input(100000, "Buy quantity")

testStartYear = input(2019, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testStartHour = input(0, "Backtest Start Hour")
testStartMin = input(0, "Backtest Start Minute")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, testStartHour, testStartMin)
testStopYear = input(2099, "Backtest Stop Year")
testStopMonth = input(1, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)
testPeriodBackground = input(title="Color Background?", type=input.bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and time >= testPeriodStart and time <= testPeriodStop ? 
   #00FF00 : na
testPeriod() => true


ema1 = input(10, title="Select EMA 1")
ema2 = input(20, title="Select EMA 2")

expo = ema(close, ema1)
ma = ema(close, ema2)

avg_1 = avg(expo, ma)
s2 = cross(expo, ma) ? avg_1 : na
//plot(s2, style=plot.style_line, linewidth=3, color=color.red, transp=0)

p1 = plot(expo, color=#00FFFF, linewidth=2, transp=0)
p2 = plot(ma, color=color.orange, linewidth=2, transp=0)
fill(p1, p2, color=color.white, transp=80)

longCondition = crossover(expo, ma)

shortCondition = crossunder(expo, ma)


if testPeriod()
    strategy.entry("Long", strategy.long, when=longCondition)
    strategy.entry("Short", strategy.short, when=shortCondition)

plotshape(longCondition, title = "Buy Signal", text ="BUY", textcolor =#FFFFFF , style=shape.labelup, size = size.normal, location=location.belowbar, color = #1B8112, transp = 0)
plotshape(shortCondition, title = "Sell Signal", text ="SELL", textcolor = #FFFFFF, style=shape.labeldown, size = size.normal, location=location.abovebar, color = #FF5733, transp = 0)


                
            
Больше информации