Esta estratégia usa breakouts dinâmicos de alto e baixo prazos para gerar sinais de negociação. Ela determina se comprar ou vender comparando os preços mais altos e mais baixos do período atual com o preço de fechamento do período anterior mais ou menos um certo número de pontos. Esta abordagem pode se adaptar a diferentes tendências e volatilidade do mercado, melhorando assim a adaptabilidade e flexibilidade da estratégia.
O núcleo desta estratégia é usar os pontos altos e baixos de diferentes prazos para determinar as tendências de preços. Primeiro, ele obtém os dados de preço mais alto, preço mais baixo e preço de fechamento correspondentes ao período de tempo selecionado pelo usuário. Em seguida, ele determina o sinal de compra comparando se o preço mais alto do período atual é maior do que o preço de fechamento do período anterior mais um certo número de pontos. Da mesma forma, ele determina o sinal de venda comparando se o preço mais baixo do período atual é menor do que o preço de fechamento do período anterior menos um certo número de pontos. Uma vez que um sinal de compra ou venda aparece, a estratégia abrirá ou fechará posições de acordo. Além disso, a estratégia marcará os sinais de compra e venda no gráfico e traçará a curva de equidade da estratégia para avaliação intuitiva do desempenho da estratégia.
A estratégia de alta e baixa breakout de prazo dinâmico gera sinais de negociação com base em breakouts de preços de pontos altos e baixos em diferentes prazos. A lógica da estratégia é clara, adaptável e fácil de implementar e otimizar. No entanto, também tem problemas como sensibilidade de parâmetros, sobreajuste e risco de mercado, que precisam ser continuamente otimizados e melhorados na aplicação real. Ao ajustar dinamicamente os parâmetros, introduzir gerenciamento de risco, combinar com outros indicadores e otimizar a eficiência do código, a robustez e a lucratividade da estratégia podem ser melhoradas, fornecendo ferramentas e ideias eficazes para negociação quantitativa.
/*backtest start: 2023-05-28 00:00:00 end: 2024-06-02 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(" NIFTY 65-15 ", overlay=true) // Define input options for point settings and timeframe points = input.int(60, title="Point Threshold", minval=1, step=1) timeframe = input.timeframe("60", title="Timeframe", options=["1", "3", "5", "15", "30", "60", "240", "D", "W", "M"]) // Calculate high and low of the selected timeframe high_timeframe = request.security(syminfo.tickerid, timeframe, high) low_timeframe = request.security(syminfo.tickerid, timeframe, low) close_timeframe = request.security(syminfo.tickerid, timeframe, close) // Define conditions for Buy and Sell buyCondition = high_timeframe > (close_timeframe[1] + points) sellCondition = low_timeframe < (close_timeframe[1] - points) // Entry and exit rules if (buyCondition) strategy.entry("Buy", strategy.long) if (sellCondition) strategy.entry("Sell", strategy.short) // Close the positions based on the conditions if (sellCondition) strategy.close("Buy") if (buyCondition) strategy.close("Sell") // Plot Buy and Sell signals on the chart plotshape(series=buyCondition, title="Buy Entry", color=color.green, style=shape.triangleup, location=location.belowbar) plotshape(series=sellCondition, title="Sell Entry", color=color.red, style=shape.triangledown, location=location.abovebar) // Plot the equity curve of the strategy plot(strategy.equity, title="Equity", color=color.blue, linewidth=2)