Estratégia de hedge de alta frequência baseada na cor da coluna MACD e regressão linear


Data de criação: 2023-10-27 10:42:54 última modificação: 2023-10-27 10:42:54
cópia: 0 Cliques: 871
1
focar em
1617
Seguidores

Estratégia de hedge de alta frequência baseada na cor da coluna MACD e regressão linear

Visão geral

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.

Princípio da estratégia

A estratégia é composta por:

  1. 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.

  2. 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.

  3. 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.

  4. 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.

Análise de vantagens

  1. Use as cores dos pilares MACD para avaliar a tendência e evitar negociações adversas.

  2. A regressão linear é suave e pode filtrar parte do ruído.

  3. Os canais formados pela EMA definem claramente a direção do espaço-tempo.

  4. A linha de parada é racional e garante o máximo de lucro.

  5. Alta frequência de negociação, adequada para estratégias de alta frequência de negociação por meio de procedimentos.

  6. A realização de operações de hedging pode ser lucrativa em situações de turbulência.

Análise de Riscos

  1. A regressão linear e os indicadores de canal precisam de uma certa otimização de parâmetros, caso contrário, podem falhar.

  2. 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.

  3. O número de transações é alto, portanto, é necessário ter em conta o impacto das taxas.

  4. O MACD tem um certo atraso e pode perder a reversão de tendência de curto prazo.

  5. O canal EMA também precisa ser constantemente otimizado para se adaptar às mudanças no mercado.

Direção de otimização

  1. Ajustar a regressão linear e os parâmetros de passagem para que os indicadores sejam mais adequados às características de diferentes variedades.

  2. A largura de suspensão deve ser reduzida, garantindo que a proporção de suspensão seja maior que 1.

  3. Optimizar os parâmetros MACD para que ele possa capturar mais sinais de curto prazo.

  4. Tente outros indicadores de regressão linear alternativa, como a linha de Bryn.

  5. Aumentar o controle de posições para evitar perdas unilaterais.

  6. Os indicadores RSI e outros filtram parte dos sinais de negociação.

Resumir

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.

Código-fonte da estratégia
/*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)