Ошибки, баги, вопросы - страница 575

 
Karlson:
Если будем сидеть и только демагогию рассуждать )),то дождемся последствий еврочифа..и аля улю...

А чем Вам последствия ЕВРОЧИФА не по нраву?

papaklass:
"Огласите весь список, пжлста".(с)
+1
 
Предложение идти в ногу со временем.Писать то,что реально на данном этапе.То есть ,я против  фразы "Никак и не надо писать мультика,потому как нету многопоточности".Все таки мы не нанороботов пишем с наноалгоритмами,для торговли по супербыстрым каналам.Поэтому  сейчас ,по моему исключительно мнению,тиковая многопоточность требуется при торговле с потенциалом 1-3 спреда(до 10-20пп 4х значных),а выше достаточно одного тика по быстрой паре,а то и минутного бара для опроса.Ну а если и это не устраивает,то ChartEvent за глаза...
 
Interesting:

А чем Вам последствия ЕВРОЧИФА не по нраву?

Изначально чуть ошибся..БаксЧиф..Смысл его торговать,если уже торгуется евробакс..Далее ,как вероятность,кризис на носу..Возможно многое,вплоть до регулирования и других валют..
 
papaklass:
Да, до тех пор пока не сделают параметрическими обработчики событий OnTick(), OnTrade() и многопоточность в экспертах, о нормальных мультах приходится только мечтать. А все эти штучки - OnChartEvent() и т.д. ерунда. Это попытка заменить параметризацию основных обработчиков событий. И пока MQ будут заниматься подобной ерундистикой, вместо кардинального решения вопроса (параметры обработчиков событий и многопоточность) МТ5 будет находиться на том же уровне, на котором находится сейчас. И особых перспектив данной платформы в ее нынещнем виде, не видно. (Не видно для трейдеров).

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

Подумайте с недельку, найдите пяток смертельных условий, а потом можете опубликовать конкретику.

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

 
papaklass:
Терминал позволяет открывать 99 графиков. И ждать, когда до очередной пары дойдет очередь посмотреть что там происходит? А если в таких условиях проводить анализ на минутных барах, то Вы получите доступ к инструментам спустя полтора часа от последнего опроса. Вас это устраивает? А как же люди умудряются анализировать сотни графиков (для фондового рынка). А МТ5 позиционируется и как фондовый терминал тоже. Вот такие пироги. Так что без многопоточности и параметричности обработчиков событий никуда. Или торговать на 1 - 12 парах.

Вы в корне ошибаетесь, не зная, что:

  • каждый эксперт/скрипт работает в собственном потоке независимо от остальных
  • каждый график имеет свою собственную независимую очередь
  • каждый символ при работе на графиках имеет собственный поток выполнения, все индикаторы этого символа считаются в этом потоке, не затрагивая процессы индикаторов других символов
  • в терминале много системных потоков, которые занимаются своей работой независимо друг от друга и развязывают узкие места

К сожалению, заявления "дайте многопоточность и баста" не означают, что Вы реально понимаете существующие процессы. Над внутренними процессами в терминале мы очень хорошо поработали и реализовали очень производительную и непротиворечивую систему.

 
Loky:

ничего четкого нет в этой реализации. Правильно сформулировал проблему Interesting  в предыдущем посте. 

"сам язык (концепция самого MQL) не позволяет организовать обработку нескольких потоков внутри программы"   

Как только функция OnChartEvent()  запустится на исполнение и пока будет выполнятся код по обработке события  поступления нового тика  одной из пар, в это время  все  остальные пары со своими событиями onTick, будут отдыхать!

Вам действительно нужна высокочастотная торговля с частотой выше 1 секунды?

Думаю что нет, тогда в OnChartEvent() открывайте только флаги состояния, и задержки потока не будет, а сами вычисления перенесите в OnTimer(), и обрабатывайте только те чьи флаги открыты.

 
Urain:

Вам действительно нужна высокочастотная торговля с частотой выше 1 секунды?

Думаю что нет, тогда в OnChartEvent() открывайте только флаги состояния, и задержки потока не будет, а сами вычисления перенесите в OnTimer(), и обрабатывайте только те чьи флаги открыты.

1. И как эта конструкция в тестере будет работать?

2. Мне нужна торговля с частотой не меньшей чем  приходит новая котировка по паре. Я может быть анализирую время между котировками и их количество за определенный интервал. 

Хотелось бы, чтобы "Вычисления" проводились для двух разных пар одновременно. 

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

Например

  - выбрали в окне котировок символ, нажимаем левую кнопку мыши -> свойства ->

далее наблюдаем список событий -> выбираем ontick   дважды левой кнопкой мыши -> открывается окно для ввода кода mql5

аналогично , для других объектов терминала - графики , индикаторы и т.д.


 



 
Loky:

1. И как эта конструкция в тестере будет работать?

2. Мне нужна торговля с частотой не меньшей чем  приходит новая котировка по паре. Я может быть анализирую время между котировками и их количество за определенный интервал. 

Хотелось бы, чтобы "Вычисления" проводились для двух разных пар одновременно. 

Поскольку вычисления будут происходить в OnTimer() то одновременной обработки не будет, будет только последовательная.

При этом очередь событий накапливаться не будет. События тиков с разных пар пришедшие во время расчёта OnTimer() будут пропущены.

 
papaklass:
.....

По моему, Вы много на себя берёте. По крайней мере, стоило бы быть повежливее.

Если есть проблемы с терминалом или исполнением программ MQL5, то обращайтесь напрямую туда, куда следует - в сервисдеск. Толку будет намного больше.

 
papaklass:

1. Почему все открытые графики с индикаторами в терминале в он-лайне работают на одном ядре? У меня в компе 4-ре ядра и три простаивают. Может виновато в такой работе облако?

Гонево. Пруф в студию.

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

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

Не хватало еще геморроя с синхронизацией и дедлоками. вы хоть ооп освойте, потом многопоточнсть просите.

3. Может быть я не правильно организовал работу эксперта и есть функции в МТ5, которые позволяют использовать все ядра? Если так, то объясните что это за функции и как ими пользоваться.

Зачем эксперту использовать все ядра?

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