Вы обновили терминалы МТ4 на билд 1121? - страница 3

 

какая то ошибка с загрузкой кастомных индикаторов:

пытаюсь загрузить индикатор 

   double CustomMain=iCustom(Symbolt,TF_IndSigToTrade1,"::Indicators\\MACD",periodma1,periodma2,9,MODE_MAIN,OWNSIGNAL_shift);

   double CustomSig=iCustom(Symbolt,TF_IndSigToTrade1,"::Indicators\\MACD",periodma1,periodma2,9,MODE_SIGNAL,OWNSIGNAL_shift);


внешние переменные для пробы: 

 input int                        periodma1=1;
 input int                        periodma2=100;


при нанесении советника на график пишет следующее:

2018.05.11 16:14:38.369 2018.01.02 11:00:00  MACD EURUSD,H1: initialization failed (1)
2018.05.11 16:14:38.369 2018.01.02 11:00:00  MACD EURUSD,H1: Wrong input parameters
2018.05.11 16:14:37.717 2018.01.02 11:00:00  MACD EURUSD,H1: initialization failed (1)
2018.05.11 16:14:37.717 2018.01.02 11:00:00  MACD EURUSD,H1: Wrong input parameters
2018.05.11 16:14:37.380 2018.01.02 11:00:00  MACD EURUSD,H1: initialization failed (1)



при этом, если я не ввожу внешние переменные, тогда все ок:

   double CustomMain=iCustom(Symbolt,TF_IndSigToTrade1,"::Indicators\\MACD",0,OWNSIGNAL_shift);
   double CustomSig=iCustom(Symbolt,TF_IndSigToTrade1,"::Indicators\\MACD",1,OWNSIGNAL_shift);
//
   double CustomMain2=iCustom(Symbolt,TF_IndSigToTrade1,"::Indicators\\MACD",0,OWNSIGNAL_shift+1);
   double CustomSig2=iCustom(Symbolt,TF_IndSigToTrade1,"::Indicators\\MACD",1,OWNSIGNAL_shift+1);



но в индикаторе явно 3 параметра!


 
Yury Kirillov:

Кострукция вида ("старый" синтаксис):

Работает.

А конструкция вида ("новый мт5 синтаксис"):

Почему-то нет, хотя по смыслу это одно и то же. И раньше вроде работало... С другой стороны, в справке по мт4 такого синтаксиса нет.

Лечится установкой параметров:

#property   indicator_color1  clrWhite
#property   indicator_type1   DRAW_LINE
При этом "новый синтаксис" работает
 
Обновился до билда 1121. Зашел в MetaEditor. Поработал над своими проектами и потом заметил что облачное хранилище отключено. Включил и увидел что оно пустое и надо все свои папки и файлы заново туда добавлять. Добавил и отправил все изменения в хранилище. При этом ревизии начали нумероваться с нуля. Потом зашел в хранилище через профиль в MQL с браузера, а там все файлы и ревизии, которые были до обновления, а новых нет. Вопрос: В какое хранилище отправились новые ревизии?
 
Yury Kirillov:

Лечится установкой параметров:

При этом "новый синтаксис" работает

Что-то я сомневаюсь в том, что это можно назвать лекарством.

Если писать эти директивы,

#property   indicator_color1  clrWhite
#property   indicator_type1   DRAW_LINE

то какой смысл писать это

         PlotIndexSetInteger(0,PLOT_LINE_STYLE,STYLE_SOLID);
         PlotIndexSetInteger(0,PLOT_LINE_WIDTH,1);
         PlotIndexSetInteger(0,PLOT_LINE_COLOR,clrWhite);

Они просто не работают, а используются те, что прописаны в #property

 
Alexey Viktorov:

Что-то я сомневаюсь в том, что это можно назвать лекарством.

Если писать эти директивы,

то какой смысл писать это

Они просто не работают, а используются те, что прописаны в #property

#property
   по идее имеет более высокий приоритет.
 
Yuriy Zaytsev:
#property
   по идее имеет более высокий приоритет.

Не совсем так, судя по примеру из документации:

https://www.mql5.com/ru/docs/customind/indicators_examples/draw_line

//+------------------------------------------------------------------+
//|                                                    DRAW_LINE.mq5 |
//|                        Copyright 2011, MetaQuotes Software Corp. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2011, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
 
#property description "Индикатор для демонстрации DRAW_LINE"
#property description "Рисует линию заданным цветом по ценам Close"
#property description "Цвет, толщина и стиль линии меняется случайным образом"
#property description "через каждые N тиков"
 
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots   1
//--- свойства линии заданы с помощью директив компилятора
#property indicator_label1  "Line"      // название построения для "Окна данных"
#property indicator_type1   DRAW_LINE   // тип графического построения - линия
#property indicator_color1  clrRed      // цвет линии
#property indicator_style1  STYLE_SOLID // стиль линии
#property indicator_width1  1           // толщина линии

.....

//+------------------------------------------------------------------+
//| Изменяет внешний вид отображаемой линии в индикаторе             |
//+------------------------------------------------------------------+
void ChangeLineAppearance()
  {
//--- строка для формирования информации о свойствах линии
   string comm="";
//--- блок изменения цвета линии
//--- получим случайное число
   int number=MathRand();
//--- делитель числа равен размеру массива colors[]
   int size=ArraySize(colors);
//--- получим индекс для выбора нового цвета как остаток от целочисленного деления
   int color_index=number%size;
//--- установим цвет как свойство PLOT_LINE_COLOR
   PlotIndexSetInteger(0,PLOT_LINE_COLOR,colors[color_index]);
//--- запишем цвет линии
   comm=comm+(string)colors[color_index];
 
//--- блок изменения толщины линии
   number=MathRand();
//--- получим толщину как остаток от целочисленного деления
   int width=number%5; // толщина задается от о до 4
//--- установим цвет как свойство PLOT_LINE_WIDTH
   PlotIndexSetInteger(0,PLOT_LINE_WIDTH,width);
//--- запишем толщину линии
   comm=comm+", Width="+IntegerToString(width);
 
//--- блок изменения стиля линии
   number=MathRand();
//--- делитель числа равен размеру массива styles
   size=ArraySize(styles);
//--- получим индекс для выбора нового стиля как остаток от целочисленного деления
   int style_index=number%size;
//--- установим цвет как свойство PLOT_LINE_COLOR
   PlotIndexSetInteger(0,PLOT_LINE_STYLE,styles[style_index]);
//--- запишем стиль линии
   comm=EnumToString(styles[style_index])+", "+comm;
//--- выведем информацию на график через комментарий
   Comment(comm);
  }
Документация по MQL5: Пользовательские индикаторы / Стили индикаторов в примерах / DRAW_LINE
Документация по MQL5: Пользовательские индикаторы / Стили индикаторов в примерах / DRAW_LINE
  • www.mql5.com
//|                                                    DRAW_LINE.mq5 | //|                        Copyright 2011, MetaQuotes Software Corp. | //|                                              https://www.mql5.com | //| Custom indicator initialization function                         |...
 

Ещё одна небольшая ошибочка в тестере мт4:

Некорректное отображение наименования инструмента в тестере МТ4

Версия и битность терминала

4.00 билд 1121 х32

Описание проблемы

В случае, когда наименование инструмента имеет вид EURUSD.1  в тестере некорректно отображается наименование инструмента.

Последовательность действий

Тестируем код:

int OnInit()
{
   return(INIT_SUCCEEDED);
}//OnInit()
  
void OnTick()
{
}//OnTick()

Полученный результат

В журнале видим:

2018.05.18 11:27:03.728 TestGenerator: no history data 'EURUSD.11' from 2018.05.14 to 2018.05.15
2018.05.18 11:27:03.720 Tester: template 'D:\VirtExch\MT4_64\846534\templates\tester.tpl' applied

Ожидаемый результат

В журнале должно быть:

2018.05.18 11:27:03.728 TestGenerator: no history data 'EURUSD.1' from 2018.05.14 to 2018.05.15
2018.05.18 11:27:03.720 Tester: template 'D:\VirtExch\MT4_64\846534\templates\tester.tpl' applied

Дополнительные сведения

Ошибка возникает при попытке тестирования за пределами имеющихся исторических данных.
Причина обращения: