Questions des débutants MQL5 MT5 MetaTrader 5 - page 949

 
Vasiliy Sokolov:

Il s'agit d'une méthode de modèle. Le type de paramètre qu'il contient sera adapté en fonction du type passé entre ces crochets. Le type est déterminé statiquement, au moment de la compilation. Pour en savoir plus, consultez la rubrique "Modèles de fonctions et de classes": https://www.mql5.com/ru/docs/basis/oop/templates.

Merci !

 
Artyom Trishkin:
  1. Un nouveau tick est généré - la condition est remplie, par exemple, l'indication du motif sera dessinée sur ce tick et une alerte sera générée.
    1. Besoin d'une fonction pour recevoir une condition avec le drapeau de cette condition mis en place par les deux paragraphes suivants.
    2. Besoin d'une fonction de dessin de motifs
    3. Besoin d'une fonction pour envoyer une alerte (pas nécessairement une fonction - il existe des fonctions standard pour seulement l'alerte, seulement l'e-mail et seulement le push)
  2. Après que la condition ci-dessus soit remplie, nous devons arrêter l'exécution des répétitions multiples de la même action de l'action ci-dessus jusqu'à une période de temps égale à...
    1. S'il y a un drapeau indiquant que trois étapes de l'étape 1 ci-dessus sont déjà effectuées, alors ne faites rien - passez à l'étape 3, sinon passez à l'étape 1.
  3. Dès que la barre passe à la suivante, redémarrez la condition jusqu'à la prochaine période décrite ci-dessus.
    1. Nous avons besoin d'une fonction pour définir une nouvelle barre. Dès qu'une nouvelle barre a été définie, passez au point 1, sinon passez au point 2.

Merci, je vais essayer de le faire

 
Pouvez-vous me dire si les fonctions TimeLocal et TimeCurrent peuvent donner l'heure avec précision en millisecondes ?
 

Bonjour !

Le conseiller donne des avertissements :

utilisation possible d'une variable non initialisée 'hv1' test_gme.mq5 154 23
0 erreur(s), 14 avertissement(s), temps de compilation : 1306 msec 1 15

Voici le code : Quelle est l'erreur ?

//============================================================================================================
   int GetSignal (string sb)
  {
    int    dig=int(SymbolInfoInteger(pos.Symbol(), SYMBOL_DIGITS));
   double vpoint  = SymbolInfoDouble(sb,SYMBOL_POINT);
   double op1,op2,op3,op4,op5,op6,op7,
              cl1,
              hi1,hi2,hi3,hi4,hi5,hi6,hi7,
              lo1,lo2,lo3,lo4,lo5,lo6,lo7;
 double hv1,hv2,hv3,hv4,hv5,hv6,hv7;
 double gr1,gr2,gr3,gr4,gr5,gr6,gr7;
 //pp=NormalizeDouble(pp, dg);
 // op=NormalizeDouble(pos.PriceOpen() , dg);
  hv1=NormalizeDouble(hv1, dig);
  hv2=NormalizeDouble(hv2, dig);
  hv3=NormalizeDouble(hv3, dig);
  hv4=NormalizeDouble(hv4, dig);
  hv5=NormalizeDouble(hv5, dig);
  hv6=NormalizeDouble(hv6, dig);
  hv7=NormalizeDouble(hv7, dig);
  gr1=NormalizeDouble(gr1, dig);
  gr2=NormalizeDouble(gr2, dig);
  gr3=NormalizeDouble(gr3, dig);
  gr4=NormalizeDouble(gr4, dig);
  gr5=NormalizeDouble(gr5, dig);
  gr6=NormalizeDouble(gr6, dig);
  gr7=NormalizeDouble(gr7, dig);
  //=================================================================================================
      double ma_sred1 =NormalizeDouble(iMA(sb,PERIOD_M5,sr,0,MODE_SMA,PRICE_CLOSE),dig);      //for M5
   //==============================================================================================
           op1=NormalizeDouble(iOpen(sb,PERIOD_M5,1),dig);       //m5
           op2=NormalizeDouble(iOpen(sb,PERIOD_M5,2),dig);      //m10 sintez
           op3=NormalizeDouble(iOpen(sb,PERIOD_M5,3),dig);     //m15 si
           op4=NormalizeDouble(iOpen(sb,PERIOD_M5,4),dig);    //m20 si
           op5=NormalizeDouble(iOpen(sb,PERIOD_M5,5),dig);   //m25 si
           op6=NormalizeDouble(iOpen(sb,PERIOD_M5,6),dig);  //m30 si
           op7=NormalizeDouble(iOpen(sb,PERIOD_M5,7),dig); //m35 si
 //==================================================================================
       cl1=NormalizeDouble(iClose(sb,PERIOD_M5,1),dig);     //m5
 //=================================================================================   
  //   hay1=NormalizeDouble(iHigh(sb,PERIOD_M5,30),dig);
    
     //   niz1=NormalizeDouble(iLow(sb,PERIOD_M5,30),dig);
       
 //======================================================================================
            lo1=NormalizeDouble(iLow(sb,PERIOD_M5,1),dig);                                      //m5
            lo2=NormalizeDouble(MathMin(iLow(sb,PERIOD_M5,1),iLow(sb,PERIOD_M5,2)),dig);  //m10
            lo3=NormalizeDouble(MathMin(lo2,iLow(sb,PERIOD_M5,3)),dig);                       //m15 
            lo4=NormalizeDouble(MathMin(lo3,iLow(sb,PERIOD_M5,4)),dig);                      //m20
            lo5=NormalizeDouble(MathMin(lo4,iLow(sb,PERIOD_M5,5)),dig);                     //m25
            lo6=NormalizeDouble(MathMin(lo5,iLow(sb,PERIOD_M5,6)),dig);                    //m30
            lo7=NormalizeDouble(MathMin(lo6,iLow(sb,PERIOD_M5,7)),dig);                   //m35
      
 //=========================================================================================================
            hi1=NormalizeDouble(iHigh(sb,PERIOD_M5,1),dig);                                       //m5
            hi2=NormalizeDouble(MathMax(iHigh(sb,PERIOD_M5,1),iHigh(sb,PERIOD_M5,2)),dig);  //m10 sint
            hi3=NormalizeDouble(MathMax(hi2,iHigh(sb,PERIOD_M5,3)),dig);                        //m15 sint
            hi4=NormalizeDouble(MathMax(hi3,iHigh(sb,PERIOD_M5,4)),dig);                       //m20 sint
            hi5=NormalizeDouble(MathMax(hi4,iHigh(sb,PERIOD_M5,5)),dig);                      //m25 sint
            hi6=NormalizeDouble(MathMax(hi5,iHigh(sb,PERIOD_M5,6)),dig);                     //m30 sint
            hi7=NormalizeDouble(MathMax(hi6,iHigh(sb,PERIOD_M5,7)),dig);                    //m35 sint
 
fregat555:

Bonjour !

Le conseiller donne des avertissements :

utilisation possible d'une variable non initialisée 'hv1' test_gme.mq5 154 23
0 erreur(s), 14 avertissement(s), temps de compilation : 1306 msec 1 15

Voici le code : quelle est l'erreur ?

Ajouter =0 .

double hv1=0,hv2=0,hv3=0...
 
Merci !
 

Lors de la compilation, tout est OK, pas d'erreurs ni d'avertissements. Mais

Lors du test, il donne les résultats suivants :

2018.12.01 17:53:00.074 Core 4 genetic pass (0, 509) testé avec l'erreur "OnInit failed" à 0:00:00.000

 
Je pense que ça marche. Merci.
 
Pouvez-vous me dire comment obtenir une liste de répertoires dans le répertoire spécifié MQL5\Files ?
 
Aleksey Vyazmikin:
Veuillez me dire comment obtenir une liste de répertoires dans un répertoire spécifié MQL5\Files ?
Exemple tiré deLifeHack for Trader : un backtest est bon, mais quatre sont meilleurs:
Raison: