Erreurs, bugs, questions - page 677

 
J'ai oublié quelque chose. Qui peut me dire comment utiliser correctement #import pour une bibliothèque qui se trouve dans un sous-répertoire du dossier principal ?
 
danielalmaty:

Bonjour, pouvez-vous me donner un indice ?


La différence est que dans la version originale, l'objet est décrit comme suit :

CiADX *m_ADX;

c'est-à-dire que l'objet est dynamique. Et dans le vôtre :

CiADX m_ADX;

Dans ce cas, la méthode devrait ressembler à ceci :

//+------------------------------------------------------------------+
//| Create ADX indicator.                                            |
//| INPUT:  indicators -pointer of indicator collection.             |
//| OUTPUT: true-if successful, false otherwise.                     |
//| REMARK: no.                                                      |
//+------------------------------------------------------------------+
bool CSignalMY_MA_ADX::InitADX(CIndicators* indicators)
  {
//--- add ADX indicator to collection
   if(!indicators.Add(m_ADX))
     {
      printf(__FUNCTION__+": error adding object of the ADX");
      return(false);
     }
//--- initialize ADX indicator
   if(!m_ADX.Create(m_symbol.Name(),m_period,m_period_ADX))
     {
      printf(__FUNCTION__+": error initializing object of the ADX");
      return(false);
     }
//--- ok
   return(true);
  }
 
Interesting:
J'ai oublié quelque chose. Qui peut me dire comment utiliser correctement #import pour la bibliothèque qui est située dans le sous-répertoire du dossier principal ?

Dans MT4, cela fonctionne comme suit : #import "TrendLine\\\MemoryDLL.dll"
 

https://www.mql5.com/ru/forum/23/page15

MetaTester : Modification du fonctionnement de la méthode de test "par les prix ouverts". Comme précédemment, le OnTick de l'Expert Advisor est déclenché uniquement à l'ouverture de la barre, mais au lieu des ticks M1 OHLC, il joue les états high, low et close de la barre testée. De ce fait, les stops et les ordres en attente peuvent se déclencher à un prix différent de celui spécifié. Cela nous a permis d'obtenir une accélération multiple des tests.

Peut-on conserver l'ancien mode en même temps que le nouveau ? Chacun pourra choisir un compromis entre vitesse et qualité.
 
papaklass:

Pour la qualité, le mode "tous les tics" ne vous conviendrait-il pas ?

Dans certains cas, non. Je n'aime vraiment pas le mode dans lequel les transactions peuvent ne pas être exécutées au prix indiqué (et ce phénomène sera considéré comme la norme).

Par conséquent, je vais personnellement soutenir la demande de Konstantin.

 
papaklass:

Que voulez-vous dire par "pas au prix annoncé" ? Clarifiez.

Lisez le texte plus attentivement.

MetaTester : Modification du fonctionnement de la méthode de test "par prix d'ouverture". Comme précédemment, le OnTick du Conseiller Expert est lancé à l'ouverture de la barre uniquement, mais au lieu des ticks M1 OHLC, les états high, low et close de la barre testée sont joués. De ce fait , les stops et les ordres en attente peuvent se déclencher à un prix différent de celui spécifié. Cela nous a permis d'obtenir une accélération multiple des tests.

Comme je suis accro à l'utilisation des ordres en attente, ce point est très important pour moi, et je ne veux pas que les ordres en attente se déclenchent"pas au prix indiqué".

Avec cette approche, ce type de test ne présente absolument aucun intérêt pour moi.

C'est pourquoi je suppose que la variante prévoyant deux types de tests "par prix d'ouverture" (sur les barres minutes et sur la barre testée) sera une solution tout à fait raisonnable.

 
papaklass:

Ouais, je n'aime pas ce point non plus. Sur la barre suivante, vous pouvez simplement vérifier si l'ordre en attente est dans la fourchette haute - basse de la barre précédente. Si c'est le cas, alors il a fonctionné aux prix fixés.

La question ne porte pas sur le contrôle, il peut être effectué si on le souhaite. La question est de savoir pourquoi. En fait, une telle implémentation ne serait pas acceptable pour moi personnellement dans le mode "Open prices", et donc, en utilisant le mode "all ticks", j'obtiendrai d'énormes ralentissements. Ou je ne sais pas quel sera le résultat d'une exécution "rapide".
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5
 

Il existe un exemple de MovingAverages qui fonctionne de la même manière (sur la version 607 actuelle) en mode M1 OHLC et en mode Open Prices. Pourquoi ? Parce qu'il fonctionne strictement au début d'une mesure - il y a un contrôle spécial.

Définissez la même condition dans votre EA et utilisez M1 OHLC. Et vous aurez de la chance.

 
stringo:

Il existe un exemple de MovingAverages qui fonctionne de la même manière (sur la version 607 actuelle) en mode M1 OHLC et en mode Open Prices. Pourquoi ? Parce qu'il fonctionne strictement au début d'une mesure - il y a un contrôle spécial.

Si vous définissez la même condition dans votre EA et utilisez M1 OHLC. Et vous serez heureux.


1. Eh bien, oui, il peut faire du commerce comme il se doit. Mais c'est intégré dans sa stratégie. Je ne l'ai pas intégré à ma stratégie, j'utilise des ordres en attente.

Et ce n'est pas clair en ce qui concerne les arrêts - depuis quand doivent-ils (peuvent-ils) fonctionner à des prix qui ne sont pas affichés ?

Je ne serai donc pas heureux, du moins pas si je ne passe pas à "Tous les tics".

Et si je vérifie l'existence d'une nouvelle barre et que je négocie uniquement à son ouverture, la stratégie sera différente.

Est-ce que j'en ai besoin ?

Обработчик события "новый бар"
Обработчик события "новый бар"
  • 2010.10.04
  • Konstantin Gruzdev
  • www.mql5.com
Язык программирования MQL5 позволяет решать задачи на совершенно новом уровне. Даже те задачи, которые уже вроде имеют решения, благодаря объектно-ориентированному программированию могут подняться на качественно новый уровень. В данной статье специально взят простой пример проверки появления нового бара на графике, который был преобразован в достаточно мощный и универсальный инструмент. Какой? Читайте в статье.
 
Interesting:

Eh bien, oui, il pourrait commercer correctement. Mais il l'a dans sa stratégie. Et je ne l'ai pas dans ma stratégie, je négocie sur des ordres en attente.

Et je ne comprends pas les arrêts - depuis quand doivent-ils (peuvent-ils) travailler à des prix qui ne sont pas fixés ?

Je ne serai donc pas heureux, du moins pas si je ne passe pas à "Tous les tics".

Et si je vérifie l'existence d'une nouvelle barre et que je ne négocie qu'à son ouverture, alors la stratégie sera complètement différente.

En ai-je besoin ?

Non, si j'ai bien compris, ils vous ont proposé un moyen "de trader aux prix d'ouverture dans le testeur, mais en tenant compte des ticks". Vous avez besoin d'une telle option dans le testeur, n'est-ce pas ? Vous pouvez reproduire les résultats de son travail en complétant un peu votre code et en le faisant fonctionner en mode M1 OHLC (vous savez, comme si vous introduisiez une option/un interrupteur dans votre EA pour le tester)... Et même le faire fonctionner en mode "all ticks".