Бета-тестирование MetaTrader 5 началось! - страница 112

 

По крайней мере пока советник работает вполне адекватно, если не считать некоторых особенностей 220 релиза...

Такс, приступим к кодингу основной части эксперта...

 
Interesting >>:

Уважаемые разработчик. Разберитесь плиз с тем бардаком что твориться в заголовочных файлах.


Вот такой пример кода выдает следующую ошибку "code generate error"....

Релиз терминала 218, но думаю, что и под 219 можно проверить.

PS

Забыл сказать что ругается она как раз на последнюю строчку, и если сменить возвращаемый тип скажем на int то все сразу начинает работать...

А в 215 релизе все было ОК...


т.е. не то чтобы возвращался не верный результат, а просто советник не хочет компилироваться если в коде эксперта (если быть точным то в блоке инициализации) вызывается внешняя стринговая функция.


Исправлено

 
stringo писал(а) >>
Да, нашли ошибку с передачей параметра типа MqlDateTime в функции преобразования времени.

так что теперь неделю ждать, пока новый билд не выйдет?

А старым то как пользоваться? Просьба аннулировать текущий билд, и поставить предыдущий.

 
vasya_vasya >>:

так что теперь неделю ждать, пока новый билд не выйдет?

А старым то как пользоваться? Просьба аннулировать текущий билд, и поставить предыдущий.

Пожалуйста, без паники и нагнетания истерии. Вы прекрасно знаете, что на этапе тестирования обновления происходят по нескольку раз в неделю.

Подожди немного, пожалуйста.

 
int stf=0;
string ssym="";
int InitCount=0;
bool blocked=true;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   if (InitCount==0) 
    {
     ssym = Symbol();  //  Работает неправильно
//     ssym = ChartSymbol(ChartID());   //  Без проблем
     stf = ChartPeriod(ChartID()); 
    }
   InitCount++;
   printf("OnInit(): InitCount = %i; stf= %i; ssym= %s", InitCount, stf, ssym);
   
   EventSetTimer(5);
   blocked=false;
   return(0);
  }

Какой-то утончённый баг в компиляторе. :) То, что закоментировано, работает без проблем.

А вот ssym = Symbol(); работает ВСЕГДА невзирая на if (InitCount==0)

Дас ист фантастиш! Я голову сломал как этот баг устроен. Вероятно как-то связан с оптимизацией.

Полный текст для тестирования в прицепе.

// Запустить, потом при смене инструмента должно быть сообщение и блокировка программы.

Файлы:
 
MetaDriver писал(а) >>

Какой-то утончённый баг в компиляторе. :) То, что закоментировано, работает без проблем.

А вот ssym = Symbol(); работает ВСЕГДА невзирая на if (InitCount==0)

Дас ист фантастиш! Я голову сломал как этот баг устроен. Вероятно как-то связан с оптимизацией.

Полный текст для тестирования в прицепе.

// Запустить, потом при смене инструмента должно быть сообщение и блокировка программы.

Спасибо. Красивый баг. Исправили.

 

stringo может Вы и бычью свечу в DRAW_COLOR_CANDLES и DRAW_CANDLES поправите??? ;))

Закрашивать ее через гистограмму - так калечно получается, а использовать оттенки цвета будет непонятно.

 
stringo 11.11.2009 20:14

Спасибо. Красивый баг. Исправили.

Ок!

Вапчета выдавать предупредительное сообщение при смене инструмента желательно бы МетаТрейдеру (при наличии на чарте экспертов). Из-за отсутствия оного я однажды в считанные минуты слил 16 килобаксов - нечаянно зацепил мышкой другую валютную пару в окне "обзор рынка" и сросил на чарт не заметимши. Пока спохватился эксперт уже умудрился сделать ставок на полдепозита (депозит был порядка ста тысяч). Ну и... Эксперт был а-ля Решетовский "ReverseArbitrage",

там бухгалтерия расчитывалась по истории сделок по инструменту....

Из этой истории я извлёк два урока:

1. НИКОГДА не считать бухгалтерию по какой-либо истории. Только по сиюминутным фактам (балланс, эквити и т.д.).

// Живи, типа, в Настоящем Времени. :)

2. ВСЕГДА ставить подобные проверялки стартового символа в эксперты.

// На МетаКвотов надейся, а сам не плошай. :)

--

Ах да! - хорошо, всё таки, что тот счёт был учебным....... ;)

 

новый язык ничего единственное что не понимаю зачем было создавать виртуальную

машину, свой язык, когда было достаточно взять жаву

написать библиотеки для работы с терминалом,

и получить полноценные среды разработки, поддержку различных скриптов типа питон,

все бы это заняло гораздо меньше времени плюс супер развитую жава инфраструктуру и возможность запускать

терминал на любой платформе линукс виндос и тп

 

Очень просится в ТЕСТЕРЕ МТ5 кроме кривой баланса и средств видеть кривую эквити

такое просится и в мт4

Причина обращения: