Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 590

 
Barbarian:

Warum wird die virtuelle Methode "Compare", die in der Klasse CListNode überschrieben wird, ignoriert?

Überprüft im Debugger, verwendet immer Compare from CObject


Compare muss in der Klasse CData außer Kraft gesetzt werden.
 
artmedia70:

Keine Wunder.

Datei --> Datenordner öffnen --> in dem sich öffnenden Fenster --> MQL4 --> und dort befinden sich die Ihnen bekannten Ordner. Der Link zu diesem Artikel auf der Hauptseite des Forums. Ich bin einfach zu faul, um das zu tun.



Danke, um ehrlich zu sein, dachte ich, ich würde etwas falsch machen. Jetzt ergibt alles einen Sinn.
 
Wenn Sie das Skript ausführen, müssen Sie ein Symbol (eine Markierung) setzen, wenn die Bedingung ausgelöst wird. Wie kann ich das tun?
 
Forexman77:
Wenn Sie das Skript ausführen, müssen Sie ein Symbol (eine Markierung) setzen, wenn die Bedingung ausgelöst wird. Wie kann ich das tun?
Sobald die Bedingung ausgelöst wird, setzen Sie eine Markierung. Definitiv.
 
Forexman77:
Wenn Sie das Skript ausführen, müssen Sie das Symbol (Etikett) setzen, wenn die Bedingung ausgelöst wird. Wie kann ich das tun?
artmedia70:
Sobald die Bedingung ausgelöst wird, setzen Sie eine Markierung. Unzweideutig.

Artyom meinte mit "... Bedingung ausgelöst - eine Markierung setzen", was er mit dem Setzen einer Markierung im Code des Skripts meinte, wenn die Bedingung ausgelöst wird.

Es gibt sehr gute Beispiele für Skripte zur Erstellung von Ausweisen im MQL4-Sprachführer. Zum Beispiel dieses Skript, das "Kaufen"-Symbole im Diagramm erstellt und verschiebt.
 
DiPach:

Artyom meinte mit "... Bedingung ausgelöst - Markierung setzen", meinte er damit, dass im Skriptcode das Symbol (die Markierung) gesetzt werden soll, wenn die Bedingung ausgelöst wird.

Die MQL4-Referenz enthält sehr gute Beispiele für Skripte zur Erstellung von Symbolen. Zum Beispiel dieses Skript, das "Kaufen"-Symbole im Diagramm erstellt und verschiebt.

Gutes Skript, ziehen Sie die gewünschte Funktion von dort,

und da haben Sie es.

//+------------------------------------------------------------------+
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);
  }
 

Können Sie uns mitteilen, warum beim Versuch, eine *.txt-Datei im Testmodus zu öffnen, ein Fehler auftreten kann?

Diese Option funktioniert tadellos:

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

Aber das hier funktioniert nicht:

Handle2=FileOpen(File_Name2,FILE_TXT|FILE_READ);

Es gibt Fehler 5004, Funktion FileIsExist(File_Name2) gibt aus irgendeinem Grund false zurück (wtf???)

Beide Dateien (csv und txt) befinden sich im Ordner tester\files (Terminal auf Laufwerk D) und ihre Namen entsprechen den Variablen File_Name und File_Name2 - ich habe sie mehrfach überprüft.

 
DiPach:

Artyom meinte mit "... Bedingung ausgelöst - Markierung setzen", um im Skriptcode vorzuschreiben, dass bei Auslösung der Bedingung ein Badge (Markierung) gesetzt wird.

Das MQL4-Referenzbuch enthält sehr gute Beispiele für Skripte zur Erstellung von Symbolen. Zum Beispiel dieses Skript, das "Kaufen"-Symbole im Diagramm erstellt und verschiebt.

Nein, Dina, ich habe genau das gemeint, was ich gesagt habe ;)

Ich habe "eine konkrete Frage und eine konkrete Antwort" angedeutet. Ich bin heute böse :)

 
artmedia70:

Ich bin heute böse :)

Ich werde dann still sein, :) damit ich heute nicht in die Klemme gerate. :)

 
DiPach:

Dann werde ich kein Wort sagen :), damit ich heute nicht aus Versehen in die Schusslinie gerate. :)

Nein... Ich mag Mädchen immer.