Percentagem de mudança de gráfico de barras Estratégia de backtest

Autora:ChaoZhang, Data: 2023-11-15 15:41:20
Tags:

img

Resumo

Esta estratégia calcula a mudança percentual do preço de fechamento da barra atual em relação ao preço de fechamento N bares atrás, e exibe barras de histograma de cores diferentes para determinar a tendência.

Estratégia lógica

  1. Definir parâmetros de estratégia através de entrada, incluindo largura de barra, variação de preço ou variação percentual, período de revisão, limiares de compra/venda, etc.

  2. Calcular a diferença de preço ou a diferença percentual entre o preço de fechamento da barra atual e o preço de fechamento N bares atrás.

  3. Estabelecer linhas de limiar de compra e venda.

  4. Mostrar barras de histograma em cores diferentes com base na variação percentual.

  5. Definição de longo quando a variação percentual for superior ao limiar de compra e de curto quando inferior ao limiar de venda.

  6. Barras de histograma coloridas de acordo com a direção da posição.

  7. Entrar e sair com base na direcção da posição.

Vantagens

  1. Impressão intuitiva das tendências de variação dos preços para a tomada de decisões.

  2. Sinais claros de entrada e saída em combinação com indicadores de tendência.

  3. Os parâmetros podem ser otimizados para diferentes produtos e prazos.

  4. Lógica simples e clara, fácil de entender e modificar.

  5. Boa visualização para um rápido julgamento da tendência.

Riscos

  1. São propensos a sinais falsos, uma selecção de entrada inadequada pode levar a perdas.

  2. Os parâmetros devem ser ajustados para produtos de alta volatilidade, aumentando de outro modo a probabilidade de perda.

  3. Desconhecido por eventos repentinos como notícias significativas de baixa.

  4. Um período de ensaio posterior curto pode não ser capaz de determinar a robustez dos parâmetros.

  5. Perder oportunidades de reversão sem tempo de parada.

Os riscos podem ser controlados através de otimização de parâmetros, filtragem de sinal com outros indicadores, stop loss, expansão do período de backtest etc.

Orientações de otimização

  1. Considere a combinação com outros indicadores como indicadores de tendência e volatilidade para confirmar sinais.

  2. Introduzir algoritmos de aprendizagem de máquina para otimizar as configurações de parâmetros.

  3. Configurar o stop loss dinâmico para controlar o montante da perda única.

  4. Incorporar indicadores de sentimento e notícias para evitar impactos de eventos repentinos.

  5. Adicionar filtros de tempo de negociação ou sessão.

  6. Otimizar o período de backtest com um prazo mais longo.

Resumo

Esta estratégia exibe percentagem de mudança de preço em tempo real com barras de histograma e usa linhas de tendência para tomada de decisão, formando sinais comerciais claros. A lógica é simples para operação fácil. Mas os riscos existem e precisam ser controlados através de otimização, filtragem, stop loss etc. Com otimizações contínuas, pode se tornar uma estratégia de tendência fácil de entender e prática.


/*backtest
start: 2022-11-08 00:00:00
end: 2023-11-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v3.0 27/07/2018
//
//  This histogram displays price or % change from previous bar. 
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Percent change bar chart Backtest", precision = 2)
input_barwidth = input(4, title="Bar Width")
input_percentorprice = input(false, title="Price Change")
input_barsback = input(1, title="Look Back")
SellZone = input(-0.33, minval=0.01, step = 0.01)
BuyZone = input(0.33, minval=0.01, step = 0.01)
reverse = input(false, title="Trade reverse")
hline(0, color=blue, linestyle=line)
hline(BuyZone, color=green, linestyle=line)
hline(SellZone, color=red, linestyle=line)
xPrice = close
xPrice1 = iff(input_percentorprice, xPrice - xPrice[input_barsback], ((xPrice - xPrice[input_barsback]) * 100)/ xPrice[input_barsback])
colorg = iff(xPrice1 < 0, red, green)
pos = iff(xPrice1 > BuyZone, 1,
       iff(xPrice1 < SellZone, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
plot(xPrice1, color=colorg, style = histogram, linewidth = input_barwidth, title="Change")

Mais.