Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 567

 
Anton Zverev:

Нужно, чтобы при мультисимвольном проходе тестера OnTick реагировал на тик каждого из символов. Как это сделать?

Через нулевой таймер - не вариант. Через копитикс - не вариант. Что-то на простой вещи тестер таким большим обломом порадовал.

Воспользуйтесь одним из решений. Возможно это поможет. С вариантом тестирования на основе реальных тиковых данных, можно добиться практически полной идентичности, если сконфигурировать движок должным образом.
 
Vasiliy Sokolov:
Воспользуйтесь одним из решений. Возможно это поможет. С вариантом тестирования на основе реальных тиковых данных, можно добиться практически полной идентичности, если сконфигурировать движок должным образом.

Спасибо. Только не понял, чем это отличается от вариантов, что отверг выше. Понимаю, что в ООП можно красиво завернуть даже страшное решение и ничего не заметишь, кроме косвенного падения производительности.

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

Какое решение быстрее в тестере - OnTimer или IndicatorRelease?

Разработчики, стандартная библиотека ничего этого не могет. Дайте OnMultiTick, чтобы не через гланды.

 
Anton Zverev:

Дайте OnMultiTick, чтобы не через гланды.

OnMarketwatch, точнее. Во всех платформах такое есть. В навороченной пятерке - отсутствует.
 
Anton Zverev:
OnMarketwatch, ...
А по русски? Что под сим подразумеваете?
 
Karputov Vladimir:
А по русски? Что под сим подразумеваете?

bool SymbolCreate( const string Name)  - подписаться на символ. Возвращает false в случае облома.

string SymbolName(const int i ) - возвращает имя i-го подписанного символа.

SymbolDelete, SymbolsTotal и прочие - аналоги ObjectXXX.

 

OnMarketwatch( const ulong &Counts[] )

Срабатывает, когда приходит тик на подписанный символ (SymbolsTotal, конечно, должен быть положительным).

Counts[i] - содержит номер актуального на данный момент тика i-го подписанного символа. Нужно, чтобы можно было сравнить с данными предыдущего вызова OnMarketwatch и понять, сколько тиков и по какому символу было пропущено. Пропущенные тики таким образом легко запросить через копитикс. Текущие - SymbolInfoTick(SymbolName(i));

 

Каждый тик любого символа нумеруется с момента коннекта к торговому счету (самый первый тик имеет нулевой номер) .

В копитикс разрешить входному параметру "количество последних тиков, которые необходимо получить" принимать отрицательное значение - это значит запрос с даты не в сторону будущего, а в сторону прошлого.

 
Anton Zverev:

...

Вам не надоело придумать хотелки? В документацию не пробовали посмотреть? И OnCalculate() и OnTick() генерируются при приходе тиков. Правда здесь нужно просто знать, что ИНДИКАТОР ловит ВСЕ тики по символу, на котором прикреплен индикатор, а эксперт в OnTick() может ловить все тики, но чаще тики прилетают в эксперт пакетами, поэтому ловится последний тик из пакета.

В любой процедуре запрашивайте САМИ тики через CopyTicks() и САМИ анализируйте.

 

Anton Zverev:

...

Каждый тик любого символа нумеруется с момента коннекта к торговому счету (самый первый тик имеет нулевой номер) .

В копитикс разрешить входному параметру "количество последних тиков, которые необходимо получить" принимать отрицательное значение - это значит запрос с даты не в сторону будущего, а в сторону прошлого.

 Это вообще верх нежелания что-то программировать самому, ведь Вам придётся самостоятельно анализировать битые или подозрительные тики (у которых отсутствует или бид или аск.) - добро пожаловать в страну настоящей реальности с его тиками bid ask и last.

 
Karputov Vladimir:

Вам не надоело придумать хотелки?

Мультивалютный OnTick в студию! Костыль через IndicatorRelease предлагать не надо. Сначала подумайте над решением, а потом судите про "хотелки". Элементарную вещь не сделать без тормозного костыля. Во всех платформах это есть, в метатрейдер почему-то отсутствует. Критику по делу совсем не воспринимаете. Разработчики ничего по этому поводу не говорят, потому что понимают, что над проблемой надо работать. Адвокатов им не надо. Я предложил один из вариантов. Есть ваш - давайте.
 
Anton Zverev:
Мультивалютный OnTick в студию! Костыль через IndicatorRelease предлагать не надо. Сначала подумайте над решением, а потом судите про "хотелки". Элементарную вещь не сделать без тормозного костыля. Во всех платформах это есть, в метатрейдер почему-то отсутствует. Критику по делу совсем не воспринимаете. Разработчики ничего по этому поводу не говорят, потому что понимают, что над проблемой надо работать. Адвокатов им не надо. Я предложил один из вариантов. Есть ваш - давайте.

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

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

 
Karputov Vladimir, Artyom Trishkin, благодарю за отзывчивость..
начал по порядку - с совета Владимира.. всё получилось, как было нужно :)
спасибо еще раз.
 

подскажите как установить в метатрейдер скаченный индикатор

?????? 

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