Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
кстати в индикаторах можно использовать значение
и на следующем вызове получить его в
таким несложным образом можно разорвать логику сложный вычислений на "бесконечное" количество частей, код примерно так должен выглядеть:
Вот вот. Разработчики MQ с самого начала заложили в OnCalculate возможность асинхронного расчета, просто большинство пользователей об этом даже не задумывается.
Оригинально есть над чем подумать! Возьму на заметку.
такая схема получения предыдущих значений индикатора точно работает, я в кодобазу индикатор по Ренко барам делал, когда проверял все работало онлайн и на истории корректно рассчитывался индикатор, а в тестере почему то старые значения индикаторных буфферов "плыли" , в режиме все тики без проблем работало, а в режиме по открытию баров - лаги появлялись
и вот случайно сделал такой возврат рассчитанных значений и все стало работать как часы
ЗЫ: в сообщениях KIMIV увидел совет не пользоваться константами 1,2,3,4... если нет необходимости, а лучше писать случайные числа, с его слов упрощает поиск багов и опечаток, вот и стараюсь писать:123, 223,323 ....
Возникла сразу идея запустить несколько индикаторов и через глобальные переменные терминала передавать режимы расчётов. Надо будет попробовать как только появиться время.
Еще через EventChartCustom можно.
Еще через EventChartCustom можно.
А можно чуть подробнее про этот метод. У меня с EventChartCustom пока сложные отношения.
Еще через EventChartCustom можно.
ну вот и можно, по сути, сгенерировать событийную модель с распределенными вычислениями.... хм, следующий этап операционная система на чистом MQL?
:)
А можно чуть подробнее про этот метод. У меня с EventChartCustom пока сложные отношения.
в справке вроде полное описание, я бегло читал, но вроде все просто:
1.регистрируете пользовательское событие №ххх
2. генерируете событие
3. ловите это событие в OnChartEvent() в параметре long везде где прописали обработчик OnChartEvent()
по сути генерируете "свои тики"
Правильно ли я понимаю что можно из любого места программы вызвать EventChartCustom и это будет обработано в OnChartEvent?
Както я не нашёл этому подтверждения в мануале.
Правильно ли я понимаю что можно из любого места программы вызвать EventChartCustom и это будет обработано в OnChartEvent?
Както я не нашёл этому подтверждения в мануале.
Да.
Вы не тем занимаетесь. Работа с потоками и прочими извратами - это как стрелять по воробью из пушки. Вопрос: Зачем? Вы сюда пришли писать роботов для зарабатывания денег, а не этюды по программированию решать.
Есть конкретная задача:
Вот ее решить обычными средствами MQL4 достаточно просто. Для этого необходимо разорвать цикл расчета в OnCalculate на несколько итераций, и никаких извратов с потоками для этого делать не нужно.
Я написал рабочий прототип из двух частей: индикатора и эксперта. Индикатор имитирует тяжелый расчет, эксперт получает значения этого индикатора, паралельно сигнализируя в Comment сколько баров из общего количества рассчитано.
Индикатор
Эксперт:
Вот результат:
Конечно, доделывать здесь еще много, но у Вас же 20 лет программисткого стажа.
Еще раз поймите асинхронность != многопоточность. Асинхронность - это паттерн программирования, вид алгоритма, а не какая-то крутая внешняя библиотека типа System.Threading.
Интересная идея, смешно но в первой половине дня я уже это сделал ))), но все равно спасибо!
Осталась только проблема с тем, что терминал теперь сворачивается, происходит какое-то исключение, надо разобраться, думаю все из-за класса.
У же есть результат этой связки:
Зря пропустили этот пост:
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
MQL4 потоки (thread/fork), это возможно?
fxsaber, 2018.09.13 06:21
https://www.mql5.com/ru/code/19003
Индикаторы вешают поток чарта, скрипты и советники — нет. Кроме того, все индикаторы на инструменте/ТФ работают в одном потоке.
И задача у вас сводится к обмену данными между двумя советниками. А на эту тему здешний поиск выдаст несколько очень содержательных веток с готовыми рецептами.