Прорывная стратегия обратной торговли

Автор:Чао Чжан, Дата: 2024-02-28 18:01:56
Тэги:

img

Обзор

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

Принцип стратегии

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

В частности, основная восходящая тенденция сорта требует, чтобы 9-дневная EMA была выше 21-дневной EMA, а 21-дневная EMA - выше 50-дневной EMA. Критериями для оценки краткосрочных корректировок являются то, что разница индекса абсолютной силы меньше 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) 


Больше