A estratégia bidirecional de backtest do indicador Qstick é uma estratégia de rastreamento de tendências e geração de sinais baseada no indicador técnico Qstick desenvolvido por Tushar Chande.
O indicador Qstick é obtido pelo cálculo da média móvel da diferença entre o preço de fechamento e o preço de abertura durante um determinado período. Quando o Qstick é maior que 0, significa que o preço de fechamento foi geralmente maior que o preço de abertura durante esse período, e o poder de alta prevaleceu; quando o Qstick é menor que 0, significa que o preço de abertura foi geralmente maior que o preço de fechamento durante esse período, e o poder de baixa prevaleceu.
Os sinais de negociação desta estratégia vêm quando o indicador Qstick cruza o eixo zero. Um sinal de compra é gerado quando o Qstick cruza acima de zero a partir de baixo, indicando que a pressão de compra começa a exceder a pressão de venda e uma posição longa pode ser estabelecida; inversamente, um sinal de venda é gerado quando o Qstick cruza abaixo de zero a partir de cima, indicando que a pressão de venda começa a aumentar e as posições existentes devem ser fechadas. Além disso, uma média móvel dos valores do Qstick pode ser traçada como uma linha de sinal, e sinais de negociação também podem ser gerados quando o indicador Qstick cruza essa linha de sinal.
Esta estratégia permite a negociação de reversão, ou seja, quando um sinal de compra é originalmente suposto ser gerado, uma operação de venda real é tomada; quando um sinal de venda é originalmente suposto ser gerado, uma operação de compra real é tomada.
A estratégia Qstick de cruzamento bidirecional do eixo zero tem as seguintes vantagens:
A estratégia Qstick de cruzamento bidirecional do eixo zero também apresenta alguns riscos:
Os seguintes métodos podem ser utilizados para reduzir os riscos:
A estratégia Qstick de cruzamento bidirecional do eixo zero pode ser otimizada nos seguintes aspectos:
A estratégia bi-direcional de cruzamento do eixo zero Qstick utiliza indicadores simples para determinar mudanças na pressão de compra e venda, e gera sinais de negociação quando o indicador Qstick cruza o eixo zero, o que pode capturar efetivamente as tendências de preços. Esta estratégia é intuitiva e fácil de entender, adequada para iniciantes, e também pode ser otimizada de muitas maneiras para atender às necessidades de traders avançados. No entanto, esta estratégia também tem certas falhas e precisa ser usada com cautela. Em geral, esta é uma estratégia muito prática de rastreamento de tendências e geração de sinais.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 16/04/2018 // A technical indicator developed by Tushar Chande to numerically identify // trends in candlestick charting. It is calculated by taking an 'n' period // moving average of the difference between the open and closing prices. A // Qstick value greater than zero means that the majority of the last 'n' days // have been up, indicating that buying pressure has been increasing. // // Transaction signals come from when the Qstick indicator crosses through the // zero line. Crossing above zero is used as the entry signal because it is indicating // that buying pressure is increasing, while sell signals come from the indicator // crossing down through zero. In addition, an 'n' period moving average of the Qstick // values can be drawn to act as a signal line. Transaction signals are then generated // when the Qstick value crosses through the trigger line. // // You can change long to short in the Input Settings // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// strategy(title="Qstick Indicator Backtest") Length = input(14, minval=1) reverse = input(false, title="Trade reverse") xR = close - open xQstick = sma(xR, Length) clr = iff(xQstick >= 0, green, red) pos = iff(xQstick > 0, 1, iff(xQstick < 0, -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 ) p1 = plot(0, color=black, title="0") p2 = plot(xQstick, color=blue, title="Qstick") fill(p1, p2, color=clr)