Краткосрочная стратегия нисходящего тренда, основанная на EMA и адаптивном ретрасценте Фибоначчи

Автор:Чао Чжан, Дата: 2021-09-21 21:36:16
Тэги:

Обзор

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

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

  1. Для определения направления тренда используйте 9-дневную EMA и 21-дневную EMA. 21-дневная EMA, пересекающая 55-дневную EMA, сигнализирует о начале нисходящего тренда.

  2. Внедрить адаптивное ретрацирование Фибоначчи со 100 периодами для автоматического определения ключевых уровней ретрацирования на основе недавних колебаний цен.

  3. Прорыв цены на 0,236 Фибоначчи указывает на перелом и закрывает существующую позицию.

  4. Когда 9-дневная EMA пересекается ниже 21-дневной EMA, и цена ниже адаптивного максимума Фибоначчи, перейдите на короткий.

  5. Цель длинной прибыли - пересечение выше 200-дневной ЕМА.

Преимущества

  • EMA дает четкие сигналы о тенденциях, которые легко реализовать

  • Адаптивный Фибоначчи избегает ручной настройки параметров

  • Частая торговля ловит краткосрочные движения для высокочастотных стратегий

  • Ключевые уровни ретрекчеринга для своевременного стоп-лосса

  • Конфигурируемые параметры для оптимизации в разных циклах

Риски

  • Отставание по ЕМА требует подтверждения с помощью других показателей

  • Риски адаптивного Фибоначчи при переподходе к нестабильным уровням

  • Высокочастотная торговля увеличивает затраты на комиссионные и сдвиги

  • Неэффективная фильтрация тенденций, связанных с диапазоном, приводит к ложным сигналам

  • Необходимо улучшить управление использованием средств и контроль риска и вознаграждения

Улучшение

  • Добавление показателей объема для предотвращения ложных сигналов от расхождения цены и объема

  • Оптимизировать периоды EMA для лучшего соответствия текущим рыночным условиям

  • Внедрение динамического стоп-лосса для улучшения контроля рисков

  • Включите индекс силы тренда, чтобы избежать сбоев

  • Рассмотреть влияние затрат на торговлю и установить минимальную цель прибыли

Заключение

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


/*backtest
start: 2023-08-21 00:00:00
end: 2023-09-20 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/
// © CheatCode1

//@version=5
strategy("CC-Trend strategy 2", overlay=true, initial_capital = 10000, commission_type = strategy.commission.percent, commission_value = 0.01, default_qty_type =  strategy.percent_of_equity, default_qty_value = 100 )
ema9 = ta.ema(close, 9)
ema21 = ta.ema(close, 21)
ema55 = ta.ema(close, 55)
ema200 = ta.ema(close, 200)


plot(ema200, '22', color.blue, 2)

FibL = input.int(100, 'Fibonacci Length', 1, 500, group = 'Automatic Fibonacci Retracement')
len1 = input.int(1, 'Show Last', 0, 1000, group = 'Automatic Fibonacci Retracement')
len2 = input.int(5, 'Offset Length', 0, 1000, group = 'Automatic Fibonacci Retracement')

highF = ta.highest(ema55 >= ema9 ? ema55:ema9, FibL)
lowF = ta.lowest(ema55 >= ema9 ? ema9:ema55, FibL)
AvgFib = highF - lowF

//Fibonacci Executions
LL2 = highF + .618 * AvgFib
LL1 = highF + .272 * AvgFib
L1 = highF
L236 = highF - 0.236 * AvgFib
L382 = highF - 0.382 * AvgFib
Mid =  highF - 0.50 * AvgFib
S382 = lowF + 0.382 * AvgFib
S236 = lowF + 0.236 * AvgFib
S1 = lowF
SS1 = lowF - .272 * AvgFib
SS2 = lowF - .618 * AvgFib
//Fibonacci Plot's


high2FP = plot(LL2, 'Highe2', color.red,offset = len2, show_last = len1, trackprice = true)
high1FP = plot(LL1, 'Highe1', color.red,offset = len2, show_last = len1, trackprice = true)
highFP = plot(highF, 'High', color.red,offset = len2, show_last = len1, trackprice = true)
L236P = plot(L236, "0.764", #ED381C, offset = len2, show_last = len1, trackprice = true )
L382P = plot(L382, "0.618", color.white,offset = len2, show_last = len1, trackprice = true )
MidP = plot(Mid, "0.5", color.orange,offset = len2, show_last = len1, trackprice = true )
S382P = plot(S382, "0.382", color.yellow ,offset = len2, show_last = len1, trackprice = true)
S236P = plot(S236, "0.236", color.lime ,offset = len2, show_last = len1, trackprice = true)
lowFP = plot(lowF, 'Low', color.green,offset = len2, show_last = len1, trackprice = true)
low1FP = plot(SS1, 'Lowe1', color.green,offset = len2, show_last = len1, trackprice = true)
low2FP = plot(SS2, 'Lowe2', color.green,offset = len2, show_last = len1, trackprice = true)

plot(ema9, '22', color.yellow, 2)

plot(ema55, '55', color.aqua, 2)

plot(ema200, '200', color.maroon, 2)



shortCondition = close[1] < highF and ema21 < ema55
if (shortCondition)
    strategy.entry("Short", strategy.short)

shorttp = ta.crossover(close, ema200) and strategy.openprofit >= 0
if (shorttp)
    strategy.close('Short', 'Short TP', qty_percent = 100)

shortclose2 = close[1] > L236 and not (shortCondition) 
if(shortclose2)
    strategy.close('Short', 'Short RM', qty_percent = 100)

Больше