Стратегия смены импульса на основе нескольких временных рамок

Автор:Чао Чжан, Дата: 2024-02-27 14:27:49
Тэги:

img

Обзор

Эта стратегия определяет торговые возможности путем вычисления соотношения тела свечи/пояса и сочетания индикаторов RSI для обнаружения условий рынка с перекупкой/перепроданностью.

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

Основная логика этой стратегии основана на следующем:

  1. Вычислить процент тела / фитиля свечей: вычислив открытые, закрытые, высокие и низкие цены, получите процент, занимаемый телом свечи и фитилями.

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

  3. Комбинируйте с RSI, чтобы определить условия перекупки/перепродажи: Установите пороговые линии перекупки и перепродажи для RSI. RSI выше линии перекупки означает состояние перекупки и наоборот для перепродажи. Сильные свечи в таких состояниях имеют высокую вероятность переворота.

  4. Определить сигналы обратного движения: когда процент фитиля < 20% и сила свечи > 2 x средняя сила, вместе с предыдущим закрытием свечи выше, чем нынешнее закрытие свечи, это сигнализирует о коротком состоянии.

  5. Определите стоп-лосс и прибыль: Установите фиксированные процентные уровни стоп-лосса и прибыли для длинных и коротких сделок.

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

Преимущества этой стратегии включают:

  1. Эффективное определение тренда и перелома с использованием пропорций тела свечи / вика.

  2. Более высокая точность сигналов обратного движения путем сочетания изменения силы свечи и RSI. RSI регулируется, обеспечивая большую возможность оптимизации.

  3. Разумная конфигурация стоп-лосса/приобретения прибыли для использования краткосрочных возможностей при одновременном снижении риска торговли.

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

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

Некоторые риски, связанные со стратегией:

  1. Потенциальные ложные сигналы во время сильного прорыва тренда могут быть уменьшены путем оптимизации периодов сравнения свечей и параметров RSI.

  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("mecha larga study",overlay = true,  max_bars_back = 600)
//Porcentaje Mecha cuerpo
bodyPercent = math.abs(open - close) / (high - low) * 100
wickPercent = 100 - bodyPercent

plot(bodyPercent, "Porcentaje del cuerpo", color.rgb(163, 76, 175))
plot(wickPercent, "Porcentaje de la mecha", color.red)

VelaDeFuerza =  math.abs(((high[0] - low[0])*100)/high)//PORCENTAJE DE VARIACION DE UNA VELA
plot(VelaDeFuerza, color = color.purple)

Promedio = ((VelaDeFuerza[0] + VelaDeFuerza[1] + VelaDeFuerza[2] + VelaDeFuerza[3] + VelaDeFuerza[4]  + VelaDeFuerza[5] + VelaDeFuerza[6] + VelaDeFuerza[7] + VelaDeFuerza[8] + VelaDeFuerza[9] + VelaDeFuerza[10] + VelaDeFuerza[11] + VelaDeFuerza[12] + VelaDeFuerza[13]  + VelaDeFuerza[14] ) / 15)
plot(Promedio, color = color.yellow)


// rsi 
per_Rsi = input.int(14, "Periodo RSI",minval= 11, maxval=20) //inicializo el rsi en 14 periodos pero doy la posibilidad al usuario de cambiarlo
rsi_Sc = input.int(75,"Sobre Compra",minval=68,maxval=80) //ENTRADA DE SOBRE COMPRA DE RSI
rsi_Sv = input.int(25,"Sobre Venta",minval=20,maxval=33) //ENTRADA DE SOBRE VENTA DE RSI
rsi= ta.rsi(close,per_Rsi)//guardo el rsi con los paramentros anteriores en una variable

//logica
MayorPromedio =   Promedio + 0.800
plot(MayorPromedio, color = color.green)

Venta =   bodyPercent > 80   and VelaDeFuerza > Promedio * 2  and close < close[1]
Compra =   bodyPercent > 80  and VelaDeFuerza > Promedio * 2 and close > close[1]


precioVenta = Venta? close : na
precioCompra = Compra? close : na

tp1 = 0.00
sl  = 0.00
tp1 := 0.003
sl := 0.010

TP1short = precioVenta - (precioVenta * tp1)
Slshort = precioVenta + (precioVenta * sl)

TP1long = precioCompra + (precioCompra * tp1)
SLlong = precioCompra - (precioCompra * sl)


name1 = "tp1"
name2 = "tp2"
name3= "SL"




if ( precioVenta ) 
    strategy.entry("short", strategy.short , comment = "Sell  SL: " + str.tostring(Slshort, "0.000")  + " TP1: " + str.tostring(TP1short,"0.000") ) 
    strategy.exit("exit" , "short", stop = Slshort , limit = TP1short ,qty_percent = 100 )  
if ( precioCompra ) 
    strategy.entry("long", strategy.long , comment = "Buy   SL: " + str.tostring(SLlong, "0.000")  + " TP1: " + str.tostring(TP1long,"0.000") )
    strategy.exit("exit" , "long", stop = SLlong  , limit = TP1long ,qty_percent = 100 )

Больше