Múltiplas Ações

 

Boa noite Prezados, elaborei um código que opera múltiplas ações através de um vetor de struct, cada posição do vetor de Struct representa uma ação e cada ação contém seus respecticos atributos para trade conforme abaixo:

Dentro da função Ontick() tem um "for" que percorre esse vetor de struct. Caso cumpra as condições ele realiza a ordem conforme figura abaixo. 

No backtest roda perfeitamente, o problema se resume na conta real. As vezes a ordem não executa ou demora muito pra ocorrer pegando preços que não foram configurados. Tenho algumas suposições para o que está ocorrendo mas nada concreto:

1- Preço da função m_trade.Buy() não corresponde ao momento que entra na condição não gerando a ordem e ativando a array_ativos[i].flag_ativo que impede de entrar no ativo novamente já que essa flag determina uma operação por dia.

2- Trabalhar com vetor de struct dentro da função Ontick() acaba afetando muito o poder de processamento.

3- Estou rodando uma VPN core 2 duo, talvez múltiplas ações junto com a função Ontick() seja muito pesado para esse processador.


 
teclopscum:

Boa noite Prezados, elaborei um código que opera múltiplas ações através de um vetor de struct, cada posição do vetor de Struct representa uma ação e cada ação contém seus respecticos atributos para trade conforme abaixo:

Dentro da função Ontick() tem um "for" que percorre esse vetor de struct. Caso cumpra as condições ele realiza a ordem conforme figura abaixo. 

No backtest roda perfeitamente, o problema se resume na conta real. As vezes a ordem não executa ou demora muito pra ocorrer pegando preços que não foram configurados. Tenho algumas suposições para o que está ocorrendo mas nada concreto:

1- Preço da função m_trade.Buy() não corresponde ao momento que entra na condição não gerando a ordem e ativando a array_ativos[i].flag_ativo que impede de entrar no ativo novamente já que essa flag determina uma operação por dia.

2- Trabalhar com vetor de struct dentro da função Ontick() acaba afetando muito o poder de processamento.

3- Estou rodando uma VPN core 2 duo, talvez múltiplas ações junto com a função Ontick() seja muito pesado para esse processador.


1 - Mude para OnTimer(), utilizar isso dentro do OnTick() é completamente desnecessário. Além disso, o OnTimer() não vai atrasar a cotação e roda paralelo.

2 - Se possivel, ative na m_trade, mais informações de depuração para ver se ti ajuda. Mas é uma coisa muito normal, voce pedir no Buy() algo e receber outra coisa na execução. Voce pode para tentar melhorar isso especificar o preço e se ele mover voce tem um erro.

3 - Quando for comentar algo do codigo citando estruturas seria recomendavel postar o código também.