MetaEditor construído em 1490 - página 4

 
Andrey Dik:

Não, não é normal.

Há uma posição. Atiramos o Expert Advisor para a tabela. Não há histórico de negócios para a posição selecionada. O que é normal aqui?))

A posição está aberta há vários segundos, e o número de negócios ainda é zero?
 
fxsaber:
Uma posição está aberta há alguns segundos e o número de negócios ainda é zero?
Exatamente.
 
Andrey Dik:
Exatamente.
Então é muito ruim para quem negocia na MT5. Como você o reproduz?
 
fxsaber:
Então, é muito ruim para qualquer pessoa que comercialize na MT5. Como reproduzir?
posições abertas sem e com um EA em um gráfico, adicionar a uma posição, cortar uma posição, inverter uma posição. o bug não é sempre e não é imediatamente aparente. eu experimentei em uma conta de fibo demo, build 1490
 
Andrey Dik:
O bug nem sempre é visível e nem sempre é imediatamente visível. Tentei em uma conta de demonstração de fibo, build 1490
Não reproduzir
void OnTick ()
{
  const int Total = PositionsTotal();
  
  for (int i = 0; i < Total; i++)
  {
    const ulong Ticket = PositionGetTicket(i);
    
    if (PositionSelectByTicket(Ticket) && HistorySelectByPosition(PositionGetInteger(POSITION_IDENTIFIER)) && (HistoryDealsTotal() == 0))
      Alert(Ticket);
  }
}
 
fxsaber:
Não pode se reproduzir.
void OnTick ()
{
  const int Total = PositionsTotal();
  
  for (int i = 0; i < Total; i++)
  {
    const ulong Ticket = PositionGetTicket(i);
    
    if (PositionSelectByTicket(Ticket) && HistorySelectByPosition(PositionGetInteger(POSITION_IDENTIFIER)) && (HistoryDealsTotal() == 0))
      Alert(Ticket);
  }
}
Sua posição é selecionada de forma diferente. Tente meu código.
 
Andrey Dik:
Sua posição é selecionada de forma diferente. Tente meu código.
E não é assim que se joga.
void OnInit()
{
  EventSetMillisecondTimer(1);
}

void OnTimer()
{
  const int Total = PositionsTotal();
  
  for (int i = 0; i < Total; i++)
    if ((PositionGetSymbol(i) == _Symbol) && HistorySelectByPosition(PositionGetInteger(POSITION_IDENTIFIER)) && (HistoryDealsTotal() == 0))
      Alert(PositionGetInteger(POSITION_TICKET));
}
 
fxsaber:
E não está brincando.
void OnInit()
{
  EventSetMillisecondTimer(1);
}

void OnTimer()
{
  const int Total = PositionsTotal();
  
  for (int i = 0; i < Total; i++)
    if ((PositionGetSymbol(i) == _Symbol) && HistorySelectByPosition(PositionGetInteger(POSITION_IDENTIFIER)) && (HistoryDealsTotal() == 0))
      Alert(PositionGetInteger(POSITION_TICKET));
}

Você já tentou meu código?

Para reproduzi-lo da mesma maneira e obter os mesmos troncos.

 
Andrey Dik:

Você já tentou meu código?

Para reproduzi-lo da mesma maneira e obter os mesmos troncos.

Experimentei-o - o problema não se reproduz.
 
fxsaber:
Eu tentei - o problema não é reproduzido.

Strange.... Qual poderia ser o problema então?

Aqui. Fazendo isto. Iniciou o Expert Advisor em um gráfico. Eu abri uma posição manualmente. Acrescentei duas vezes e cortei uma vez uma posição. Está mostrando 4 negócios corretamente em desfasamentos. Depois disso reverti a posição e tive um problema: tenho uma posição mas não tenho acordos.

Aqui está o registro após as duas últimas operações.

2016.12.05 14:25:44.157 Obter a comissão atual de pos (GBPUSD,M5) 1

2016.12.05 14:25:44.157 Obter a comissão atual de pos (GBPUSD,M5) GBPUSD

2016.12.05 14:25:44.157 Obter a comissão atual de pos (GBPUSD,M5) Posição encontrada

2016.12.05 14:25:44.157 Obter comissão atual de pos (GBPUSD,M5) Total de negociações em posição: 4

2016.12.05 14:25:44.670 Obter a comissão atual de pos (GBPUSD,M5) 1

2016.12.05 14:25:44.670 Obter a comissão atual de pos (GBPUSD,M5) GBPUSD

2016.12.05 14:25:44.670 Obter a comissão atual de pos (GBPUSD,M5) Posição encontrada

2016.12.05 14:25:44.670 Obter comissão atual de pos (GBPUSD,M5) Total de negociações em posição: 0

Pode-se ver que nenhum comércio é visto na posição. A EA ainda está pendurada na tabela e há 0 no comentário.

Eu removi o EA e o reajustei para o gráfico, ele não vê negócios de uma posição, o comentário é 0.

Razão: