PostMessageA(Parent(), WM_COMMAND, 33042, 0); - страница 7

 
xrust >>:

так и пользуйте Close[0] на здоровье, вот подобный индюк - прекрасно работает как втестере, так и в онлайне

С ценами как раз почти решимо, но што прикажете делать с функцией TimeCurrent()? Мне нужна точность внутри минуты, а её нет. И вообще все временные функции не пашут.

Кстати вижу в Вашем коде что Вы используете цены Bid Ask - но дык они же в тестере не цепляются(вернее цепляются текущие цены)... непонятно как вы ими работаете.

 

все прекрасно пашет, время в тестере эмулируется отлично...

 
xrust >>:

все прекрасно пашет, время в тестере эмулируется отлично...

А тот код из примера тоже работает?

Да мне и тут сказали что это и не должно работать в индюке.

https://www.mql5.com/ru/forum/111497/page539

 

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

 
xrust >>:

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

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

 

Что то я не пойму кто у тебя за кем идет ?
тогда сделай всю обработку в советнике, а индикатору через глобальные переменые передавай значения которые он будет отображать на экране и писать в буфера...
Кто у тебя пишет в файл?

 
xrust >>:

Что то я не пойму кто у тебя за кем идет ?
тогда сделай всю обработку в советнике, а индикатору через глобальные переменые передавай значения которые он будет отображать на экране и писать в буфера...
Кто у тебя пишет в файл?

В электронике это называется race condition.

Индикатор и советник начинают расчет в один и тот же момент с приходом тика и считают параллельно. При этом советник пишет в глобальную переменную, а индикатор одновременно читает её в тот же момент. Так как эти процессы несинхронизированы между собой и паралельны то невозможно знать кто выполнит запись или чтение первым. Разница во времени - доли секунды и зависит от многих факторов. Но если индикатор прочитает первым то он прочитает на данном тике предыдущие данные. Поэтому выход в такой ситуации - поставить задержку в индикаторе штоб он не опережал советника при обращении к глобальной переменной.

А файла тут никакого нет.

Но в принципе решение найдено - пользоваться объектами для нарисовки линий и тогда необходимость в индюках полностью отпадает и вообще тогда их присутсвие в МТ4 становится полностью излишним... но не будем про политику :))

Жаль только что нигде в документации это особо не рекомендуют ибо это решает все проблемы с переносами кода из индюка и тестированием.

 
То есть, сплошного тикового потока не получить?
 
Alderon >>:
То есть, сплошного тикового потока не получить?

В индюке можно только через обмен времени через глобальную переменную. Но лучше не заморачиваться с индюками воопще и делать всё в эксперте через графические объекты. Будет и быстрее и проще. То что иногда в документации пишут что индюки удобны для аналитики - то это на практике не так.

Вот отличная статья про это https://www.mql5.com/ru/articles/1503/page2

 
Zhunko >>:

Что угодно можно сделать трендовыми линиями.

А каким образом рисуются экспертом трендовые линии в подокне? - ведь эксперт не может открывать подокна сам.

Нужно подцеплять для этого пустой индикатор шоб болтался сбоку?

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