Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 590

 
Barbarian:

Perché il metodo virtuale Compare sovrascritto nella classe CListNode viene ignorato?

Controllato nel debugger, usa sempre Compare from CObject


Necessità di sovrascrivere Compare nella classe CData.
 
artmedia70:

Nessun miracolo.

File --> Apri cartella dati --> Nella finestra che si apre --> MQL4 --> ed è lì che si trovano le cartelle a cui sei abituato. Il link a questo articolo sulla pagina principale del forum. Sono solo troppo pigro per farlo.



Grazie, ad essere onesti pensavo di fare qualcosa di sbagliato. Ora tutto ha un senso.
 
Quando si esegue lo script, è necessario mettere un'icona (marcatore) quando la condizione viene attivata. Come si fa?
 
Forexman77:
Quando si esegue lo script, è necessario mettere un'icona (marcatore) quando la condizione viene attivata. Come si fa?
Non appena la condizione viene innescata - metti un segno. Sicuramente.
 
Forexman77:
Quando si esegue lo script, è necessario impostare l'icona (etichetta) quando la condizione viene attivata. Come posso fare?
artmedia70:
Non appena la condizione viene innescata - metti un segno. Senza ambiguità.

Artyom intendeva dire "... condizione innescata - metti un segno", ciò che intendeva per impostare un segno nel codice dello script quando la condizione è innescata.

Ci sono ottimi esempi di script di creazione di badge nella guida al linguaggio MQL4. Per esempio, questo script che crea e sposta le icone "Buy" sul grafico.
 
DiPach:

Artyom intendeva dire "... condizione attivata - metti un segno", quello che intendeva era scrivere nel codice script per impostare l'icona (marcatore) quando la condizione è attivata.

Il MQL4 Reference ha ottimi esempi di script per la creazione di icone. Per esempio, questo script che crea e sposta le icone "Buy" sul grafico.

Ottimo script, tira la funzione richiesta da lì,

ed ecco fatto.

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

Potete consigliarmi perché ci può essere un errore quando si cerca di aprire un file *.txt in modalità test?

Questa opzione funziona perfettamente:

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

Ma questo non funziona:

Handle2=FileOpen(File_Name2,FILE_TXT|FILE_READ);

Dà errore 5004, la funzione FileIsExist(File_Name2) restituisce false per qualche motivo (wtf???)

Entrambi i file (csv e txt) si trovano nella cartella tester\files (terminale sul drive D) e i loro nomi corrispondono alle variabili File_Name e File_Name2 - li ho controllati molte volte.

 
DiPach:

Artyom intendeva dire "... condizione attivata - mettere un segno", che per prescrivere nel codice script per impostare un badge (marcatore) quando la condizione attivata.

Il libro di riferimento MQL4 contiene ottimi esempi di script per la creazione di icone. Per esempio, questo script che crea e sposta le icone "Buy" sul grafico.

No, Dina, intendevo esattamente quello che ho detto ;)

Ho accennato a "una domanda specifica è una risposta specifica". Oggi sono cattivo :)

 
artmedia70:

Oggi sono cattivo :)

Sarò tranquillo allora, :) per non entrare nella mano calda oggi. :)

 
DiPach:

Non dirò una parola allora :) per non finire accidentalmente nella mano calda oggi. :)

No... Mi piacciono sempre le ragazze.