Торговая стратегия, основанная на прорыве отката


Дата создания: 2024-02-28 18:01:56 Последнее изменение: 2024-02-28 18:01:56
Копировать: 0 Количество просмотров: 585
1
Подписаться
1617
Подписчики

Торговая стратегия, основанная на прорыве отката

Обзор

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

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

Эта стратегия основана на показателях абсолютной силы цены и MACD, чтобы достичь срыва в реверсивной торговле. Сначала рассчитывается 9-циклическая, 21-циклическая и 50-циклическая EMA цены, чтобы определить направление большой тенденции; затем рассчитывается показатель абсолютной силы цены, отражающий силу краткосрочной корректировки; и, наконец, MACD, чтобы определить направление краткосрочной тенденции.

В частности, для рода большого тренда для повышения необходимо удовлетворить 9-ю ЭМА выше 21-й ЭМА, 21-ю ЭМА выше 50-й ЭМА. Критерий краткосрочной корректировки является абсолютная разница в показателе силы ниже 0, MACDDIFF меньше 0. Для рода большого тренда для снижения необходимо удовлетворить 9-ю ЭМА ниже 21-й ЭМА, 21-я ЭМА ниже 50-й ЭМА. Критерий краткосрочного отскока - абсолютная разница в показателе силы выше 0, MACDDIFF выше 0.

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

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

  1. Вместе с крупными тенденциями и краткосрочными корректировками, избегайте ложных прорывов
  2. Использование нескольких комбинаций показателей, высокая надежность
  3. Показатель абсолютной интенсивности отражает нагрузку на регулировку и определяет качество регулировки
  4. MACD определяет краткосрочные тенденции и зоны перекупа и перепродажи

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

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

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

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

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

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

  1. Проверка большего количества комбинаций индикаторов для поиска более подходящих торговых стратегий
  2. Оптимизация параметров показателя, повышение чувствительности показателя
  3. Корректировка метода остановки для снижения максимального размера убытков
  4. Увеличение условий фильтрации, сигнализация в более эффективных зонах
  5. Повышенная точность суждения в сочетании с более широким спектром показателей временных циклов

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

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

Исходный код стратегии
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5 
strategy("Divergence Scalper [30MIN]", overlay=true , commission_value=0.04 ) 
message_long_entry = input("long entry message") 
message_long_exit = input("long exit message") 
message_short_entry = input("short entry message") 
message_short_exit = input("short exit message") 
//3x ema 
out9 = ta.ema(close,9) 
out21 = ta.ema(close,21) 
out50 = ta.ema(close,50) 
//abs 
absolute_str_formula( ) => 
    top=0.0 
    bottom=0.0 
    if(close>close[1]) 
        top:= nz(top[1])+(close/close[1]) 
    else 
        top:=nz(top[1]) 
    if(close<=close[1]) 
        bottom:= nz(bottom[1])+(close[1]/close) 
    else 
        bottom:=nz(bottom[1]) 
    if (top+bottom/2>=0) 
        1-1/(1+(top/2)/(bottom/2)) 
abs_partial=absolute_str_formula() 
abs_final = abs_partial - ta.sma(abs_partial,50) 
//macd 
fast_length = input(title="Fast Length", defval=23) 
slow_length = input(title="Slow Length", defval=11) 
src = input(title="Source", defval=open) 
signal_length = input.int(title="Signal Smoothing", minval = 1, maxval = 50, defval = 6) 
sma_source = input.string(title="Oscillator MA Type", defval="EMA", options=["SMA", "EMA"]) 
sma_signal = input.string(title="Signal Line MA Type", defval="SMA", options=["SMA", "EMA"]) 
// Calculating 
fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length) 
slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length) 
macd = fast_ma - slow_ma 
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length) 
hist = macd - signal 
long= abs_final > 0 and hist <0 and out9<out21 and out21<out50 
short = abs_final <0 and hist >0 and out9>out21 and out21>out50 
long_exit = abs_final <0 and hist >0 and out9>out21 and out21>out50 
short_exit = abs_final > 0 and hist <0 and out9<out21 and out21<out50 
strategy.entry("long", strategy.long, when = long and barstate.isconfirmed, alert_message = message_long_entry) 
strategy.entry("short", strategy.short, when = short and barstate.isconfirmed, alert_message = message_short_entry) 
strategy.close("long", when = long_exit and barstate.isconfirmed, alert_message = message_long_exit) 
strategy.close("short", when = short_exit and barstate.isconfirmed, alert_message = message_short_exit)