Новая версия платформы MetaTrader 5 build 3081: Улучшения в MQL5-сервисах и обновленный дизайн - страница 15

 
Alexey Viktorov #:

в debug режиме на М15 в разных билдах и всё увидите сами.

Режим моделирования Тестера?

 
fxsaber #:

Режим моделирования Тестера?

Всё, извините, спасибо за потраченное время… Я больше ничего не могу понять. Два советника, в одном только такой код

/************************Expert tick function************************/
void OnTick()
 {
  MqlTick tick;
  SymbolInfoTick(_Symbol, tick);
  DebugBreak();
 }/******************************************************************/

при таких настройках получает первый тик при запуске


Во втором некоторый код «впереди» не касающийся ни тиков, ни баров, только проверка открытых позиций и потом SymbolInfoTick(_Symbol, tick);

с таким результатом…


Как он цепляет «вчерашний» тик?

 
Alexey Viktorov #:

Всё, извините, спасибо за потраченное время… Я больше ничего не могу понять. Два советника, в одном только такой код

при таких настройках получает первый тик при запуске


Во втором некоторый код «впереди» не касающийся ни тиков, ни баров, только проверка открытых позиций и потом SymbolInfoTick(_Symbol, tick);

с таким результатом…


Как он цепляет «вчерашний» тик?

Не скажу - не знаю.

Но!

На мой взгляд - это из той же оперы что и это.

 
Хотелось бы иметь возможность менять историю. Импортировать историю, при отсутствии нормальной истории, менять цены если ошибки. Так то каким пупом это отдавать брокеру, которому по большому счету, это не особо важно. Многие ошибки висят годами портя возможности ТА.
 

Здравствуйте,

обновился на 3063 - теперь при загрузке советника такая ошибка. Пока откачусь)


PS. У меня подгружается библиотека kernel32.dll - может из-за этого?

PSS. Дело не в библиотеке было падает CHashMap<string, int>::ContainsKey с передачей nullptr. Но до этого она дала вставить через TrySetValue ключ nullptr и несколько раз отрабатывала)))



Падает на получение длины строки от NULL. Почему-то из одной и той же структуры сначала приходят string&:


А зачем интерпретатор решает просто string получить и валится:


PSS. А все дело в инициализации структуры:

const SymbolSettings Settings[] = {

    { ... }, 

    { ... }

}


У меня количество аргументов в каждом initializer list на 1 меньше чем количество членов структуры, что по идее должно приводить к инициализации по умолчанию последнего члена. Но в новой версии компилятора поменяли поведение видимо. Сейчас проверю со старой версией


PSSS. Откат компилятора помог

 
Alexey Viktorov #:

Как он цепляет «вчерашний» тик?

Он не вчерашний. Тик актуален до следующего.

 

Раньше можно было в оптимизаторе при клике по заголовку группы параметров - выделить их все, ЗАЧЕМ УБРАЛИ? 

наверно чтобы тыкать по ним и тыкать и тыкать 

 
fxsaber #:

Он не вчерашний. Тик актуален до следующего.

Видимо да. Ведь я запрашивал последний тик, вот и получил последний.

Ладно. Спасибо, буду как-то что-то менять, чтобы избежать эти проблемы. Может получится.

 

Поправьте, если ошибаюсь...

У тика есть дата. Если у тика "вчерашняя" дата, то как он может отображаться с "сегодняшней"? 

Последний тик "за вчера" - это не первый тик "сегодня".

Или чего я не понял?

 
Сергей Таболин #:

Поправьте, если ошибаюсь...

У тика есть дата. Если у тика "вчерашняя" дата, то как он может отображаться с "сегодняшней"? 

Последний тик "за вчера" - это не первый тик "сегодня".

Или чего я не понял?

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

А вот фобия среди лётчиков к этому слову неправильная, но не мне менять их правила. Вот у них можно сказать «последний вылет на сегодня» и смысл будет совсем другим и без этой фобии. Сегодня последний, завтра будет первый… И даже противно когда эти фобии лётчиков перетаскивают в рядовые выражения повседневной жизни…