Estratégia de acompanhamento de tendência de rompimento de triângulo


Data de criação: 2023-09-20 14:24:16 última modificação: 2023-09-20 14:24:16
cópia: 0 Cliques: 623
1
focar em
1617
Seguidores

Visão geral

Esta estratégia pertence à estratégia de acompanhamento de tendências. Faça mais quando o preço quebra o triângulo ascendente e feche quando o EMA rápido atravessa o EMA intermediário. Ao mesmo tempo, configure um stop loss e um stop loss para controlar o risco.

Princípio da estratégia

  1. Use a EMA rápida e a EMA intermédia para determinar a direção da tendência. A EMA rápida é usada como um sinal de pessimismo sobre a EMA intermédia.

  2. Utilize o valor máximo e mínimo da linha K da raiz N mais próxima para determinar se um triângulo ascendente foi formado. O triângulo formado é um sinal múltiplo.

  3. Após a entrada no mercado, quando a EMA rápida atravessa a EMA intermédia, a tendência é considerada invertida e um sinal de equilíbrio é emitido.

  4. O ponto de parada é definido como um percentual abaixo do preço de entrada e o ponto de parada é definido como um percentual abaixo da saída.

  5. O ponto de parada deve ser um percentual acima do preço de entrada, e o ponto de parada deve ser um percentual acima da saída.

  6. O EMA de 200 dias é usado para determinar a direção da tendência geral, mas só quando a tendência é para cima.

Análise de vantagens

  1. O uso de filtros de forma triangular aumenta a precisão de entrada.

  2. A EMA rápida e a EMA intermédia dividem razoavelmente as tendências e oscilações, evitando ser encaixada.

  3. A configuração do Stop Loss e do Stop Stop é razoável para controlar a perda individual.

  4. A operação só pode ser executada quando a tendência é para cima, evitando a fase de correção.

Análise de Riscos

  1. A área do triângulo é pequena demais para perder a tendência, e grande demais para aumentar a transação sem sentido.

  2. Perder muito perto do ponto de parada é fácil de ser atingido, e muito longe é difícil de controlar os prejuízos. É necessário avaliar o papel dos parâmetros e otimizá-los.

  3. A configuração inadequada de algumas barreiras pode levar a um excesso de lucro. É necessário avaliar a proporção razoável.

  4. Os parâmetros indevidos dos indicadores de tendências podem levar a posições erradas. É necessário otimizar o retorno de várias variedades.

Direção de otimização

  1. Otimizar o triângulo para determinar os parâmetros N e encontrar o valor ideal.

  2. Testar diferentes combinações de períodos de EMA para melhorar a precisão do julgamento de tendências.

  3. Parâmetros de estenose de parada de danos são otimizados de acordo com as características de diferentes variedades.

  4. A adição de outros indicadores de julgamento, como a forma MACD, a ruptura da faixa de Brin, etc., aumenta a qualidade do sinal.

  5. Adicionar mecanismos de reabertura para prolongar o tempo de lucro se a tendência continuar.

Resumir

A estratégia em geral é mais robusta, com o triângulo de determinação para filtrar a falsa ruptura. O espaço para otimização de parâmetros é maior e espera-se melhores resultados. Além disso, pode-se tentar adicionar mais indicadores de julgamento auxiliares ou melhorar a estratégia de stop loss para aumentar ainda mais a eficácia da estratégia.

Código-fonte da estratégia
/*backtest
start: 2023-08-20 00:00:00
end: 2023-09-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mohanee

//@version=4

strategy(title="TrianglePoint strategy", overlay=true,pyramiding=2, default_qty_value=3, default_qty_type=strategy.fixed,    initial_capital=10000, currency=currency.USD)
// variables  BEGIN

numPeriods=input(9,title="Number of Bars")
fastEMA = input(13, title="fast EMA", minval=1)
slowEMA = input(65, title="slow EMA", minval=1)

stopLoss = input(title="Stop Loss%", defval=5, minval=1)


HH = highest(close[1],numPeriods)
LL = lowest(close[1],numPeriods)
tringlePoint =  low > LL and high < HH

fastEMAval= ema(close, fastEMA)
slowEMAval= ema(close, slowEMA)
two100EMAval= ema(close, 200)

//plot emas
plot(fastEMAval, color = color.green, linewidth = 1, transp=0)
plot(slowEMAval, color = color.orange, linewidth = 1, transp=0)
plot(two100EMAval, color = color.purple, linewidth = 2, transp=0)

longCondition=fastEMAval>two100EMAval and tringlePoint

//plotshape(triP,style=shape.triangleup,text="Buy",color=color.green,location=location.belowbar)
//plotshape(longCondition,style=shape.triangleup,text="Buy",color=color.green,location=location.belowbar)

//Entry
strategy.entry(id="TBT LE", comment="TBT LE" , long=true,  when= longCondition and strategy.position_size<1)   

//Add
strategy.entry(id="TBT LE", comment="Add" , long=true,  when= longCondition and strategy.position_size>=1 and close<strategy.position_avg_price)   


//barcolor(strategy.position_size>=1 ? color.blue : na)

//Take profit
takeProfitVal=   strategy.position_size>=1 ?  (strategy.position_avg_price * (1+(stopLoss*0.01) )) : 0.00
//strategy.close(id="TBT LE", comment="Profit Exit",  qty=strategy.position_size/2,  when=close>=takeProfitVal and close<open and close<fastEMAval)   //crossunder(close,fastEMAval)
barcolor(strategy.position_size>=1  ? (close>takeProfitVal? color.purple : color.blue): na)

//Exit
strategy.close(id="TBT LE", comment="TBT Exit",   when=crossunder(fastEMAval,slowEMAval))


//stoploss
stopLossVal=   strategy.position_size>=1 ?  (strategy.position_avg_price * (1-(stopLoss*0.01) )) : 0.00

//stopLossVal= close> (strategy.position_avg_price * (1+(stopLoss*0.01) )) ? lowest(close,numPeriods) : (strategy.position_avg_price * (1-(stopLoss*0.01) ))


strategy.close(id="TBT LE", comment="SL Exit",   when= close < stopLossVal)