ScApp eu fiquei acompanhando o ativo WDO a semana passada e parece que existe um padrão. Parece que o compilador da NTLS executa o código tic-a-tic apenas em instruções no código que obtém valores que se alteram enquanto a barra está aberta. Um bom exemplo disso é o volume da barra. Conforme o código abaixo:
var
quantidadeTics : Integer;
quantidadeBarras : Integer;
barraAtual : Integer;
volumeAgressao1 : Float;
volumeAgressao2 : Float;
begin
quantidadeTics := (quantidadeTics + 1);
volumeAgressao1 := (volumeAgressao1 + (AgressionVolBuy[1] + AgressionVolSell[1]));
volumeAgressao2 := (volumeAgressao2 + (AgressionVolBuy + AgressionVolSell));
if (CurrentBar = barraAtual) then
begin
barraAtual := (CurrentBar + 1);
quantidadeBarras := (quantidadeBarras + 1);
end;
Plot(quantidadeTics);
Plot2(quantidadeBarras);
Plot3(barraAtual);
Plot4(volumeAgressao1);
Plot5(volumeAgressao2);
end;
Executando o código acima com o mercado aberto (ou em replay) você verá que as variáveis quantidadeTics
, quantidadeBarras
e volumeAgressao1
somente são alteradas quando troca a barra, porém a variável volumeAgressao2
é alterada a cada tic, ou seja com a barra ainda aberta. Talvez existam outras funções que tenham este comportamento também.
Durante a semana passada inteira o código acima se comportou desta forma na última versão beta, é provável que seja algo permanente. Se for isso mesmo, me parece uma boa alteração. Assim não precisamos mais nos preocupar com instruções que estão fora de um contexto “tic-safe”. Mas se tratando de Profit ainda é preciso fazer mais testes e acompanhar mais.