Торговая стратегия Double EMA Golden Cross и Death Cross


Дата создания: 2023-10-17 13:56:54 Последнее изменение: 2023-10-17 13:56:54
Копировать: 0 Количество просмотров: 709
1
Подписаться
1617
Подписчики

Торговая стратегия Double EMA Golden Cross и Death Cross

Обзор

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

Стратегический принцип

Основные принципы этой стратегии:

fast = input(25, title="Fast") 
slow = input(75, title="Slow")

matype1=ema(source, fast)
matype2=ema(source, slow)

longCondition = crossover(matype1, matype2) 
shortCondition = crossunder(matype1, matype2)

if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)  
    strategy.entry("Short", strategy.short)

Эта стратегия сначала устанавливает медленно две средние линии EMA, в которых скоростная линия EMA имеет цикл 25, а медленная линия EMA - 75. Затем вычисляется значение двух линий EMA. Когда линия EMA пересекает медленную линию EMA с нижнего направления, создается условие longCondition истинно; когда скоростная линия EMA падает с верхнего направления и нарушает медленную EMA, создается условие shortCondition истинно.

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

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

Эта стратегия имеет следующие преимущества:

  1. Обычно, это простой, интуитивно понятный и понятный процесс.

  2. Используйте EMA, чтобы сгладить рыночные колебания и эффективно отфильтровать ложные сигналы.

  3. Золотой форк - сильный торговый сигнал, который позволяет эффективно контролировать риск.

  4. Гибкость в адаптации цикла EMA к различным рыночным условиям.

  5. Легкость использования в сочетании с другими техническими показателями.

  6. Лучшие результаты стратегии могут быть получены путем оптимизации параметров EMA.

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

Однако эта стратегия также несет в себе некоторые риски:

  1. В шокирующих ситуациях EMA часто пересекаются, что приводит к большому количеству недействительных торговых сигналов.

  2. EMA отстает и может упустить короткую линию.

  3. Невозможно определить переломный момент только с помощью пересечения EMA, существует определенный предел прибыли.

  4. Фиксированный цикл EMA не может адаптироваться к изменениям рынка.

  5. Это требует сильной финансовой поддержки, в противном случае возникает высокий риск дериватива.

  6. Необходимы строгие ограничения на убытки, иначе один убыток может быть значительным.

Направление оптимизации

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

  1. Оптимизация циклических параметров EMA в зависимости от рыночной ситуации.

  2. Добавление фильтров для других показателей, таких как MACD, Брин-Бенд и т.д., улучшает качество сигнала.

  3. Повышение индексов определения тренда, таких как ATR stop loss, ADX и т.д., уменьшение недействительных сделок.

  4. В сочетании с более детальным анализом временных циклов, можно определить направление тенденций.

  5. Динамическая оптимизация циклов EMA с использованием методов машинного обучения.

  6. Оптимизация управления позициями для контроля риска.

  7. Оптимизация стратегии по удержанию убытков и снижение убытков в одноразовом порядке.

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

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

Исходный код стратегии
/*backtest
start: 2023-09-16 00:00:00
end: 2023-10-16 00:00:00
period: 1h
basePeriod: 15m
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/
// Double EMA CROSS By © EmreE (Emre Ertürk) Also thx for KivancOzbilgic color based bars

//@version=4
strategy(title="Double EMA CROSS", shorttitle="DEC", overlay=true)

matype = input("ema")
hidema = input(false)
sourcetype = input(close, title="Source Type")
source=close
 
// STEP 1:
// Configure backtest start date with inputs
startDate = input(title="Start Date", type=input.integer,
     defval=1, minval=1, maxval=231)
startMonth = input(title="Start Month", type=input.integer,
     defval=1, minval=1, maxval=12) 
startYear = input(title="Start Year", type=input.integer,
     defval=2020, minval=1800, maxval=2100)

// STEP 2:
// See if this bar's time happened on/after start date
afterStartDate = (time >= timestamp(syminfo.timezone,
     startYear, startMonth, startDate, 0, 0))

fast = input(25, title="Fast")
slow = input(75, title="Slow")

matype1=ema(source, fast)
matype2=ema(source, slow)


signalcolor = source > matype2 ? color.blue : color.red
signal = cross(fast, slow) 



hizliema=plot(hidema ? na : matype1, color=color.green, linewidth=2,transp=0, title="Fast EMA")
yavasema=plot(hidema ? na : matype2, color=color.red, linewidth=2,transp=0, title="Slow EMA")
//kesisme=plot(signal, style=cross, color=signalcolor, linewidth=5, title="Kesişme")
 

longCondition = crossover(matype1, matype2)
if (afterStartDate and longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = crossunder(matype1, matype2)
if (afterStartDate and shortCondition)
    strategy.entry("Short", strategy.short)
    

//--------------------------------------------------------

//volume based color bars
length=input(21, "length", minval=1)
avrg=sma(volume,length)

vold1 = volume > avrg*1.5 and close<open
vold2 = volume >= avrg*0.5 and volume<=avrg*1.5 and close<open
vold3 = volume < avrg *0.5 and close<open

volu1 = volume > avrg*1.5 and close>open
volu2 = volume >= avrg*0.5 and volume<=avrg*1.5 and close>open
volu3 = volume< avrg*0.5 and close>open

cold1=#800000
cold2=#FF0000
cold3=color.orange

colu1=#006400
colu2=color.lime
colu3=#7FFFD4

ac = vold1 ? cold1 : vold2 ? cold2 : vold3 ? cold3 : volu1 ? colu1 : volu2 ? colu2 : volu3 ? colu3 : na

barcolor(ac)