
A estratégia baseia-se em dados da linha K de três minutos do índice Nifty50, que rastreia os preços mais altos e mais baixos da linha K de três minutos no primeiro dia de negociação, e emite um sinal de negociação quando o preço quebra esse intervalo. A principal idéia da estratégia é que o mercado costuma ter uma grande incerteza e volatilidade no início da negociação, e os altos e baixos da primeira linha K podem servir como uma referência importante para o funcionamento dos preços do dia.
A estratégia de ruptura do preço de abertura de três minutos do Nifty50 é simples e fácil de usar, por capturar os altos e baixos de três minutos de abertura diária, para determinar a direção da tendência do dia. Mas, devido à grande volatilidade e incerteza na abertura, a estratégia em si tem algumas limitações, como gerar mais sinais de ruptura falsos, falta de gerenciamento de posição e mecanismo de parada de perda. Portanto, na aplicação prática, é necessário combinar outros indicadores técnicos, gerenciamento de posição e estrita parada de perda, para otimizar o desempenho da estratégia e melhorar a capacidade de controle de risco.
/*backtest
start: 2023-05-11 00:00:00
end: 2024-05-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Nifty 50 Strategy", overlay=true)
// Define 3-minute timeframe
timeframe = "3"
// Track if the current bar is the first bar of the session
isNewSession = ta.change(hour(time, "D")) != 0
// Track the open of the first candle of the session
firstCandleOpen = isNewSession ? open : na
// Track the high and low of the first candle
var float firstCandleHigh = na
var float firstCandleLow = na
if isNewSession
firstCandleHigh := high
firstCandleLow := low
// Alert when the first candle is completed
if ta.barssince(isNewSession) == 3
alert("First Candle Completed - High: " + str.tostring(firstCandleHigh) + ", Low: " + str.tostring(firstCandleLow))
// Track if the high or low of the first candle is broken
highBroken = high > firstCandleHigh
lowBroken = low < firstCandleLow
// Alert when the high or low of the first candle is broken
if highBroken
alert("High of First Candle Broken - High: " + str.tostring(high))
strategy.entry("Enter Long", strategy.long)
if lowBroken
alert("Low of First Candle Broken - Low: " + str.tostring(low))
strategy.entry("Enter Short", strategy.short)