Estou desenvolvendo um EA que utiliza os volumes (cotas) para gerenciar compras e vendas. O desenvolvimento não foi nada muito complexo. Na conta demo de duas corretoras diferentes funciona sem problemas (tirando algumas limitações por ser conta demo!).
Quando resolvi testar em uma conta real, a função 'PositionsTotal()' está replicando sete (7) vezes a posição total.
Fiz testes em outros ativos e o problema se repete em todos aqueles que tenho cotas compradas.
Liguei para a corretora, e realizaram um sincronismo entre a plataforma da corretora e o MT5, que não resolveu o problema.
segue código abaixo:
double CountVolumeOpenPositionsTipeBuy(void) {
int total = PositionsTotal();
PrintFormat("PositionsTotal(): %d", total);
int count = 0;
for (int i=0; i<total; i++){
if(PositionSelect(Symbol())){
if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY) {
PrintFormat("Volume da posição: %.0f; Time %d", PositionGetDouble(POSITION_VOLUME), (datetime)PositionGetInteger(POSITION_TIME));
count++;
m_volume_total_posicao_compra += PositionGetDouble(POSITION_VOLUME);
}
}
}
PrintFormat("Volume Total posições de compra: %.0f; Time %d", m_volume_total_posicao_compra, (datetime)PositionGetInteger(POSITION_TIME));
PrintFormat("Total posições de compra: %d", count);
return(m_volume_total_posicao_compra);
}
E o resultado exibido na aba Experts no MT5 conta real:
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
Estou desenvolvendo um EA que utiliza os volumes (cotas) para gerenciar compras e vendas. O desenvolvimento não foi nada muito complexo. Na conta demo de duas corretoras diferentes funciona sem problemas (tirando algumas limitações por ser conta demo!).
Quando resolvi testar em uma conta real, a função 'PositionsTotal()' está replicando sete (7) vezes a posição total.
Fiz testes em outros ativos e o problema se repete em todos aqueles que tenho cotas compradas.
Liguei para a corretora, e realizaram um sincronismo entre a plataforma da corretora e o MT5, que não resolveu o problema.
segue código abaixo:
E o resultado exibido na aba Experts no MT5 conta real:
-------------------------------------------------------------------------------
PositionsTotal(): 7
Volume da posição: 128; Time 1535729157
Volume da posição: 128; Time 1535729157
Volume da posição: 128; Time 1535729157
Volume da posição: 128; Time 1535729157
Volume da posição: 128; Time 1535729157
Volume da posição: 128; Time 1535729157
Volume da posição: 128; Time 1535729157
Volume Total posições de compra: 896; Time 1535729157
Total posições de compra: 7
-------------------------------------------------------------------------------------
OBS.: o volume de 128 cotas está correto.
Abraço a todos.
SOLUÇÃO DO PROBLEMA:
O problema estava no condicional que verificava se a posição era de compra. Faltava verificar o ativo em questão.
O trecho de código era:
E ficou:
Deixo a critério dos moderadores a deleção deste tópico, pois acredito que possa ajudar algum usuário que tenha problema semelhante.
Abraço a todos.