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

 
Igor Makanu:

Copier ne vous aidera pas, vous devez lire, voici l'articlehttps://www.mql5.com/ru/articles/1456.

A utiliser à des fins purement visuelles et informatives

 
Carcass77:

À utiliser à des fins purement visuelles et informatives.

//+------------------------------------------------------------------+
//|                                                    atrValues.mq4 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

extern int atrPeriod=10;
extern int infoCorner=0;
extern int shift=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   double atr1=iATR(Symbol(),1,atrPeriod,shift);
   double atr5=iATR(Symbol(),5,atrPeriod,shift);
   double atr15=iATR(Symbol(),15,atrPeriod,shift);
   double atr30=iATR(Symbol(),30,atrPeriod,shift);
   double atr60=iATR(Symbol(),60,atrPeriod,shift);
   double atr240=iATR(Symbol(),240,atrPeriod,shift);
   double atr1440=iATR(Symbol(),1440,atrPeriod,shift);
   double atr10080=iATR(Symbol(),10080,atrPeriod,shift);
   double atr43200=iATR(Symbol(),43200,atrPeriod,shift);
//---
   ObjectCreate("ObjName1",OBJ_LABEL,0,0,0);
   ObjectSetText("ObjName1","ATR"+IntegerToString(atrPeriod,0)+": M1="+DoubleToStr(atr1,5),8,"Verdana",Red);
   ObjectSet("ObjName1",OBJPROP_CORNER,infoCorner);
   ObjectSet("ObjName1",OBJPROP_XDISTANCE,10);
   ObjectSet("ObjName1",OBJPROP_YDISTANCE,25);
//---
   ObjectCreate("ObjName2",OBJ_LABEL,0,0,0);
   ObjectSetText("ObjName2","ATR"+IntegerToString(atrPeriod,0)+": M5="+DoubleToStr(atr5,5),8,"Verdana",Red);
   ObjectSet("ObjName2",OBJPROP_CORNER,infoCorner);
   ObjectSet("ObjName2",OBJPROP_XDISTANCE,10);
   ObjectSet("ObjName2",OBJPROP_YDISTANCE,40);
//---
   ObjectCreate("ObjName3",OBJ_LABEL,0,0,0);
   ObjectSetText("ObjName3","ATR"+IntegerToString(atrPeriod,0)+": M15="+DoubleToStr(atr15,5),8,"Verdana",Red);
   ObjectSet("ObjName3",OBJPROP_CORNER,infoCorner);
   ObjectSet("ObjName3",OBJPROP_XDISTANCE,10);
   ObjectSet("ObjName3",OBJPROP_YDISTANCE,55);
//---
   ObjectCreate("ObjName4",OBJ_LABEL,0,0,0);
   ObjectSetText("ObjName4","ATR"+IntegerToString(atrPeriod,0)+": M30="+DoubleToStr(atr30,5),8,"Verdana",Red);
   ObjectSet("ObjName4",OBJPROP_CORNER,infoCorner);
   ObjectSet("ObjName4",OBJPROP_XDISTANCE,10);
   ObjectSet("ObjName4",OBJPROP_YDISTANCE,70);
//---
   ObjectCreate("ObjName5",OBJ_LABEL,0,0,0);
   ObjectSetText("ObjName5","ATR"+IntegerToString(atrPeriod,0)+": M60="+DoubleToStr(atr60,5),8,"Verdana",Red);
   ObjectSet("ObjName5",OBJPROP_CORNER,infoCorner);
   ObjectSet("ObjName5",OBJPROP_XDISTANCE,10);
   ObjectSet("ObjName5",OBJPROP_YDISTANCE,85);
//---
   ObjectCreate("ObjName6",OBJ_LABEL,0,0,0);
   ObjectSetText("ObjName6","ATR"+IntegerToString(atrPeriod,0)+": M240="+DoubleToStr(atr240,5),8,"Verdana",Red);
   ObjectSet("ObjName6",OBJPROP_CORNER,infoCorner);
   ObjectSet("ObjName6",OBJPROP_XDISTANCE,10);
   ObjectSet("ObjName6",OBJPROP_YDISTANCE,100);
//---
   ObjectCreate("ObjName7",OBJ_LABEL,0,0,0);
   ObjectSetText("ObjName7","ATR"+IntegerToString(atrPeriod,0)+": M1440="+DoubleToStr(atr1440,5),8,"Verdana",Red);
   ObjectSet("ObjName7",OBJPROP_CORNER,infoCorner);
   ObjectSet("ObjName7",OBJPROP_XDISTANCE,10);
   ObjectSet("ObjName7",OBJPROP_YDISTANCE,115);
//---
   ObjectCreate("ObjName8",OBJ_LABEL,0,0,0);
   ObjectSetText("ObjName8","ATR"+IntegerToString(atrPeriod,0)+": M10080="+DoubleToStr(atr10080,5),8,"Verdana",Red);
   ObjectSet("ObjName8",OBJPROP_CORNER,infoCorner);
   ObjectSet("ObjName8",OBJPROP_XDISTANCE,10);
   ObjectSet("ObjName8",OBJPROP_YDISTANCE,130);
//---
   ObjectCreate("ObjName9",OBJ_LABEL,0,0,0);
   ObjectSetText("ObjName9","ATR"+IntegerToString(atrPeriod,0)+": M43200="+DoubleToStr(atr43200,5),8,"Verdana",Red);
   ObjectSet("ObjName9",OBJPROP_CORNER,infoCorner);
   ObjectSet("ObjName9",OBJPROP_XDISTANCE,10);
   ObjectSet("ObjName9",OBJPROP_YDISTANCE,145);
//--- 
  }
//+------------------------------------------------------------------+
 
Alekseu Fedotov:

Beaucoup d'erreurs sont apparues)

 
Carcass77:

Beaucoup d'erreurs)

Il compile bien pour moi.

 
Alekseu Fedotov:

Il compile bien pour moi.

J'ai trouvé mon erreur. Merci beaucoup !

 
Comment puis-je appeler n'importe quelle méthode de l'objet T1 à l'intérieur d'une classe modèle avec des objets de type non explicite (c'est-à-dire que le type de l'objet n'est pas défini explicitement, mais par le biais de template<typename T1>) ? Tous les objets T1 ont des méthodes identiques.
 
Igor Makanu:

Je vois, je n'ai pas de terminal sous la main, mais il semble que seuls les journaux d'erreurs dans le méta-éditeur soient surlignés en rouge, alors que dans le terminal et dans le testeur, seule l'icône est rouge, et le texte lui-même ne semble pas "rougir".

C'est écrit :
(surligné en noir).

INIT_PARAMETERS_INCORRECT

Ce code est destiné à indiquer un jeu incorrect de paramètres d'entrée par le programmeur. La chaîne de résultats contenant ce code de retour sera mise en évidence en rouge dans le tableau d'optimisation générale.

Les tests ne seront pas effectués pour le jeu de paramètres de ce conseiller expert.


Et voici le tableau d'optimisation générale :




Rien n'est surligné en rouge.

C'est juste que dans ces lignes, le résultat de l'optimisation est nul.


Est-ce que le manuel ment ou est-ce que je fais quelque chose de mal ?

 
Existe-t-il un moyen d'afficher les touches dans l'entrée afin qu'elles puissent être réaffectées ?
 
Roman Sharanov:
Y a-t-il un moyen de faire entrer les clés dans l'entrée pour qu'elles puissent être réaffectées ?

Can.

#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_chart_window
//--- input parameters

input string      key = "A";

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {

   if(id==CHARTEVENT_KEYDOWN)
     {
      if(lparam==(StringGetChar(key,0)))
        {
        Alert("нажатая клавиша = ",key);
        Alert("код нажатой клавиши = ",StringGetChar(key,0));
        }
     }
  }
//+------------------------------------------------------------------+
 
multiplicator:

C'est écrit ici :
(surligné en noir).

INIT_PARAMETERS_INCORRECT

Conçu pour indiquer au programmeur un jeu incorrect de paramètres d'entrée, la chaîne de résultats comportant ce code de retour sera mise en évidence en rouge dans le tableau d'optimisation générale.

Les tests ne seront pas effectués pour le jeu de paramètres de ce conseiller expert.


Et voici le tableau d'optimisation générale :




Rien n'est surligné en rouge.

C'est juste que dans ces lignes, le résultat de l'optimisation est nul.


Est-ce que le manuel ment ou est-ce que je fais quelque chose de mal ?

Vous pouvez maintenant voir que rien n'est mis en évidence et ne contredit le manuel à cet égard.