
Esta estratégia combina o MACD Colors com o Linear Regression Indicator para uma combinação engenhosa de reversão de alta frequência, especialmente para arbitragem e cobertura de curta linha, e é uma estratégia típica de neutralidade de mercado.
A estratégia é composta por:
A coluna MACD é usada como um indicador de tendência. Quando a coluna MACD é de cor verde, indica que está em uma tendência ascendente, e não faz uma folha vazia; Quando a coluna MACD é de cor vermelha, indica que está em uma tendência descendente, e não faz mais folhas.
Regressão linear como um indicador de sinal de negociação chave. Quando o preço retorna linearmente de baixo para cima, faça mais; quando o preço retorna linearmente de cima para baixo, faça menos.
O canal PAC é formado por EMAs de alta, baixa e fechamento, que são usados para determinar a direção da regressão linear. O sinal de negociação é gerado somente quando a direção da regressão linear corresponde à tendência no canal.
EMA 89 como linha de stop loss, quando o preço retrocede através da linha, a parada de liquidação.
A lógica de geração do sinal de transação é:
Sinais de múltiplas cabeças: regressão linear ascendente atravessando o canal PAC descendente e regressão linear ascendente e a cor da coluna MACD não é vermelha Sinal de cabeça vazia: regressão linear para baixo atravessando o canal PAC para cima e tendência de regressão linear para baixo e coluna do MACD não verde
Paragem de perda de saída: preço abaixo do EMA 89
A estratégia combina o discernimento de tendências e níveis críticos de preços, permitindo a realização de operações de cobertura de alta frequência.
Use as cores dos pilares MACD para avaliar a tendência e evitar negociações adversas.
A regressão linear é suave e pode filtrar parte do ruído.
Os canais formados pela EMA definem claramente a direção do espaço-tempo.
A linha de parada é racional e garante o máximo de lucro.
Alta frequência de negociação, adequada para estratégias de alta frequência de negociação por meio de procedimentos.
A realização de operações de hedging pode ser lucrativa em situações de turbulência.
A regressão linear e os indicadores de canal precisam de uma certa otimização de parâmetros, caso contrário, podem falhar.
A suspensão de perdas em situações de grandes tremores pode ser acionada com mais frequência. A suspensão de perdas pode ser liberada adequadamente.
O número de transações é alto, portanto, é necessário ter em conta o impacto das taxas.
O MACD tem um certo atraso e pode perder a reversão de tendência de curto prazo.
O canal EMA também precisa ser constantemente otimizado para se adaptar às mudanças no mercado.
Ajustar a regressão linear e os parâmetros de passagem para que os indicadores sejam mais adequados às características de diferentes variedades.
A largura de suspensão deve ser reduzida, garantindo que a proporção de suspensão seja maior que 1.
Optimizar os parâmetros MACD para que ele possa capturar mais sinais de curto prazo.
Tente outros indicadores de regressão linear alternativa, como a linha de Bryn.
Aumentar o controle de posições para evitar perdas unilaterais.
Os indicadores RSI e outros filtram parte dos sinais de negociação.
Esta estratégia utiliza vários indicadores técnicos para realizar operações de cobertura de alta frequência. Sua vantagem é capturar a reversão de curto prazo, o controle de risco é razoável e é muito adequado para os períodos de turbulência no 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)