Асинхронное и многопоточное программирование в MQL - страница 21

 
Roman:


Вот для наглядного примера, примерное написание линейного асинхронного кода в одном потоке.

CTask *task2   = obj2.CALLBACK_FUNC(DeleteOrdersLimits(Magic));  //Выполняется асинхронно в пуле потоков

это не будет работать:

Igor Makanu:

но при использовании многопоточных  приложений контроль этих потоков - это головная боль разработчика, не проверил готовность расчета - получил баг, который в неизвестное время появится

ладно, было у меня желание в топике с таким красивым названием отписаться - написал, так написал... вспомнил Дон Кихота и его вечную борьбу с ветряными мельницами ))))

команда профессионалов собралась достойная, думаю есть еще о чем поговорить

 
Yuriy Asaulenko:

....

ЗЫ Зачем мне, гипотетически, ваш ГУИ и пр., если это можно в два притопа написать на Шарпах или Питоне? Юзеру тем более без разницы на чем написано, ему функциональность нужна, а не конкретика реализации. Т.е., программисту подобные продукты не нужны, а юзеру вообще без разницы, ему цена важна, а на Шарпах это заведому дешевле и функциональней.

1. А покупателей своих шарповских программ Вы где искать будете?

2. А как докажите безопасность этих программ?

3. Вы, как опытный программист, предлагаете отказаться от прикладного языка в разработке ТС, потому что... я за годы так и не понял почему.

4. Если предлагаете сделать гибридную программу, - использовать  GUI шарпа, а логику писать на МКЛ, - попробуйте связать шарповские таблицы с советником. Уже полгода прошло, а статья которая бы показывала как это сделать еще не вышла. Подозреваю, там очень серьезные проблемы. А GUI на уровне кнопок - можно и штатной библиотекой сделать.

Короче, Ваше предложение оставить МКЛ, это как предложение сделать то, не знаю что и пойти туда, не знаю куда, потому что там, вроде бы неплохо кормят....

 
Igor Makanu:

это не будет работать:

Это работает в Си и С++  в одной из библиотек ))
Чем отличается mql от C++ ?
Было бы желание разработчиков, то этот функционал в mql для них реализовать очень даже реально.
Ведь сама идея стоит то внимания. тем более эти технологии известны.
И скорее всего работа на агентах реализована подобным образом, в пуле потоков.

 
Реter Konow:

1. А покупателей своих шарповских программ Вы где искать будете?

2. А как докажите безопасность этих программ?

3. Вы, как опытный программист, предлагаете отказаться от прикладного языка в разработке ТС, потому что... я за годы так и не понял почему.

4. Если предлагаете сделать гибридную программу, - использовать  GUI шарпа, а логику писать на МКЛ, - попробуйте связать шарповские таблицы с советником. Уже полгода прошло, а статья которая бы показывала как это сделать еще не вышла. Подозреваю, там очень серьезные проблемы. А GUI на уровне кнопок - можно и штатной библиотекой сделать.

Короче, Ваше предложение оставить МКЛ, это как предложение сделать то, не знаю что и пойти туда, не знаю куда, потому что там, вроде бы неплохо кормят....

1. Покупателей искать на стороне. На Маркете свет клином не сошелся.

Маркет - это никак не бизнес. Вот, для МК - это часть бизнеса.)

2., 3. и 4. Для меня МКЛ (или любой другой язык любого терминала) не более чем язык интерфейса между терминалом и ТС. ТС не должна зависеть от терминала, и должна иметь возможность через соответствующий интерфейс подключаться к любому терминалу.

У меня эта концепция изначально. Все это вполне реализуемо, не вижу проблем. Вот, скажем, что делает МКЛ с помощью ДЛЛ.


Никакого импорта библиотек в МКЛ нет. В базе данных видим историю ТФ 1м и стакан. Все это заполняется реал-тайм по ходу пьесы.
 
Я сделал очередь сообщений, которая по таймеру обрабатывает входящие команды и делает оповещение о завершении операции. не вижу прямой необходимости создавать отдельные потоки
 
Yuriy Asaulenko:

1. Покупателей искать на стороне. На Маркете свет клином не сошелся.

Маркет - это никак не бизнес. Вот, для МК - это часть бизнеса.)

2., 3. и 4. Для меня МКЛ (или любой другой язык любого терминала) не более чем язык интерфейса между терминалом и ТС. ТС не должна зависеть от терминала, и должна иметь возможность через соответствующий интерфейс подключаться к любому терминалу.

У меня эта концепция изначально. Все это вполне реализуемо, не вижу проблем.

1 и 2 - не ответили. Искать непонятно где и непонятно как убеждать что программы безопасны?  И инструкцию по запуску в 10 страниц предлагать прочитать, как ТС написанную на неприкладном языке подключать ко всевозможным платформам? ))

Мультиплатформенная ТС - хочешь поставить? - Выучись на программиста и поймешь как!

Знаете, Вы каждый раз заставляете меня смеяться. Ну серьезно. Программист-практик, который призывает не использовать прикладной язык для решения узкоспециализированных задач, а решать эти задачи на УНИВЕРСАЛЬНЫХ языках, ради УНИВЕРСАЛЬНОСТИ! Практичность и целесообразность просто бьет ключем из каждой фразы.

 
Yuriy Asaulenko:
....


Никакого импорта библиотек в МКЛ нет. В базе данных видим историю ТФ 1м и стакан. Все это заполняется реал-тайм по ходу пьесы.

Нет. Это вы просто передаете данные из платформы раз в минуту. Вы покажите живое взаимодействие и заполнение таблицы данными чаще, чем раз в секунду. И данные должны передаваться в двух направлениях. Из МКЛ в шарп и обратно.

 
Реter Konow:

Знаете, Вы каждый раз заставляете меня смеяться. Ну серьезно. Программист-практик, который призывает не использовать прикладной язык для решения узкоспециализированных задач, а решать эти задачи УНИВЕРСАЛЬНЫМИ методами и ради УНИВЕРСАЛЬНОСТИ! Практичность и целесообразность просто бьет ключем из каждой фразы. 

Если честно, мне тоже весело читать ваши посты. О бизнесе, в частности.

Никого я ни к чему не призываю и ничем не торгую. Хотите использовать потоки - используйте С++/С#, и никаких проблем. Или можете вечно стонать, что в МКЛ нет потоков.

 
Реter Konow:

Нет. Это вы просто передаете данные из платформы раз в минуту. Вы покажите живое взаимодействие и заполнение таблицы данными чаще, чем раз в секунду. И данные должны передаваться в двух направлениях. Из МКЛ в шарп и обратно.

Раз в минуту. Знаток технологий.)) Есть у вас событие -ОнТик, вызываете по нему функцию ДЛЛ и передаете текущие данные о свече. Все.)

Ну, ладно, проехали.

 
Yuriy Asaulenko:

...

Хотите использовать потоки - используйте С++/С#, и никаких проблем.

Там они нам без надобности. Возможности других языков не поспособствуют росту уровня программ здесь, в сообществе.  Будут безобразные, уродливые гибриды для личного пользования и все.
Причина обращения: