Стратегия двойного Золотого Креста EMA

Автор:Чао Чжан, Дата: 2024-01-22 11:04:41
Тэги:

img

Обзор

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

Логика стратегии

Основными показателями этой стратегии являются быстрая линия EMA и медленная линия EMA. Стратегия устанавливает две линии EMA с различными параметрами, из которых 10 для быстрой EMA и 20 для медленной EMA. 10-дневная линия EMA реагирует быстрее на изменения цен, в то время как 20-дневная линия реагирует медленнее. Когда краткосрочная линия EMA пересекает длинную линию EMA, это означает, что краткосрочная средняя линия начинает вести долгосрочную линию вверх, что означает, что рынок может перейти в бычье состояние. В этот момент генерируется сигнал покупки. Напротив, когда короткая EMA падает ниже длинной EMA, это означает, что короткая EMA начинает терять свою ведущую силу впереди длинной EMA, что означает, что рынок может перейти в медленное состояние. Соответственно, генерируется сигнал продажи.

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

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

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

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

  • Частые ложные сигналы могут возникать на рынках с диапазоном
  • Неправильное установление параметров EMA может привести к отсутствию крупных поворотов
  • Задержка выпуска может привести к отсутствию краткосрочных торговых возможностей
  • Неспособность адаптироваться к резким рыночным турбулентам

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

Руководство по оптимизации

Потенциальные направления дальнейшей оптимизации включают:

  • Добавление правил фильтрации сигналов входа, например объем объединенной торговли
  • Включение вспомогательных индикаторов, таких как MACD, для дополнительных сигналов
  • Внедрение адаптивной EMA для динамической настройки параметров
  • Использование анализа многочасовых рамок для использования различных 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)



Больше