Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 590

 
Barbarian:

Почему переопределенный виртуальный метод Compare переопределенный в классе CListNode игнорируется?

Проверял в отладчике, всегда используется Compare из CObject


Нужно переопределять Compare в классе CData.
 
artmedia70:

Никаких чудес.

Файл --> Открыть каталог данных --> В открывшемся окне --> MQL4 --> и вот тут и лежат нужные привычные вам папочки. Это уже триста раз всё расписано, находится на главной странице форума ссылка на статью. Лень просто.



Cпасибо, чесно говоря я думал что я что-то не так делал. Теперь все ясно
 
При запуске скрипта необходимо ставить значок(метку) при срабатывании условия. Как это сделать?
 
Forexman77:
При запуске скрипта необходимо ставить значок(метку) при срабатывании условия. Как это сделать?
Как только сработало условие - поставить метку. Однозначно.
 
Forexman77:
При запуске скрипта необходимо ставить значок(метку) при срабатывании условия. Как это сделать?
artmedia70:
Как только сработало условие - поставить метку. Однозначно.

Артём имел в виду под "... сработало условие - поставить метку.", что прописать в коде скрипта установку значка (метки) при срабатывании условия.

В справочнике по языку MQL4 есть очень хорошие примеры скриптов по созданию значков. Например, этот скрипт, создающий и перемещающий на графике значки "Buy".
 
DiPach:

Артём имел в виду под "... сработало условие - поставить метку.", что прописать в коде скрипта установку значка (метки) при срабатывании условия.

В справочнике по языку MQL4 есть очень хорошие примеры скриптов по созданию значков. Например, этот скрипт, создающий и перемещающий на графике значки "Buy".

Хороший скрипт, дергаем оттуда нужную функцию,

и вот получилось.

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

Товарищи подскажите из-за чего может быть ошибка при попытке открыть *.txt файл в режиме тестирования?

Такой вариант работает безупречно:

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

А вот такой не работает:

Handle2=FileOpen(File_Name2,FILE_TXT|FILE_READ);

Выдает ошибку 5004, функция FileIsExist(File_Name2) почему то возвращает false (wtf???)

Оба файла (и csv и txt) находятся в папке tester\files (терминал на диске D) и их названия соответствуют переменным File_Name и File_Name2 - многократно перепроверял.

 
DiPach:

Артём имел в виду под "... сработало условие - поставить метку.", что прописать в коде скрипта установку значка (метки) при срабатывании условия.

В справочнике по языку MQL4 есть очень хорошие примеры скриптов по созданию значков. Например, этот скрипт, создающий и перемещающий на графике значки "Buy".

Не, Дина, я имел ввиду именно то, что сказал ;)

Намекнул на "каков конкретный вопрос, таков и конкретный ответ". Вредный я сегодня :)

 
artmedia70:

Вредный я сегодня :)

Тогда молчу, :) чтоб сегодня под горячую руку случайно не попасть. :)

 
DiPach:

Тогда молчу, :) чтоб сегодня под горячую руку случайно не попасть. :)

Та не... девушек я всегда люблю.