
Esta estrategia combina los indicadores de columnas MACD y de regresión lineal para lograr una combinación ingeniosa de inversiones de alta frecuencia, especialmente adecuada para el arbitraje y la cobertura de corta línea, que pertenece a la típica estrategia de mercado neutral.
La estrategia se compone principalmente de las siguientes partes:
El color de la columna MACD como indicador de tendencia. Cuando el color de la columna MACD es verde, indica que está en una tendencia alcista, y no hace compras en blanco; cuando el color de la columna MACD es rojo, indica que está en una tendencia bajista, y no hace compras en blanco.
Regresión lineal como indicador clave de señales de negociación. Hacer más cuando el precio regresa linealmente desde abajo; hacer menos cuando el precio regresa linealmente desde arriba hacia abajo.
El canal PAC está formado por EMAs de precios altos, bajos y cerrados para determinar la dirección de la regresión lineal. La señal de negociación se genera solo cuando la dirección de la regresión lineal coincide con la tendencia dentro del canal.
EMA 89 como línea de stop loss, cuando el precio vuelve a cruzar la línea, se detiene la pérdida de la posición.
La lógica de generación de la señal de negociación es:
Señales múltiples: regresión lineal hacia arriba a través de la vía PAC hacia abajo y regresión lineal hacia arriba y el color de la columna MACD no es rojo Señales de cabeza hueca: regresión lineal hacia abajo a través de la vía PAC en la vía ascendente y regresión lineal hacia abajo en la vía descendente y el color del MACD no es verde
Separado de pérdidas: el precio baja a EMA 89
La estrategia combina el conocimiento de tendencias y los niveles de precios clave para lograr operaciones de cobertura de alta frecuencia.
Utilice el color de la columna MACD para determinar las grandes tendencias y evitar el comercio en contra.
La regresión lineal es suave y puede filtrar parte del ruido.
El canal formado por la EMA define claramente la dirección de la pluralidad de espacios.
El límite de pérdidas se establece de manera razonable y garantiza el máximo beneficio.
La alta frecuencia de las transacciones es adecuada para las estrategias de alta frecuencia de las transacciones programadas.
La realización de operaciones de cobertura puede ser rentable en situaciones de crisis.
Tanto la regresión lineal como los indicadores de canal requieren cierta optimización de parámetros, de lo contrario pueden fallar.
La suspensión de pérdidas en situaciones de gran movimiento se puede activar con mayor frecuencia. Se puede relajar el alcance de la suspensión de pérdidas de manera adecuada.
El mayor número de transacciones implica que se tenga en cuenta el efecto de las comisiones.
El indicador MACD tiene cierta retraso y puede perder la reversión de la tendencia a corto plazo.
El canal EMA también necesita ser optimizado para adaptarse a los cambios en el mercado.
Ajustar la regresión lineal y los parámetros de la vía para que los indicadores se ajusten mejor a las características de las diferentes variedades.
Permitir el stop-loss amplitud y asegurarse de que el stop-loss ratio es mayor que 1.
Optimizar los parámetros MACD para que puedan capturar más señales de corto plazo.
Prueba con otros indicadores de regresión lineal alternativos, como la línea de Bryn.
Aumentar el control de las posiciones para evitar pérdidas unilaterales excesivas.
La combinación de indicadores como el RSI filtra parte de las señales de negociación.
Esta estrategia utiliza una combinación de indicadores técnicos para lograr operaciones de cobertura de alta frecuencia. Su ventaja es que capta la inversión a corto plazo, el control de riesgos es razonable y es muy adecuado para los períodos de agitación del mercado.
/*backtest
start: 2022-10-20 00:00:00
end: 2023-10-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
// strategy("Sonic R + Linear Reg + Kumo Cloud + Barcolor MACD", overlay=true,default_qty_value=10000,initial_capital=200,currency=currency.USD, pyramiding=1)
EMA = input(defval=89, title="EMA Signal")
HiLoLen = input(34, minval=2,title="High Low channel Length")
pacC = ema(close,HiLoLen)
pacL = ema(low,HiLoLen)
pacH = ema(high,HiLoLen)
DODGERBLUE = #1E90FFFF
// Plot the Price Action Channel (PAC) base on EMA high,low and close//
L=plot(pacL, color=DODGERBLUE, linewidth=1, title="High PAC EMA",transp=90)
H=plot(pacH, color=DODGERBLUE, linewidth=1, title="Low PAC EMA",transp=90)
C=plot(pacC, color=DODGERBLUE, linewidth=2, title="Close PAC EMA",transp=80)
//Moving Average//
signalMA =ema(close,EMA)
plot(signalMA,title="EMA Signal",color=black,linewidth=3,style=line)
linereg = linreg(close, EMA, 0)
plot(linereg, color = orange, title = "Linear Regression Curve", style = line, linewidth = 1)
//////ICHIMOKU/////////
conversionPeriods = input(9),
basePeriods = input(26, minval=1, title="Base Line")
laggingSpan2Periods = input(52, minval=1, title="Lagging Span"),
displacement = input(26, minval=1)
donchian(len) => avg(lowest(len), highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods-1)
p1 = plot(leadLine1, offset = displacement-1, color=gray,title="Senkou span A", transp=90)
p2 = plot(leadLine2, offset = displacement-1, color=gray, title="Senkou span B", transp=90)
fill(p1, p2, color = leadLine1 > leadLine2 ? green : red, title="Kumo Cloud")
///////////////// MACD BARCOLOR /////////////////////
fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)
MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD
hisup= iff(delta>delta[1] and delta>0, 1,
iff(delta<delta[1], -1, nz(hisup[1], 0)))
hisdown = iff(delta<delta[1] and delta<0, 1,
iff(delta>delta[1], -1, nz(hisdown[1], 0)))
barcolor(hisup==1 and MACD>0 ? lime: hisdown==1 and MACD<0 ? red : blue )
///////////// SIGNAL ///////////////
conbuy = iff(crossover(linereg,pacL) and rising(linereg,5), 1,
iff(crossover(linereg,pacH) or (crossunder(linereg,pacL) and pacL<signalMA), -1, nz(conbuy[1], 0)))
consell = iff(crossunder(linereg,pacH) and falling(linereg,5), 1,
iff(crossunder(linereg,pacL) or (crossover(linereg,pacH) and pacH>signalMA), -1, nz(consell[1], 0)))
golong= conbuy==1 and close>open and open<pacH and close>linereg and hisdown!=1
goshort= consell==1 and close<open and open>pacL and close<linereg and hisup!=1
if(golong)
strategy.entry("Buy",strategy.long)
if(goshort)
strategy.entry("Sell",strategy.short)
closelong= conbuy==-1
closeshort=consell==-1
if(closelong)
strategy.close("Buy")
if(closeshort)
strategy.close("Sell")
////////////// TP and SL//.
//SL = input(defval=200.00, title="Stop Loss Point", type=float, step=1)
//rr= input(defval=0.1,title="Reward/Risk",type=float)
//useTPandSL = input(defval = false, title = "Use exit order strategy?")
//Stop = SL
//Take=SL*rr
//Q = 100
//if(useTPandSL)
// strategy.exit("Out Long", "Buy", qty_percent=Q, profit= Take, loss=Stop)
// strategy.exit("Out Short", "Sell", qty_percent=Q, profit= Take, loss=Stop)