Erreurs, bugs, questions - page 2

 
Interesting:

Cela fonctionne, testé sur trois maisons de courtage (recherche de tous les instruments négociés sur la maison de courtage).

Essayez comme ceci

  for(int li=0; li<SymbolsTotal(true); li++)
  {
  PrintFormat(SymbolName(li,true));
  } 
Pour OnTick, ce n'est qu'un exemple.
 
ddd06:

C'est ce que je dis : le vrai ne marche pas !

  for(int li=0; li<SymbolsTotal(false); li++)
  {
  PrintFormat("%s",SymbolName(li,false));
  }
C'est la bonne façon de procéder, puisque vous utilisez la fonction pour sortir l'information.
PrintFormat(....) не путать с Print(.......)
 
sergey1294:
C'est la bonne façon de procéder, car vous utilisez une fonction pour sortir l'information.
Merci, je ne les ai pas compris, mais la question reste posée :)
 
ddd06:
Merci, je ne les ai pas compris, mais la question reste posée :)

Sur des cotations réelles (réelles, démo et probablement bidding) ce code fonctionne bien testé sur 3 terminaux (appelé pendant l'initialisation)

  for(int li=0; li<SymbolsTotal(true); li++)
  {
  //PrintFormat(SymbolName(li,true));
  //Так конечно правильней, но первый вариант тоже проходит за милую душу...
  PrintFormat("%s",SymbolName(li,true));
  } 

J'ai montré 15 paires qui sont en révision sur le marché.


Dans un test normal, seuls les symboles spécifiés dans les paramètres du testeur sont pris en compte (si d'autres symboles sont nécessaires, ils doivent être considérés comme faux et comme un tableau de mes symboles), dans "tous les symboles sélectionnés ...", l'optimisation montrera probablement tous les symboles (mais probablement en les changeant un par un).


PS

Si votre EA est multidevise, vous devez avoir votre propre liste de symboles dans le testeur et la comparer avec une liste de symboles présentée dans votre société de courtage.

 

C'est cool, mais je pense que c'est un oubli.

Merci d'avoir trouvé la solution.

Intéressant, qu'en est-il du premier post, jusqu'à présent personne n'a répondu, type de pourrait écrire - Nous allons corriger dans la prochaine construction.

 

Le nombre d'ordres et de transactions dans l'historique n'est pas renvoyé :

TerminalInfoInteger(TERMINAL_BUILD) 279
void OnStart()
  {
    Print("+---------------------------------------------------------+");    
    Print("PositionsTotal() ",PositionsTotal());
    Print("HistoryDealsTotal() ",HistoryDealsTotal());
    Print("OrdersTotal() ",OrdersTotal());
    Print("HistoryOrdersTotal() ",HistoryOrdersTotal());    
  }

amorçage

Historique des commandes

 
Urain:

Le nombre d'ordres et de transactions dans l'historique n'est pas renvoyé :


Vous devez d'abord charger l'historique en utilisant la fonction :

HistorySelect(0,TimeCurrent())
 
Valmars:

Je dois d'abord télécharger l'historique avec la fonction :


Oui merci, ça marche, je vais continuer à lire le manuel :o)

Je ne pouvais pas penser qu'il y avait un flux séparé pour l'utilisateur et l'EA,

Je pensais que si l'historique est affiché, cela signifie qu'il doit être lu par le conseiller expert,

Mais ceci est plus correct - le terminal crée son propre espace pour les Expert Advisors,

Le terminal crée son propre espace pour les Expert Advisors,

Ceci est similaire à ce qui était implémenté dans mql-4 sous la forme d'un tampon qui était périodiquement chargé avec l'historique.

 
Urain:

Oui merci, tout fonctionne, je vais continuer à lire le manuel :o)

Je ne pouvais pas penser qu'il y avait une séparation des fils de discussion pour l'utilisateur et l'EA,

Je pensais que si l'historique est affiché, cela signifie qu'il doit être lu par un EA,

Mais ceci est plus correct - le terminal crée son propre espace pour les Expert Advisors,

la sélection des informations s'effectue dans son propre format et est beaucoup plus rapide,

L'analogue de cela était implémenté dans mql-4 sous la forme d'un tampon qui était périodiquement chargé avec l'historique.


Malheureusement, l'espace pour les scripts, les EAs et le terminal est commun. Vous pouvez vous en assurer si vous appelez l'historique du terminal pour le dernier jour (day) et si vous exécutez ensuite la fonction ci-dessus à partir du script ou de l'Expert Advisor. Et vous verrez que l'historique dans le terminal est également devenu "Tout l'historique". Je pense que c'est un défaut du terminal. Imaginez que vous avez plusieurs scripts de conseiller expert en cours d'exécution, et que chacun d'entre eux demande son propre historique. L'historique dans le terminal rebondira (visuellement). Il faut que l'onglet "Historique" affiche l'état actuel, indépendamment des conseillers experts.

En outre, l'historique dans le terminal est souvent mis à jour avec un certain retard, c'est-à-dire qu'une transaction est exécutée, une position est fermée mais elle n'apparaît pas dans l'onglet "Historique". Une fois, j'ai délibérément attendu que l'historique soit mis à jour. Il s'agissait de minutes..... Je n'ai jamais attendu. Il n'apparaît qu'après avoir exécuté une commande contextuelle pour demander l'historique à partir de l'onglet "Historique" ou un script demandant l'historique.

 
ddd06:

C'est cool, mais je pense que c'est un oubli.

Merci d'avoir trouvé la solution.

Il est intéressant de noter qu'avec le premier post, personne n'a répondu, ils ont pu écrire - Nous allons le corriger dans la prochaine version.

Le défaut est que vous utilisez PrintFormat sans utiliser explicitement la chaîne de format.

Que devons-nous corriger dans la prochaine version ?

Документация по MQL5: Общие функции / Print
Документация по MQL5: Общие функции / Print
  • www.mql5.com
Общие функции / Print - Документация по MQL5