Erreurs, bugs, questions - page 1832

 
Alexander Fedosov:

Ok. Alors comment puis-je modifier les valeurs des paramètres d'entrée à partir du panneau de négociation sans les ouvrir ? Après tout, s'ils sont affichés, cela signifie qu'ils ne peuvent pas être modifiés.

Aucune idée pour être honnête,


mais les externes ne sont pas affichés dans les paramètres d'entrée - est-ce que c'est comme ça depuis longtemps ? vous pouvez le dire depuis le début du terminal mt5

 
Vladislav Andruschenko:

Aucune idée pour être honnête,


mais les externes n'apparaissent pas dans les paramètres d'entrée - est-ce que c'est le cas depuis le début de mt5 ?


Eh bien, il est temps, probablement dans le SD, parce que j'ai une version compilée plus tôt que 1550 et là, à travers le panneau de changement de variables comme extern et sont affichés dans les paramètres d'entrée.
 
Alexander Fedosov:

Eh bien, il doit être temps, apparemment dans le SD, parce que j'ai une version compilée avant 1550 et il ya à travers le panneau de changement de variables comme extern et sont affichés dans les paramètres d'entrée.

Peut-être qu'ils ont été introduits plus tard puis supprimés à nouveau ? Depuis 2012, j'ai compris que extern est remplacé par input et j'ai effectivement tout changé en input.
 

Bonjour, j'ai 2 terminaux mt5 Alpari et mt5 broker Otkritie. \

J'ai 12 outils dans Otkritie + indicateurs installés. Charge CPU 5-10%.

Il y a 3 fenêtres ouvertes dans Alpari avec les mêmes indicateurs et une charge CPU de 25-30%.

Tous deux ont 5000 barres dans les paramètres de l'histoire
même avec tous les graphiques fermés et la fenêtre des symboles de marché fermée, Alpari a 14% de chargement

J'aimerais ouvrir plus de symboles, mais ce problème de chargement ne me permet pas de le faire.

La charge du CPU est de 8-9% lorsque la fenêtre est réduite.

Je suppose que c'est un problème de rendu des graphiques ? Mais alors pourquoi le courtier en découvertes n'a-t-il pas ce problème ?


 
Alexander Fedosov:

Eh bien, il est temps, apparemment en SD, parce que j'ai un compilé sur la version avant 1550 et il ya par le panneau de changement de variables de type externe et affichés dans les paramètres d'entrée.


Ce système a été écrit à l'origine pour ce type de données, la raison pour laquelle vous les avez fait fonctionner comme paramètres d'entrée n'est pas claire.

Variables externes

Lemot-clé extern est utilisé pour déclarer des identifiants de variables comme identifiants d'une classe de mémoire statique avec une durée de vie globale. Ces variables existent au début de l'exécution du programme et sont allouées et initialisées juste après le début de l'exécution du programme.

Il est possible de créer des programmes composés de plusieurs fichiers sources - pour cela, on utilise la directive préprocesseur #include. Les variables déclarées comme extern avec le même type et identifiant peuvent exister dans différents fichiers source du même projet.

Lorsque l'ensemble du projet est compilé, toutes les variables externes ayant le même type et le même identifiant sont associées à la même zone du pool de mémoire des variables globales. Les variables Extern sont utiles pour la compilation séparée des fichiers sources. Les variables externes peuvent être initialisées, mais une seule fois - il est inacceptable qu'il existe plusieurs variables externes initialisées du même type et avec le même identifiant.

 
Qu'est-ce que c'est ?
2017.03.14 09:51:34.866 Trades  use Hosting Service to speed up the execution - 0.31 ms via 'MQL5 Amsterdam 2 (MQL5 Ltd.)' instead of 72.36 ms
 
fxsaber:
Qu'est-ce que c'est ?
Publicité :)
 

Je n'avais pas remarqué les 1554 états de demande avant.

Il est intéressant de noter que, même avant l'état demandé, les données sur les marges sont entièrement disponibles.

 

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

Caractéristiques du langage mql5, subtilités et astuces

fxsaber, 2017.03.14 08:38

  • Dans MT4/5, il n'est pas possible pour les ordres en attente de modifier la magie, le commentaire et le volume.
Serveur de trading FXOpen-MT5, lancez le script
void OnStart()
{
  MqlTradeRequest Request = {0};
  
  Request.action = TRADE_ACTION_PENDING;
  Request.symbol = _Symbol;
  Request.volume = 1;
  Request.price = SymbolInfoDouble(Request.symbol, SYMBOL_ASK) - 100 * _Point;
  Request.type = ORDER_TYPE_BUY_LIMIT;
  Request.type_filling = ORDER_FILLING_IOC;
  Request.comment = "FirstComment";
  
  MqlTradeResult Result;
  
  if (OrderSend(Request, Result))
  {        
    Request.action = TRADE_ACTION_MODIFY;
    Request.order = Result.order;
    Request.type_time = ORDER_TIME_SPECIFIED;
    Request.expiration = TimeCurrent() + 1000;
    Request.comment = "NewComment";    

    OrderSend(Request, Result);  
  }
}

Il place un ordre en attente et le modifie en définissant un nouveau champ Request.comment.

Journal d'exécution du script

2017.03.14 11:33:47.642 Trades  '10127': buy limit 1.00 EURUSD at 1.06314
2017.03.14 11:33:47.775 Trades  '10127': accepted buy limit 1.00 EURUSD at 1.06314
2017.03.14 11:33:47.777 Trades  '10127': buy limit 1.00 EURUSD at 1.06314 placed for execution
2017.03.14 11:33:47.797 Trades  '10127': order #61938 buy limit 1.00 / 1.00 EURUSD at 1.06314 done in 154.608 ms (FirstComment)
2017.03.14 11:33:47.797 Trades  '10127': modify order #61938 buy limit 1.00 EURUSD at 1.06314 sl: 0.00000 tp: 0.00000 -> 1.06314, sl: 0.00000 tp: 0.00000
2017.03.14 11:33:47.930 Trades  '10127': accepted modify order #61938 buy limit 1.00 EURUSD at 1.06314 sl: 0.00000 tp: 0.00000 -> 1.06314, sl: 0.00000 tp: 0.00000
2017.03.14 11:33:47.930 Trades  '10127': modify order #61938 buy limit 1.00 EURUSD at 1.06314 sl: 0.00000 tp: 0.00000 -> 1.06314, sl: 0.00000 tp: 0.00000 placed for execution
2017.03.14 11:33:47.950 Trades  '10127': modify #61938 buy limit 1.00 EURUSD -> price: 1.06314, sl: 0.00000, tp: 0.00000) done in 154.566 ms (NewComment)

Le terminal montre

Maintenant, supprimez l'ordre en attente manuellement et obtenez les écritures de journal appropriées

2017.03.14 11:35:01.198 Trades  '10127': cancel order #61938 buy limit 1.00 EURUSD at 1.06314
2017.03.14 11:35:01.330 Trades  '10127': accepted cancel order #61938 buy limit 1.00 EURUSD at 1.06314
2017.03.14 11:35:01.333 Trades  '10127': cancel order #61938 buy limit 1.00 EURUSD at 1.06314 placed for execution
2017.03.14 11:35:01.465 Trades  '10127': cancel #61938 buy limit 1.00 EURUSD at 1.06314 done in 268.415 ms (NewComment)

Le terminal montre




C'est-à-dire que le commentaire de l'ordre en attente a réellement changé. Mais le terminal ne pouvait le montrer que dans les journaux et l'historique - BAG !

 
2017.03.14 11:33:47.930 Trades  '10127': accepted modify order #61938 buy limit 1.00 EURUSD at 1.06314 sl: 0.00000 tp: 0.00000 -> 1.06314, sl: 0.00000 tp: 0.00000
2017.03.14 11:33:47.930 Trades  '10127': modify order #61938 buy limit 1.00 EURUSD at 1.06314 sl: 0.00000 tp: 0.00000 -> 1.06314, sl: 0.00000 tp: 0.00000 placed for execution
2017.03.14 11:33:47.950 Trades  '10127': modify #61938 buy limit 1.00 EURUSD -> price: 1.06314, sl: 0.00000, tp: 0.00000) done in 154.566 ms (NewComment)

La ligne mise en évidence ne permet pas du tout de savoir ce qu'il faut modifier dans l'ajournement. Cependant, la modification est réussie.

Ce n'est pas une erreur, car il s'agissait en fait de modifier le délai d'expiration. Mais vous ne verrez rien à ce sujet dans le journal. Veuillez y ajouter plus d'informations.

Raison: