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


Дата создания: 2023-09-21 21:36:16 Последнее изменение: 2023-09-21 21:36:16
Копировать: 0 Количество просмотров: 522
1
Подписаться
1166
Подписчики

Обзор

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

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

  1. Используйте 9-дневную ЭМА и 21-дневную ЭМА, чтобы сформировать золотую спираль, чтобы определить направление тренда. 21-дневная ЭМА вниз, а 55-дневная ЭМА рассматривается как сигнал для начала нисходящего тренда.

  2. Настройка адаптивного фибоначевого отступления с длиной 100 циклов, автоматически определяющая ключевые отступления в зависимости от масштаба последних ценовых колебаний.

  3. Когда цена пробивает отступление от фибонача 0,236, считается обратным сигналом, и позиция уступает позиции.

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

  5. Условия выхода с многообещающей выигрышной позицией превышают 200-дневную ЭМА. Условия выхода с беспошлинной стоп-убытком превышают 0.236 Фибоначского отступления.

Стратегические преимущества

  • Используйте EMA, чтобы определить направление тренда, чтобы операционные сигналы были простыми и понятными

  • Применение Fibonacci retracement без необходимости определения параметров вручную

  • Частые действия стратегии, чтобы улавливать изменения в короткой линии и реализовывать высокочастотные стратегии

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

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

Стратегический риск

  • Задержка 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)