Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 590

 
Barbarian:

Por que o método de comparação virtual é anulado na classe CListNode?

Verificado no depurador, usa sempre Comparar a partir do CObject


Necessidade de substituir a comparação na classe CData.
 
artmedia70:

Sem milagres.

File --> Open Data Folder --> Na janela que se abre --> MQL4 --> e é onde estão localizadas as pastas com as quais você está acostumado. O link para este artigo na página principal do fórum. Eu sou preguiçoso demais para fazê-lo.



Obrigado, para ser honesto, eu pensei que estava fazendo algo errado. Tudo isso faz sentido agora.
 
Ao executar o roteiro, você precisa colocar um ícone (marcador) quando a condição for acionada. Como posso fazer isso?
 
Forexman77:
Ao executar o roteiro, você precisa colocar um ícone (marcador) quando a condição for acionada. Como posso fazer isso?
Assim que a condição for acionada - coloque uma marca. Definitivamente.
 
Forexman77:
Ao executar o script, você precisa definir o ícone (etiqueta) quando a condição é acionada. Como posso fazer isso?
artmedia70:
Assim que a condição for acionada - coloque uma marca. Sem ambigüidade.

Artyom significa "... condição acionada - colocar uma marca", o que ele quis dizer ao colocar uma marca no código do roteiro quando a condição é acionada.

Há exemplos muito bons de scripts de criação de crachás no livro de referência de linguagem MQL4. Por exemplo, este roteiro que cria e move ícones de "Comprar" no gráfico.
 
DiPach:

Artyom significa "... condição acionada - colocar uma marca", o que ele queria dizer era escrever no código do roteiro para definir o ícone (marcador) quando a condição é acionada.

A Referência MQL4 tem exemplos muito bons de scripts para a criação de ícones. Por exemplo, este roteiro que cria e move ícones de "Comprar" no gráfico.

Bom roteiro, tire daí a função necessária,

e aí você tem.

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

Você pode informar por que pode haver um erro ao tentar abrir um arquivo *.txt em modo de teste?

Esta opção funciona sem falhas:

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

Mas este não funciona:

Handle2=FileOpen(File_Name2,FILE_TXT|FILE_READ);

Ele dá erro 5004, função FileIsExist(File_Name2) retorna falso por algum motivo (wtf???)

Ambos os arquivos (csv e txt) estão localizados em arquivos de teste de pastas (terminal na unidade D) e seus nomes correspondem às variáveis File_Name e File_Name2 - Eu os verifiquei muitas vezes.

 
DiPach:

Artyom significa "... condição acionada - colocar uma marca", que para prescrever no código do roteiro para definir um crachá (marcador) quando a condição foi acionada.

O livro de referência MQL4 contém exemplos muito bons de scripts para a criação de ícones. Por exemplo, este roteiro que cria e move ícones de "Comprar" no gráfico.

Não, Dina, eu quis dizer exatamente o que eu disse ;)

Eu sugeri "uma pergunta específica e uma resposta específica". Estou sendo mau hoje :)

 
artmedia70:

Estou sendo mau hoje :)

Ficarei quieto então, :) para que eu não fique na mão quente hoje. :)

 
DiPach:

Não direi uma palavra então :) para que eu não fique acidentalmente na mão quente hoje. :)

Nah... Eu sempre gosto de garotas.