N Bar fechar abaixo da estratégia curta aberta

Autora:ChaoZhang, Data: 2023-12-26 10:29:12
Tags:

img

Resumo

Esta estratégia identifica a tendência a curto prazo com base em indicadores técnicos e assume uma posição curta quando detecta N barras consecutivas fechando abaixo do preço de abertura.

Estratégia lógica

A estratégia usa uma variável nCounter para contar o número de barras consecutivas com fechamento abaixo de aberto. Quando o preço de fechamento é menor que o preço de abertura, o nCounter aumenta em 1. Quando o preço de fechamento é maior que o preço de abertura, o nCounter é reiniciado para 0. Quando o nCounter atinge o parâmetro de entrada nLength, ele indica N barras consecutivas fechando abaixo do preço de abertura e o sinal C2 se torna 1.

Após o sinal, se não houver posição, uma ordem curta será enviada. Se já estiver em posição curta, mantenha a posição. Após a posição de abertura, o postprice registra o preço de entrada. O lucro e a perda de parada são definidos com base no preço de entrada: se o preço atingir o ponto de lucro (entrada + entrada takeprofit), feche a posição e reinicie; se o preço atingir o ponto de perda de parada (entrada - entrada stopploss), feche a posição e reinicie.

Análise das vantagens

As principais vantagens desta estratégia:

  1. Lógica simples e clara, fácil de entender e implementar.
  2. Parâmetros personalizáveis, flexíveis em função das diferentes condições do mercado.
  3. Equipado com take profit e stop loss, controla eficazmente os riscos.

Análise de riscos

Os principais riscos desta estratégia:

  1. N bar close below open não pode confirmar completamente a inversão da tendência, pode ocorrer sinal falso.
  2. A definição inadequada de stop loss ou take profit pode levar a uma saída prematura ou a perdas amplificadas.

Orientações de otimização

A estratégia pode ser melhorada pelos seguintes aspectos:

  1. Adicione o filtro de tendência para evitar uma avaliação errada das correções de curto prazo no mercado lateral.

  2. Adicione confirmação de volume. O volume crescente pode confirmar melhor a reversão da tendência.

  3. Otimizar o take profit e o stop loss, como usar o trailing stop loss, o stop loss percentual para fazer saídas mais inteligentes.

  4. Utilize modelos de aprendizagem de máquina para ajustar dinamicamente parâmetros como nLength de acordo com mudanças de mercado em tempo real.

Conclusão

Esta estratégia identifica a tendência de curto prazo simplesmente com base na relação entre o preço de fechamento e o preço de abertura. Os sinais de negociação são gerados ao detectar N barras consecutivas fechando abaixo do preço de abertura. A estratégia é intuitiva, personalizável e equipada com gerenciamento de risco eficaz. No entanto, existe certo nível de falsos sinais. Recomenda-se combinar filtros adicionais para otimização. Com ajuste de parâmetros, gerenciamento de risco e aprimoramento do modelo, isso pode ser uma ferramenta muito prática para negociação de curto prazo.


/*backtest
start: 2023-12-18 00:00:00
end: 2023-12-25 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 05/02/2020
// Evaluates for n number of consecutive lower closes. Returns a value 
// of 1 when the condition is true or 0 when false.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="N Bars Down", shorttitle="NBD Backtest", overlay = false) 
nLength = input(4, minval=1)
input_takeprofit = input(20, title="Take Profit pip", step=0.01)
input_stoploss = input(10, title="Stop Loss pip", step=0.01)
nCounter = 0
nCounter := iff(close[1] <= open[1], nz(nCounter[1],0)+1,
             iff(close[1] > open[1], 0, nCounter))
C2 = iff(nCounter >= nLength, 1, 0)
posprice = 0.0
pos = 0
barcolor(nz(pos[1], 0) == -1 ? color.red: nz(pos[1], 0) == 1 ? color.green : color.blue ) 
posprice := iff(C2== 1, close, nz(posprice[1], 0)) 
pos := iff(posprice > 0, -1, 0)
if (pos == 0) 
    strategy.close_all()
if (pos == -1)
    strategy.entry("Short", strategy.short)
posprice := iff(low <= posprice - input_takeprofit and posprice > 0, 0 ,  nz(posprice, 0))
posprice := iff(high >= posprice + input_stoploss and posprice > 0, 0 ,  nz(posprice, 0))
plot(C2, title='NBD', color=color.red)

Mais.