La estrategia de negociación de sombras identifica la línea K con sombras bajas o altas largas para determinar oportunidades potenciales de inversión del mercado.
La lógica central de la estrategia de negociación de sombras es identificar sombras largas superiores e inferiores en las líneas K. La estrategia calcula el tamaño del cuerpo de la línea K.corpo
y las sombras,pinnaL
ypinnaS
Cuando el tamaño de la sombra es mayor que el tamaño del cuerpo por un cierto multiplicador, considera que puede haber oportunidades de reversión.
corpo
, que es el valor absoluto de la diferencia entre el precio de apertura y el precio de cierre.pinnaL
, que es el valor absoluto de la diferencia entre el precio más alto y el precio de cierre.pinnaS
, que es el valor absoluto de la diferencia entre el precio más bajo y el precio de cierre.pinnaL > (corpo*size)
, dondesize
es un parámetro ajustable.pinnaS > (corpo*size)
.Además, la estrategia también comprueba si el intervalo de la línea Kdim
es superior al valor mínimomin
para filtrar las líneas K triviales con un rango insignificante.
La estrategia de negociación en sombra es una estrategia de negociación simple y práctica a corto plazo. Genera señales de negociación utilizando el principio general de la inversión de sombras. La lógica de la estrategia es simple y fácil de implementar, y se puede ajustar y optimizar de acuerdo con las diferencias de producto. Al mismo tiempo, el comercio en sombra también conlleva ciertos riesgos.
/*backtest start: 2023-10-01 00:00:00 end: 2023-10-11 23:59:59 period: 10m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("Shadow Trading", overlay=true) size = input(1,type=float) pinnaL = abs(high - close) pinnaS = abs(low-close) scarto = input(title="Tail Tollerance", type=float, defval=0.0018) corpo = abs(close - open) dim = abs(high-low) min = input(0.001) shortE = (open + dim) longE = (open - dim) barcolor(dim > min and (close > open) and (pinnaL > (corpo*size)) and (open-low<scarto) ? navy : na) longcond = (dim > min) and (close > open) and (pinnaL > (corpo*size)) and (open-low<scarto) minimo=low+scarto massimo=high+scarto barcolor( dim > min and(close < open) and (pinnaS > (corpo*size)) and (high-open<scarto) ? orange: na) shortcond = (dim > min) and(close < open) and (pinnaS > (corpo*size)) and (high-open<scarto) //plot(shortE) //plot(longE) //plot(open) ss= shortcond ? close : na ll=longcond ? close : na offset= input(0.00000) DayClose = 2 closup = barssince(change(strategy.opentrades)>0) >= DayClose longCondition = (close > open) and (pinnaL > (corpo*size)) and (open-low<scarto) crossFlag = longcond ? 1 : 0 monthBegin = input(1,maxval = 12) yearBegin = input(2013, maxval= 2015, minval=2000) if(month(time)>monthBegin and year(time) >yearBegin) if (longcond) strategy.entry("short", strategy.short, stop = low - offset) //strategy.close("short", when = closup) shortCondition = (close < open) and (pinnaS > (corpo*size)) and (high-open<scarto) if(month(time)>monthBegin and year(time) >yearBegin) if (shortcond) strategy.entry("long", strategy.long, stop = high + offset) //strategy.close("long", when = closup) Target = input(20) Stop = input(70) //- 2 Trailing = input(0) CQ = 100 TPP = (Target > 0) ? Target*10: na SLP = (Stop > 0) ? Stop*10 : na TSP = (Trailing > 0) ? Trailing : na strategy.exit("Close Long", "long", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP) strategy.exit("Close Short", "short", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP)