Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 895

 
lil_lil:

Pas vraiment, même si cela sera utile pour le test. Je veux que l'indicateur soit attaché au graphique en ligne après que l'EA y soit attaché. Est-ce possible ?

Je ne l'ai pas essayé. En théorie, il est peu probable que cela fonctionne. C'est peut-être la raison pour laquelle je ne l'ai pas encore essayé. Cela se présente comme suit : à chaque fois que l'EA est chargé, le modèle est appliqué, puis l'EA est lancé à nouveau. Et tout se répète, le modèle est appliqué, une nouvelle copie de l'EA est lancée et ainsi de suite.

Il serait peut-être préférable, si vous le voulez tellement que vous avez mal aux dents, de créer un script qui applique le modèle avec l'EA et les indicateurs.

 
Merci à tous pour votre participation. Je vais essayer d'appeler ChartApplyTemplate() dans le terminal global et d'attribuer une valeur à une variable, mais avant d'appeler ChartApplyTemplate(), je vais vérifier sa valeur.
 

Salut,

Comment puis-je créer des barres en utilisant 30 ticks de chaque PERIOD_M1?

Je veux créer un nouveau personnage pour mon analyse.

 
Bonjour, aidez-moi à résoudre un problème, j'ai des difficultés. J'ai besoin de prescrire dans le code de l'EA, travaillant sur le graphique actif du symbole 1, de dessiner des lignes horizontales dans un autre graphique, NON actif, du symbole 2. Cela signifie que le graphique du symbole 2 est ouvert à l'écran. Par exemple, pour le deuxième symbole SUI30, j'ai fait ceci :
double SUop0 = iOpen("SUI30",PERIOD_H1,0);
double lp = SUop0-67;
double hp = SUop0+67; 

   Fun_New_Bar();
      if(New_Bar)      
         {
   ObjectCreate("SUI30","lineForBuy",OBJ_HLINE,0,0,lp);
   ObjectCreate("SUI30","lineForSell",OBJ_HLINE,0,0,hp);
         }
mais le méta-éditeur donne un message de conversion implicite de 'string' en 'number'. Qu'est-ce que je fais de mal, et comment le résoudre ? Merci.

 
novichok2018:
Bonjour, aidez-moi à résoudre un problème, je n'y arrive pas. Dans le code du conseiller expert, qui fonctionne sur le graphique actif du symbole 1, je dois prescrire le dessin de lignes horizontales dans un autre graphique, NON actif, du symbole 2. Cela signifie que le graphique du symbole 2 est ouvert à l'écran. Par exemple, pour le deuxième symbole SUI30, j'ai fait ceci : mais le méta-éditeur donne un message de conversion implicite de 'string' en 'number'. Qu'est-ce que je fais de mal, et comment le résoudre ? Merci.

Nous devons utiliser une autre surcharge de fonction

bool  ObjectCreate( 
   long          chart_id,      // идентификатор графика 
   string        object_name,   // имя объекта 
   ENUM_OBJECT   object_type,   // тип объекта 
   int           sub_window,    // индекс окна 
   datetime      time1,         // время первой точки привязки 
   double        price1,        // цена первой точки привязки 
   ... 
   datetime      timeN=0,       // время N-точки привязки 
   double        priceN=0       // цена N-точки привязки 
   );

Et cet identifiant de graphique devrait être trouvé en essayant d'énumérer les graphiques à partir de ChartFirst() ;

long  ChartNext( 
   long  chart_id      // идентификатор графика
   );

Exemple tiré de la documentation

//--- переменные для идентификаторов графиков 
   long currChart,prevChart=ChartFirst(); 
   int i=0,limit=100; 
   Print("ChartFirst = ",ChartSymbol(prevChart)," ID = ",prevChart); 
   while(i<limit)// у нас наверняка не больше 100 открытых графиков 
     { 
      currChart=ChartNext(prevChart); // на основании предыдущего получим новый график 
      if(currChart<0) break;          // достигли конца списка графиков 
      Print(i,ChartSymbol(currChart)," ID =",currChart); 
      prevChart=currChart;// запомним идентификатор текущего графика для ChartNext() 
      i++;// не забудем увеличить счетчик 
     }
 
Alexey Viktorov:

Nous devons utiliser une surcharge de fonction différente

Merci, j'essaie de comprendre.

 
Alexey Viktorov:

Nous devons utiliser une autre surcharge de fonction

Et cet identifiant de graphique devrait être trouvé en essayant d'énumérer les graphiques à partir de ChartFirst() ;

Un exemple tiré de la documentation

Malheureusement, mes tentatives de sortie n'ont rien donné. J'ai simplement ajouté les erreurs liées àChartNext() aux messages existants. Je ne comprends pas le but.

 
novichok2018:

Malheureusement pour moi, essayer de comprendre n'a mené à rien. J'ai juste ajouté les erreurs liées à l'application ChartNext() aux messages existants. Je ne comprends pas le but.

Vous pouvez utiliser un ID de graphique constant pour faciliter les choses. Écrire un script

Print(ChartID());

Exécutez-le sur le graphique sur lequel vous voulez dessiner ces lignes. Ensuite, écrivez cette valeur dans la fonction comme l'ID du graphique.

Et du côté positif, l'exemple de la documentation, ce n'est pas une fonction toute faite, comme si on la prenait et qu'on l'utilisait. Il est nécessaire de vérifier le symbole et la période dans la boucle. Si le bon est trouvé, alors on sort de la boucle et on utilise l'identifiant obtenu.

 

il existe une constante dans l'inline OPENCL cl_ et elle est égale à #define CL_DBL_MAX 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0 en revérifiant le degré de deux dans 1024 obtenu. 2^1024 = 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216 Et en dessous, il y a le nombre de pi

après

#define CL_M_PI 3.141592653589893115998

3.141592653589793238462643383279502884197169

expliquer pourquoi ? ???

 
Alexey Viktorov:

Vous pouvez utiliser un identifiant de graphique constant pour vous faciliter la tâche. Écrire un script

Exécutez-le sur le graphique sur lequel vous voulez dessiner ces lignes. Ensuite, écrivez cette valeur dans la fonction comme ID du graphique.

Et du côté positif, l'exemple de la documentation n'est pas une fonction toute faite, il suffit de la prendre et de l'utiliser. Il est nécessaire dans la boucle de vérifier le symbole et la période. Si le bon est trouvé, alors on sort de la boucle et on utilise l'identifiant obtenu.

Merci. Tout a fonctionné avec le scénario, il dessine les lignes.