Erreurs, bugs, questions - page 2908

 
Stanislav Korotky:

S'il existe un fil plus approprié pour les questions relatives à la base de code, déplacez-y la question. Ces "bugs" sont trop longs et probablement pas lus très attentivement par MQ.

Un tel problème. Je souhaite publier un module pour MQL Wizard afin de générer des signaux universels, c'est-à-dire personnalisables par l'utilisateur et utilisant des indicateurs arbitraires, plutôt que l'ensemble limité fourni avec la bibliothèque standard. J'ai joint le conseiller expert généré en utilisant le nouveau module comme code mq5. Mais bien sûr, il n'y a pas de signaux codés en dur dans le module, car tout l'intérêt du module est la personnalisation. Par conséquent, le conseiller expert n'effectue pas de transactions et n'est pas vérifié automatiquement.

Quelles sont les options pour résoudre le problème ?

J'ai contourné l'ouverture des ordres de l'EA par le temps, en ouvrant un ordre avec SL et TP dans OnInit. dans mt4. J'ai passé la validation il y a six mois.

J'ai également fixé la condition suivante : si elle est dans le testeur, nous ouvrons une commande, sinon, nous la passons. La validation est effectuée dans le testeur.

 
Stanislav Korotky:

S'il existe un fil de discussion plus approprié pour les questions de base de code, déplacez-y la question. Ces "bugs" sont trop longs et probablement pas lus très attentivement par MQ.

Un tel problème. Je souhaite publier un module pour MQL Wizard afin de générer des signaux universels, c'est-à-dire personnalisables par l'utilisateur et utilisant des indicateurs arbitraires, plutôt que l'ensemble limité fourni avec la bibliothèque standard. J'ai joint le conseiller expert généré en utilisant le nouveau module comme code mq5. Mais bien sûr, il n'y a pas de signaux codés en dur dans le module, car tout l'intérêt du module est la personnalisation. Par conséquent, le conseiller expert n'effectue pas de transactions et n'est pas vérifié automatiquement.

Quelles sont les options pour résoudre le problème ?

Je pensais qu'il serait possible de créer un wrapper de déclencheur en utilisant la directive #property tester_set, mais il s'avère qu'elle ne définit pas automatiquement ces paramètres par défaut, mais ajoute seulement un élément de menu au testeur pour une sélection manuelle.

 
Stanislav Korotky:

Je pensais qu'il serait possible de faire un wrapper de lanceur utilisant la directive #property tester_set, mais il s'avère qu'elle ne définit pas automatiquement ces paramètres par défaut, mais ajoute seulement un élément de menu au testeur pour une sélection manuelle.

J'ai également essayé la directive #property tester_file "DefaultSettings.tpl". Le fichier spécifié est copié sur l'agent dans le dossier racine, mais n'est pas appliqué automatiquement (du moins en ce qui concerne les paramètres du conseiller expert).

 
Aleksei Ostroborodov:
L'évaluation du produit, le nombre de votes et d'avis ne sont pas affichés sur la place de marché, bien qu'ils soient présents dans la description https://www.mql5.com/en/market/.
Merci pour la solution à ce cas spécifique.
Mais qu'en est-il des autres produits ? J'ai la même situation avec quatre autres EA. Dois-je poster un lien à chaque fois ?
 

Le testeur passe à l'onglet "paramètres" pendant l'optimisation de l'EA à chaque nouvelle exécution, il est impossible de contrôler le statut des agents, il passe simplement à un autre onglet. Je l'ai remarqué aujourd'hui, actuellement build 2697.

Distribue un nombre impair de tâches aux agents locaux et aucune d'entre elles n'est exécutée.



Des idées ?

Как в MetaTrader 5 быстро разработать и отладить торговую стратегию
Как в MetaTrader 5 быстро разработать и отладить торговую стратегию
  • www.mql5.com
Скальперские автоматические системы по праву считаются вершиной алгоритмического трейдинга, но при этом они же являются и самыми сложными для написания кода. В этой статье мы покажем, как с помощью встроенных средств отладки и визуального тестирования строить стратегии, основанные на анализе поступающих тиков. Для выработки правил входа и...
 
Comment puis-je obtenir le tick qui était avant un temps donné à travers CopyTicks ?
 
fxsaber:
Comment obtenir le tick qui était avant un temps donné via CopyTicks ?

Eh bien, si les barres maximales de la fenêtre sont illimitées,

c'est probablement quelque chose comme ça :

MqlTick Prev_Tick(ulong t) {  // t - время в миллисекундах
   MqlTick ticks[];
   int bar =iBarShift(_Symbol,PERIOD_M1,t/1000); 
   if (bar>=0 && CopyTicksRange(_Symbol,ticks,COPY_TICKS_ALL,iTime(_Symbol,PERIOD_M1,bar)*1000,t)>0) 
      return ticks[ArraySize(ticks)-1];
   else {
      MqlTick tick;  // если до заданного времени нет тиков возвращаем пустой тик.
      return tick;
   }
}

vérifié, mais pas de manière biaisée.

En cas de contournement des barres(iBarShift), si l'heure tombe un week-end, trouver le tick le plus proche peut être assez coûteux.


 
Nikolai Semko:

Si vous vous contentez de barres (iBarShift), il peut être assez coûteux de trouver le tick le plus proche si l'heure tombe un week-end.

Oui, la tique à droite est élémentaire, la tique à gauche est horrible.

 
fxsaber:

Oui, la tique de droite est élémentaire, celle de gauche est horrible.

Yep.
Ce qui manque, c'est que dans la fonction

int  CopyTicks( 
   string           symbol_name,           // имя символа 
   MqlTick&         ticks_array[],         // массив для приёма тиков 
   uint             flags=COPY_TICKS_ALL,  // флаг, определяющий тип получаемых тиков 
   ulong            from=0,                // дата, начиная с которой запрашиваются тики 
   uint             count=0                // количество тиков, которые необходимо получить 
   );

le paramètre count est int et cette fonction supporterait des valeurs de comptage négatives, c'est-à-dire à l'envers.

 
Nikolai Semko:

Yep.
Ce qui manque, c'est que la fonction

Le paramètre count serait int et la fonction prendrait en charge les valeurs de count négatives, c'est-à-dire à l'envers.

D'accord.