Códigos de exemplo? Tome Snippets! Snippets para Localização Temporal Estimated reading: 5 minutes 6353 views Introdução Esta seção visa apresentar trechos de códigos com funcionalidades relativas à localização temporal da estratégia. Por exemplo, identificar se a atual barra é a primeira barra do dia para verificar gap diário.Você pode acessar os Snippets diretamente pelo menu lateral direito, ou fazendo CTRL+F (CTRL+L) para localizar algum texto específico na página, uma vez que o conteúdo tende a crescer ao longo do tempo, dificultando a navegação pelo menu.Caso tenham sugestões de código para acrescentar à lista, gentileza deixar o código nos comentários com o link para seu perfil em rede social (para devido crédito de autoria). Snippets Identificação do primeiro candle de cada dia Algumas estratégias necessitam da identificação da primeira barra do dia (candle) para executar determinada ação ou calcular o gap em relação ao fechamento do dia anterior. var bPrimeiraBarraDoDia : boolean; iDataAtual : integer; begin if (Date() <> iDataAtual) then begin iDataAtual := Date(); bPrimeiraBarraDoDia := true; end; if bPrimeiraBarraDoDia then begin bPrimeiraBarraDoDia := false; //Faz alguma coisa na primeira barra do dia paintBar(clGreen); end; end; Identificação de barra por data e hora específicos Este código localiza a barra (candle ou box) por uma data e hora desejados. Onde a hora é referente ao horário de abertura do candle desejado. Observa-se que existe uma parte do código comentada para utilização em backtesting de gráficos de renko. OBS: As variáveis pDataDesejada e pHorarioDesejado não foram declaradas como parâmetros para facilitar o teste do Snippet, uma vez que não é possível alterar parâmetro dentro do Editor de Estratégias. var bBarraDesejada : boolean; pDataDesejada,pHorarioDesejado : integer; begin pDataDesejada := 20220928; pHorarioDesejado := 1200; if (Date() = ELDate_Consol(pDataDesejada)) And (Time() = pHorarioDesejado) then begin bBarraDesejada := true; //Faz alguma coisa na barra identificada paintBar(clGreen); end else bBarraDesejada := false; end; Identificação do primeiro tick de uma barra Este código identifica o primeiro tick de uma barra. Este Snippet tem aplicação apenas quando a estratégia é utlizada em tempo real.OBS: É importante ressaltar que em backtesting com dados históricos não há dados tick a tick. Desta forma, este Snippet não possui aplicação em backtesting com dados de barra a barra. var bPrimeiroTickDaBarra : boolean; iBarraAtual : integer; begin if LastBarOnChart then if (CurrentBar <> iBarraAtual) then begin iBarraAtual := CurrentBar; bPrimeiroTickDaBarra := true; end else bPrimeiroTickDaBarra := false; if bPrimeiroTickDaBarra then begin //Faz alguma coisa no primeiro tick da barra //Aplicável apenas em execução de tempo real paintBar(clGreen); end else begin //Faz alguma coisa nos demais ticks da barra atual //Aplicável apenas em execução de tempo real paintBar(clYellow); end; end; Contador de Candles do dia Este código realiza a contagem de barras dentro de um mesmo dia. var bPrimeiraBarraDoDia : boolean; iDataAtual : integer; iCurrentBarIntraday, iFirstBarOfDay : integer; begin if (Date() <> iDataAtual) then begin iDataAtual := Date(); bPrimeiraBarraDoDia := true; iFirstBarOfDay := CurrentBar; end; if bPrimeiraBarraDoDia then begin bPrimeiraBarraDoDia := false; //Faz alguma coisa na primeira barra do dia paintBar(clGreen); end; iCurrentBarIntraday := CurrentBar - iFirstBarOfDay + 1; plotText(iCurrentBarIntraday, clWhite,0, 12); end;