Neo traderBot

Neo traderBot

Você sabia?

Um backtesting adequado deve buscar simular situações práticas do mercado (slippage, custo de operação, etc...)

leaf leftleaf right
Notifications
Clear all

[Solucionado] Armazenar volume máximo do dia e plotar a função MyPrice quando isso acontecer

3 Posts
2 Usuários
1 Reactions
155 Visualizações
(@eafonsopereira)
Membro eminente
Registrou: 2 anos atrás
Posts: 12
Iniciador do tópico  

 Olá.

Estou tentando armazenar em uma variável, o valor do maior volume de negociação do dia, para consequentemente, plotar a função MyPrice quando isso acontecer.

Peguei um código aqui da NeoTraderBot para definir a primeira barra do dia, mas a parte de armazenar o volume, não estou conseguindo fazer. Ele não grava na variável "v2" o maior volume da série.

A ideia é armazenar esse volume, e quando essa condição for satisfeita, ou atualizada, gostaria de plotar na tela e armazenar em uma nova variável, o valor da função MyPrice.

Alguém poderia me ajudar? segue código abaixo:

 

var
bPrimeiraBarraDoDia : boolean;
iDataAtual : integer;
iCurrentBarIntraday, iFirstBarOfDay : integer;
v1, v2, v3, v4 : float;

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, 8);
v1:= volume;
v2:= highest(v1,iCurrentBarIntraday);

plot(iCurrentBarIntraday);
plot(v1);
plot2(v2);
end;

   
Citar
Marcadores do tópico
(@toledox82)
Membro eminente
Registrou: 2 anos atrás
Posts: 17
 

Fala @eafonsopereira beleza?

Segue uma forma de você encontrar o maior volume do dia, lembrando que ele vai atualizando o valor conforme cada barra fechada obter um volume maior ok? Veja se era isso que precisava.

Veja o anexo =)

var
  bPrimeiraBarraDoDia : boolean;
  iDataAtual          : integer;
  vF1,vF2             : float;
  vFMax               : float;
begin
  if (Date() <> iDataAtual) then
    begin
      iDataAtual := Date();
      bPrimeiraBarraDoDia := true;
    end;
  if bPrimeiraBarraDoDia then
    begin
      bPrimeiraBarraDoDia := false;
      vF1 := FinancialVol(False,True);
      vFMax := FinancialVol(False,True);
    end;
  if bPrimeiraBarraDoDia = false then
    begin
      vF2 := FinancialVol(False,True);
      if vF2 > vFMax then
        begin
          vFMax := vF2;
          PaintBar(clRed);
          plotText("vMax", clRed, 2);
        end;
    end;
end;

   
ReplyCitar
(@eafonsopereira)
Membro eminente
Registrou: 2 anos atrás
Posts: 12
Iniciador do tópico  

@toledox82 Bom dia.

Valeu cara. Vou tentar fazer o resto (MyPrice) aqui. boa semana.


   
ToledoX82 reacted
ReplyCitar