
A estratégia usa a ruptura de altas e baixas de um período de tempo dinâmico para gerar um sinal de negociação. Decide se compra ou vende comparando o preço máximo e mínimo do período de tempo atual com o preço de fechamento do período anterior, acrescido de um certo número de pontos. Esta abordagem pode se adaptar a diferentes tendências e volatilidade do mercado, aumentando a adaptabilidade e a flexibilidade da estratégia.
O núcleo da estratégia é usar os altos e baixos de diferentes períodos de tempo para determinar a movimentação dos preços. Primeiro, obtém-se o correspondente preço máximo, mínimo e preço de fechamento de acordo com o período de tempo escolhido pelo usuário. Em seguida, é determinado o sinal de compra, comparando se o preço máximo do período de tempo atual é maior do que o preço de fechamento do período anterior, somando um certo número de pontos.
A estratégia de ruptura de altas e baixas de quadros de tempo dinâmicos cria sinais de negociação com base em dados de preços de diferentes quadros de tempo. A lógica da estratégia é clara, adaptável e fácil de implementar e otimizar. Mas também há problemas como parâmetros sensíveis, sobreajustes e risco de mercado, que precisam de otimização e melhoria contínua na aplicação real.
/*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)