A lógica central desta estratégia é detectar se o preço de fechamento de N velas consecutivas continua a subir. Se assim for, vá longo; caso contrário, feche a posição. Isso pode capturar a tendência de alta do preço das ações e obter lucro.
O indicador central desta estratégia é o nCounter. Ele compara o preço de fechamento e o preço de abertura da vela atual para julgar se o preço sobe.
Especificamente, se close[1]>=open[1], nCounter adiciona 1, indicando aumento; se close[1]
Em seguida, compare o nCounter com o parâmetro nLength. Quando o nCounter>=nLength, o sinal de saída C1=1; caso contrário, C1=0.
Após receber o sinal C1=1, se não houver posição atual, vá longo; se já estiver em posição longa, mantenha a espera.
Além disso, esta estratégia define condições de stop loss e take profit. Se o preço cair abaixo do preço de entrada em uma certa porcentagem, o stop loss sai da posição; se subir acima do preço de entrada em uma certa porcentagem, take profit.
Esta é uma tendência típica que segue uma estratégia com os seguintes pontos fortes:
Esta estratégia apresenta alguns riscos, principalmente nos seguintes aspectos:
Para reduzir esses riscos, podemos definir um stop loss mais rigoroso, otimizar o nLength, adicionar regras de condições de mercado ou testar parâmetros separadamente para diferentes ações.
Considerando os riscos acima, podemos otimizar a estratégia a partir dos seguintes aspectos:
Esta estratégia capta a tendência de alta detectando N velas ascendentes consecutivas. Pode efetivamente conduzir a tendência seguinte. As vantagens são lógica simples, ajuste flexível de parâmetros, filtragem de falha de ruptura. Mas também há alguns riscos. Precisa adicionar módulos como stop loss, otimização de parâmetros, julgamento do ambiente para melhorar. De um modo geral, esta estratégia fornece um modelo básico valioso para negociação quantitativa. Pode se tornar uma poderosa ferramenta de negociação após melhoria contínua.
/*backtest start: 2023-01-01 00:00:00 end: 2023-12-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 05/02/2020 // Evaluates for n number of consecutive higher 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 Up", shorttitle="NBU 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)) C1 = 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(C1== 1, close, nz(posprice[1], 0)) pos := iff(posprice > 0, 1, 0) if (pos == 0) strategy.close_all() if (pos == 1) strategy.entry("Long", strategy.long) posprice := iff(low <= posprice - input_stoploss and posprice > 0, 0 , nz(posprice, 0)) posprice := iff(high >= posprice + input_takeprofit and posprice > 0, 0 , nz(posprice, 0)) plot(C1, title='NBU', color=color.green)