Caractéristiques du langage mql5, subtilités et techniques - page 66

 
fxsaber:

Réductions.

Eh bien, j'ai réinitialisé le tableau via FileWriteArray, si FileSave réduit la taille, les développeurs devraient probablement corriger le code de la fonction FileWriteArray également.

 
Konstantin:

Je réinitialisais le tableau via FileWriteArray. Si FileSave réduit la taille, les développeurs devraient probablement corriger le code de la fonction FileWriteArray également.

Regardez dans l'aide.

 

Forum sur le trading, les systèmes de trading automatisé et les tests de stratégies de trading

Discussion sur "Le système de comptabilisation des positions de couverture est ajouté à MetaTrader 5".

fxsaber, 2018.01.17 18:45

Chronologiquement

  1. Ordre en suspens déclenché partiellement - position ouverte avec Position_ID = Order_Ticket.
  2. Fermeture manuelle de la position.
  3. Le reste de l'ordre a été exécuté - une position avec Position_ID != Order_Ticket a été ouverte.

La valeur de l'ORDER_POSITION_ID qui en résulte et la façon dont l'HistorySelectByPosition fonctionnera restent une question.

De toute évidence, la seule (sur deux) transaction d'ouverture dans son ordre DEAL_ORDER aura DEAL_POSITION_ID != ORDER_POSITION_ID.

Nous ne devons donc pas nous fier à HistorySelectByPosition, même dans les couvertures.

 

Après avoir défini l'EventTimer, le premier appel à OnTimer ne se produit pas immédiatement, mais après l'intervalle de temps défini.

 
fxsaber:

Après avoir défini l'EventTimer, le premier appel à OnTimer ne se produit pas immédiatement, mais après l'intervalle de temps défini.

Une observation intéressante et utile. Merci. Mais c'est logique...

 
Une comparaison nuancée des nombres entiers à l'aide d'un exemple concret
void OnStart()
{
  const ulong StartTime = GetMicrosecondCount();
  
  Sleep(1000);
  
//  if (GetMicrosecondCount() > StartTime + 1000000) // Неправильно
  if (GetMicrosecondCount() - StartTime > 1000000) // Правильно
    Print("Прошло больше секунды.");
  else
    Print("Прошло меньше секунды."); 
}
 
fxsaber:
Une nuance de la comparaison des entiers à l'aide d'un exemple réel
1e6 est un littéral de type double.
 
Combinateur:
1e6 est un littéral de type double.

J'en suis conscient. L'exemple n'est pas concerné par cela. Pensez-y comme à un million d'entiers.

 
fxsaber:

J'en suis conscient. L'exemple n'en est pas affecté.

Elle affecte directement
 
Combinateur:
Affecte directement

Je suis d'accord, mais ce n'est pas le sujet de l'exemple. Dans le code, remplacé par un million.