MetaEditor build 1490 - pagina 4

 
Andrey Dik:

No, non è normale.

C'è una posizione. Lanciamo l'Expert Advisor sul grafico. Non c'è una storia di accordi per la posizione selezionata. Cosa è normale qui?))

La posizione è aperta da diversi secondi e il numero di accordi è ancora zero?
 
fxsaber:
Una posizione è aperta da qualche secondo e il numero di scambi è ancora zero?
Esattamente.
 
Andrey Dik:
Esattamente.
Allora è molto male per chiunque faccia trading in MT5. Come si riproduce?
 
fxsaber:
Allora è molto male per chiunque faccia trading in MT5. Come riprodursi?
aprire posizioni senza e con un EA su un grafico, aggiungere a una posizione, tagliare una posizione, capovolgere una posizione. il bug non è sempre e non immediatamente evidente. ho sperimentato su un conto demo fibo, build 1490
 
Andrey Dik:
Il bug non è sempre e non è immediatamente evidente. Ho provato su un conto demo fibo, build 1490
Non riprodurre
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:
Non si può riprodurre.
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);
  }
}
La tua posizione è selezionata in modo diverso. Prova il mio codice.
 
Andrey Dik:
La tua posizione è selezionata in modo diverso. Prova il mio codice.
E non gioca in questo modo.
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 non sta giocando.
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));
}

Hai provato il mio codice?

Per riprodurlo allo stesso modo e ottenere gli stessi log.

 
Andrey Dik:

Hai provato il mio codice?

Per riprodurlo allo stesso modo e ottenere gli stessi log.

Provato - il problema non si riproduce.
 
fxsaber:
Ho provato - il problema non viene riprodotto.

Strange.... Quale potrebbe essere il problema allora?

Qui. Fare questo. Avviato l'Expert Advisor su un grafico. Ho aperto una posizione manualmente. Ho aggiunto una posizione due volte e l'ho tagliata una volta. Mostra 4 trade correttamente in lag. Dopo di che ho invertito la posizione e ho un problema: ho una posizione ma nessun accordo.

Ecco il registro dopo le ultime due operazioni.

2016.12.05 14:25:44.157 1

2016.12.05 14:25:44.157 Ottenere la commissione attuale della pos (GBPUSD,M5) GBPUSD

2016.12.05 14:25:44.157 Get current commission of pos (GBPUSD,M5) Posizione trovata

2016.12.05 14:25:44.157 Totale operazioni in posizione: 4

2016.12.05 14:25:44.670 1

2016.12.05 14:25:44.670 Get current commission of pos (GBPUSD,M5) GBPUSD

2016.12.05 14:25:44.670 Posizione trovata

2016.12.05 14:25:44.670 Totale operazioni in posizione: 0

Si può vedere che nella posizione non si vede alcun trade. L'EA è ancora appeso al grafico e c'è 0 nel commento.

Ho rimosso l'EA e l'ho reimpostato sul grafico, non vede i trade di una posizione, il commento è 0.