Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 590

[Supprimé]  
Barbarian:

Pourquoi la méthode virtuelle Compare surchargée dans la classe CListNode est-elle ignorée ?

Vérifié dans le débogueur, utilise toujours Compare from CObject.


Nécessité de surcharger Compare dans la classe CData.
 
artmedia70:

Pas de miracles.

Fichier --> Ouvrir le dossier de données --> Dans la fenêtre qui s'ouvre --> MQL4 --> et c'est là que se trouvent les dossiers auxquels vous êtes habitué. Le lien vers cet article sur la page principale du forum. Je suis juste trop paresseux pour le faire.



Merci, pour être honnête, je pensais que je faisais quelque chose de mal. Tout a un sens maintenant.
 
Lors de l'exécution du script, vous devez placer une icône (marqueur) lorsque la condition est déclenchée. Comment dois-je m'y prendre ?
 
Forexman77:
Lors de l'exécution du script, vous devez placer une icône (marqueur) lorsque la condition est déclenchée. Comment dois-je m'y prendre ?
Dès que la condition est déclenchée - mettez une marque. Absolument.
 
Forexman77:
Lors de l'exécution du script, vous devez définir l'icône (étiquette) lorsque la condition est déclenchée. Comment puis-je le faire ?
artmedia70:
Dès que la condition est déclenchée - mettez une marque. Sans ambiguïté.

Artyom voulait dire par "... condition triggered - put a mark.", ce qu'il voulait dire par mettre une marque dans le code du script lorsque la condition est déclenchée.

Il existe de très bons exemples de scripts de création de badges dans le guide du langage MQL4. Par exemple, ce script qui crée et déplace les icônes "Acheter" sur le graphique.
 
DiPach:

Artyom voulait dire par "... condition déclenchée - mettre une marque", ce qu'il voulait dire c'est qu'il fallait écrire dans le code du script pour mettre l'icône (marqueur) lorsque la condition est déclenchée.

La référence MQL4 contient de très bons exemples de scripts pour la création d'icônes. Par exemple, ce script qui crée et déplace les icônes "Acheter" sur le graphique.

Bon script, tirez la fonction requise de là,

et voilà.

//+------------------------------------------------------------------+
void OnStart()
  {
 
  if(Signal == Buy_)   //условия
     ArrowBuyCreate(0,"ArrowBuy_"+(string)Time[0],0,Time[0],Ask);

  if(Signal == Sell_)  //условия
     ArrowSellCreate(0,"ArrowSell_"+(string)Time[0],0,Time[0],Bid);
   
  }
//+------------------------------------------------------------------+
//====================================================================
//+------------------------------------------------------------------+
//| Создает знак "Buy"                                               |
//+------------------------------------------------------------------+
bool ArrowBuyCreate(const long            chart_ID=0,        // ID графика
                    const string          name="ArrowBuy",   // имя знака
                    const int             sub_window=0,      // номер подокна
                    datetime              time=0,            // время точки привязки
                    double                price=0,           // цена точки привязки
                    const color           clr=C'3,95,172',   // цвет знака
                    const ENUM_LINE_STYLE style=STYLE_SOLID, // стиль линии (при выделении)
                    const int             width=1,           // размер линии (при выделении)
                    const bool            back=false,        // на заднем плане
                    const bool            selection=false,   // выделить для перемещений
                    const bool            hidden=true,       // скрыт в списке объектов
                    const long            z_order=0)         // приоритет на нажатие мышью
  {
//--- установим координаты точки привязки, если они не заданы
//   ChangeArrowEmptyPoint(time,price);
//--- сбросим значение ошибки
   ResetLastError();
//--- создадим знак
   if(!ObjectCreate(chart_ID,name,OBJ_ARROW_BUY,sub_window,time,price))
     {
      Print(__FUNCTION__,
            ": не удалось создать знак \"Buy\"! Код ошибки = ",GetLastError());
      return(false);
     }
//--- установим цвет знака
   ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
//--- установим стиль линии (при выделении)
   ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
//--- установим размер линии (при выделении)
   ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
//--- отобразим на переднем (false) или заднем (true) плане
   ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
//--- включим (true) или отключим (false) режим перемещения знака мышью
   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
//--- скроем (true) или отобразим (false) имя графического объекта в списке объектов
   ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
//--- установи приоритет на получение события нажатия мыши на графике
   ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
//--- успешное выполнение
   return(true);
  }
//+------------------------------------------------------------------+
//| Создает знак "Sell"                                              |
//+------------------------------------------------------------------+
bool ArrowSellCreate(const long            chart_ID=0,        // ID графика
                     const string          name="ArrowSell",  // имя знака
                     const int             sub_window=0,      // номер подокна
                     datetime              time=0,            // время точки привязки
                     double                price=0,           // цена точки привязки
                     const color           clr=C'225,68,29',  // цвет знака
                     const ENUM_LINE_STYLE style=STYLE_SOLID, // стиль линии (при выделении)
                     const int             width=1,           // размер линии (при выделении)
                     const bool            back=false,        // на заднем плане
                     const bool            selection=false,   // выделить для перемещений
                     const bool            hidden=true,       // скрыт в списке объектов
                     const long            z_order=0)         // приоритет на нажатие мышью
  {
//--- установим координаты точки привязки, если они не заданы
//   ChangeArrowEmptyPoint(time,price);
//--- сбросим значение ошибки
   ResetLastError();
//--- создадим знак
   if(!ObjectCreate(chart_ID,name,OBJ_ARROW_SELL,sub_window,time,price))
     {
      Print(__FUNCTION__,
            ": не удалось создать знак \"Sell\"! Код ошибки = ",GetLastError());
      return(false);
     }
//--- установим цвет знака
   ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
//--- установим стиль линии (при выделении)
   ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
//--- установим размер линии (при выделении)
   ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
//--- отобразим на переднем (false) или заднем (true) плане
   ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
//--- включим (true) или отключим (false) режим перемещения знака мышью
   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
//--- скроем (true) или отобразим (false) имя графического объекта в списке объектов
   ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
//--- установим приоритет на получение события нажатия мыши на графике
   ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
//--- успешное выполнение
   return(true);
  }
 

Pouvez-vous nous dire pourquoi il peut y avoir une erreur lorsqu'on essaie d'ouvrir un fichier *.txt en mode test ?

Cette option fonctionne parfaitement :

Handle=FileOpen(File_Name,FILE_CSV|FILE_READ,";"); 

Mais celui-ci ne fonctionne pas :

Handle2=FileOpen(File_Name2,FILE_TXT|FILE_READ);

Il donne l'erreur 5004, la fonction FileIsExist(File_Name2) retourne false pour une raison quelconque (wtf ???)

Les deux fichiers (csv et txt) sont situés dans le dossier tester\files (terminal sur le lecteur D) et leurs noms correspondent aux variables File_Name et File_Name2 - je les ai vérifiés plusieurs fois.

 
DiPach:

Artyom voulait dire par "... condition triggered - put a mark.", cela pour prescrire dans le code du script de mettre un badge (marqueur) lorsque la condition s'est déclenchée.

Le livre de référence MQL4 contient de très bons exemples de scripts pour la création d'icônes. Par exemple, ce script qui crée et déplace les icônes "Acheter" sur le graphique.

Non, Dina, je pensais exactement ce que j'ai dit ;)

J'ai fait allusion à "une question spécifique appelle une réponse spécifique". Je suis méchante aujourd'hui :)

 
artmedia70:

Je suis méchante aujourd'hui :)

Je vais me taire alors :) pour ne pas être dans le collimateur aujourd'hui. :)

 
DiPach:

Je ne dirai rien alors :) de peur de me retrouver accidentellement dans le collimateur aujourd'hui. :)

Nah... J'ai toujours aimé les filles.