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

 
J'ai défini les lignes pour voir où l'EA fonctionnera, j'ai remplacé les lignes par une condition pour placer et modifier les ordres et l'EA a fonctionné. Pour être honnête, je suis content que ça ait marché. C'est ma première AE indépendante. J'ai compris pourquoi le testeur n'a mis qu'une seule ligne ;))
 
Alexey Viktorov:

Vérifiez le croisement des MA non pas sur les barres 1 et 2, mais sur les barres 3 et 4. Et s'il y a un croisement, vérifiez les valeurs AO sur 1 et 2 barres.

Merci. Je vais continuer à essayer.
 

J'ai un autre mal de tête - expliquer comment écrire la touche KEY_TILDE pour sélectionner l'objet Rectangular Label, afin qu'il puisse être sélectionné et déplacé à un autre endroit sur le graphique, je n'y arrive pas. J'ai joint une capture d'écran avec un exemple sur l'indicateur Fork Neo en bas. J'ai compris la souris, mais je ne peux pas utiliser les touches.

int OnInit()
  {
RectLabelCreate(0,"RectLabel",0,10,200,149,143,C'55,55,55',BORDER_SUNKEN,CORNER_LEFT_LOWER,C'55,55,55',STYLE_SOLID,1,false,false,true,0);

   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,         // идентификатор события
                  const long& lparam,   // параметр события типа long
                  const double& dparam, // параметр события типа double
                  const string& sparam) // параметр события типа string
  {

    if(id==CHARTEVENT_KEYDOWN)
     {
      switch(int(lparam))
        {
         case KEY_TILDE:
            Print("Нажата KEY_TILDE");
            break;
        }
        ChartRedraw(); 
     }

  }
Dossiers :
01.jpg  8 kb
02.jpg  3 kb
 
DYM:

J'ai un autre mal de tête - expliquer comment écrire la touche KEY_TILDE pour sélectionner l'objet Rectangular Label, afin qu'il puisse être sélectionné et déplacé à un autre endroit sur le graphique, je n'y arrive pas. J'ai joint une capture d'écran avec un exemple sur l'indicateur Fork Neo en bas. J'ai compris la souris, mais je ne peux pas utiliser les touches.

    if(id==CHARTEVENT_KEYDOWN)
     {
      switch(int(lparam))
        {
         case KEY_TILDE:
         ObjectSetInteger(0,"RectLabel",OBJPROP_SELECTABLE,true); 
         Print("Нажата KEY_TILDE");
         break;
        }
        ChartRedraw(); 
     }
 
MakarFX:
Merci beaucoup pour le conseil. J'ai compris que je devais utiliser la résolution et la sélection, mais je n'arrivais pas à trouver comment l'appliquer. Merci encore.
 
Chers collègues, je me trouve dans une situation étrange. Cela fonctionne bien dans le testeur, il est configuré de telle sorte qu'un ordre aléatoire est ouvert instantanément lorsqu'il est ajouté au graphique. C'est optimal pour le GBPUSD. Cependant, il n'ouvre pas d'ordres sur la démo. J'ai un grand écart, pas d'erreurs, mais, encore une fois, les ordres n'ont pas été ouverts pendant une journée, mais j'ai bien négocié dans la même journée en utilisant les ticks téléchargés dans le testeur. Tous mes paramètres MetaTrader sont normaux, mon visage est souriant et la connexion avec le serveur du courtier est également normale. Je dois regarder ce qui ne va pas avec le code. Bien que ce code n'ait pas besoin d'inductions et que les paramètres soient valides par ses conditions pour sauter les ordres d'ouverture. Je suis perplexe.
Dossiers :
BlackJack.mq4  47 kb
 
Порт-моне тв:
Chers collègues, j'ai terminé mon conseiller expert. Il fonctionne bien dans le testeur de stratégie mais a été configuré de telle sorte qu'il ouvre un ordre aléatoire dès qu'il est ajouté au graphique. C'est optimal pour le GBPUSD. Cependant, il n'ouvre pas d'ordres sur la démo. J'ai un grand écart, pas d'erreurs, mais, encore une fois, les ordres n'ont pas été ouverts depuis 24 heures, mais j'ai bien négocié dans la même journée en utilisant les ticks téléchargés dans le testeur. Tous mes paramètres MetaTrader sont normaux, mon visage est souriant et la connexion avec le serveur du courtier est également normale. Je dois regarder ce qui ne va pas avec le code. Bien que ce code n'ait pas besoin d'inductions et que les paramètres soient valides par ses conditions pour sauter les ordres d'ouverture. Je suis perplexe.

Il y a beaucoup de goulots d'étranglement. Le code est mal écrit - la manipulation des données est extrêmement négligée. Besoin de remaniement

 
Nikita Chernyshov:

Il y a beaucoup de goulots d'étranglement. Le code est mal écrit - la manipulation des données est extrêmement négligée. Il faut le remanier.

Votre évaluation abstraite ne révèle pas la cause.

 
Порт-моне тв:

quels putains de goulots d'étranglement...quel @@#$ refactor

le code a été écrit "pour mon seul amour, pour la bière et pendant que je m'en souviens" :-)

honnêtement - je l'ai téléchargé, je l'ai regardé en diagonale, je ne le comprends pas...

----

Tout code est documenté/commenté en cas d'amnésie professionnelle personnelle soudaine. C'est là que vous avez tout oublié, sauf le langage de programmation.

Personne ne va analyser un algorithme inconnu mis en œuvre de manière inconnue. Gratuitement, du moins. Pour de l'argent, ils vont juste le réécrire.

Vous êtes l'un d'entre eux. Après une pause de deux ou trois mois, vous ne vous souviendrez plus pourquoi il y a tant de variables dans OnTick et ce que vous vouliez lire à partir de celles-ci.

 
Maxim Kuznetsov:

quels putains de goulots d'étranglement...quel @@#$ refactor

le code a été écrit "pour mon moi bien-aimé, pour la bière et pendant que je m'en souviens" :-)

honnêtement - je l'ai téléchargé, je l'ai regardé en diagonale, je ne le comprends pas...

----

Tout code est documenté/commenté en cas d'amnésie professionnelle personnelle soudaine. C'est là que vous avez tout oublié, sauf le langage de programmation.

Personne ne va analyser un algorithme inconnu mis en œuvre de manière inconnue. Gratuitement, du moins. Pour de l'argent, ils vont juste le réécrire.

Vous êtes l'un d'entre eux. Après une pause de deux ou trois mois, vous ne vous souviendrez plus pourquoi il y a tant de variables dans OnTick et ce que vous vouliez lire à partir de celles-ci.

Il y a beaucoup de choses inutiles là-dedans, pour tester, disons, différentes fonctions. Il ne devrait pas interférer et ne l'a pas fait dans d'autres EA, qui fonctionnent tout simplement. Je pense que j'ai mis une parenthèse au mauvais endroit ou quelque chose comme ça.