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

 

Я понял почему std::async столь тормозной. Дело в том, что у меня linux+gcc/clang, здесь позади async не стоит пул потоков, для каждого нового задания тупо каждый раз запускается новый поток. Сбило меня с толку то, что последовательно созданные и тут же разрушенные два потока будут иметь одинковый id:

void f() {
   cout << this_thread::get_id() << endl;
}

int main()
{
   thread t1{f};
   t1.join();

   thread t2{f};
   t2.join();
   return 0;
}
// cout: 140448079447808
// cout: 140448079447808

Тест async на винда+msvc показал, что в тесте, где gcc запускал 10 потоков, msvc запускал 6 (4 ядерный цпу), т.е. это не  тупой запуск нового потока под задание, явно есть какая-то очередь.

Вывод: более-менее адекватный async лишь на винде (через пул потоков).

В моём случае это точно, так как понял что пул статичный по количеству потоков, мне это не подходит.

Пул не статичный, и размер можно менять. А буд-то вы async() сильно контролируете :), как-видно - стандарт даже не гарантирует реализацию (пул потоков или нет), а если и пул, то никакого влияния вы на него не имеете (захочется компилятору выделить под пул 1 поток, вас даже не спросит).

Но если вы пишите лишь под винду, то юзать async в принципе можно (хотя я к нему теперь отрицательно отношусь).

ЗЫ: нахрена нужен async без пула потоков я вообще не понимаю ...

 
Vict:

Я понял почему std::async столь тормозной. Дело в том, что у меня linux+gcc/clang, здесь позади async не стоит пул потоков, для каждого нового задания тупо каждый раз запускается новый поток. Сбило меня с толку то, что последовательно созданные и тут же разрушенные два потока будут иметь одинковый id:

Тест async на винда+msvc показал, что в тесте, где gcc запускал 10 потоков, msvc запускал 6 (4 ядерный цпу), т.е. это не  тупой запуск нового потока под задание, явно есть какая-то очередь.

Вывод: более-менее адекватный async лишь на винде (через пул потоков).

Пул не статичный, и размер можно менять. А буд-то вы async() сильно контролируете :), как-видно - стандарт даже не гарантирует реализацию (пул потоков или нет), а если и пул, то никакого влияния вы на него не имеете (захочется компилятору выделить под пул 1 поток, вас даже не спросит).

Но если вы пишите лишь под винду, то юзать async в принципе можно (хотя я к нему теперь отрицательно отношусь).

ЗЫ: нахрена нужен async без пула потоков я вообще не понимаю ...

C учетом результатов эксперимента и новой информации, изменилось ли ваше мнение относительно необходимости многопоточности в MQL?
 
Реter Konow:
C учетом результатов эксперимента и новой информации, изменилось ли ваше мнение относительно необходимости многопоточности в MQL?

Ну я тут крыл async - высокоуровневая обёртка для ленивых. В целом я не против многопоточности.

Буду ли я пользоваться многопоточностью в мкл? Нет, не буду. Пётр, я мимо маркета, и меня, если честно, не сильно интересует закрытая экосистема с мощным языком. Для чего создавать ещё один C++ (что совсем непростая задача)? Для того чтобы самые "предприимчивые" продавали "граали" строго через маркет? Ну так себе миссия.

 
Vict:

Ну я тут крыл async - высокоуровневая обёртка для ленивых. В целом я не против многопоточности.

Буду ли я пользоваться многопоточностью в мкл? Нет, не буду. Пётр, я мимо маркета, и меня, если честно, не сильно интересует закрытая экосистема с мощным языком. Для чего создавать ещё один C++ (что совсем непростая задача)? Для того чтобы самые "предприимчивые" продавали "граали" строго через маркет? Ну так себе миссия.

Ну, наверное наоборот. Чтобы самые предприимчивые продавали что то кроме "граалей". Ведь именно "граали" не требуют серьезных инструментов. Если будут появляться новые мощные приложения, то возможно "граале-паразитирование" в алготрейдинге пойдет на спад и ценность профессионального подхода возобладает.  Не факт конечно, но может быть...
 
Vict:

Буду ли я пользоваться многопоточностью в мкл? Нет, не буду. 

ну хоть один искренний ответ на вопрос: зачем многопоточность в задачах MQL? 

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

Реter Konow:
Ну, наверное наоборот. Чтобы самые предприимчивые продавали что то кроме "граалей". Ведь именно "граали" не требуют серьезных инструментов.

Петр! У Вас талант делать громкие заявления ввиду низкой компетентности!

Если не ошибаюсь, Вы вообще не владеете навыками написания торговых экспертов, даже элементарно открыть/закрыть по одному индикатору, и вот Вы утверждаете, что создать эксперта торгующего на истории исключительно в плюс это не требует серьезных инструментов?

Попробуйте написать хоть одного торгового эксперта - Вас ждет мир увлекательных приключений!

))))

 
Igor Makanu:

ну хоть один искренний ответ на вопрос: зачем многопоточность в задачах MQL? 

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

Петр! У Вас талант делать громкие заявления ввиду низкой компетентности!

Если не ошибаюсь, Вы вообще не владеете навыками написания торговых экспертов, даже элементарно открыть/закрыть по одному индикатору, и вот Вы утверждаете, что создать эксперта торгующего на истории исключительно в плюс это не требует серьезных инструментов?

Попробуйте написать хоть одного торгового эксперта - Вас ждет мир увлекательных приключений!

))))

Не хочу начинать оффтоп в теме, но талант делать громкие заявления ввиду низкой компетентности у Вас тоже есть. В данном случае, Вы не знаете моих возможностей и опыта. Я никогда не писал индикаторы, это правда, но эксперты я писал и не мало ими занимался. А чего стоят Ваши утверждения по поводу Шарпа в MQL, который должен был раздавить мои разработки? И того, что я со своим подходом ничего серьезного сделать не могу, и у меня все работает плохо и т.д? Высокая компетентность? )

Достаточно посмотреть в маркет, чтобы увидеть, что (почти) ничего кроме "граалей" там не продают. 13000 "граалей" и 1000 утилит, индикаторов и библиотек. На вскидку. Следовательно, "граали" клепать легко. Особенно на МТ4. И именно создание "граалей" определяет востребованный инструментарий MQL, ставя барьер развитию приложений.

 
Реter Konow:

Не хочу начинать оффтоп в теме, но талант делать громкие заявления ввиду низкой компетентности у Вас тоже есть. В данном случае, Вы не знаете моих возможностей и опыта. Я никогда не писал индикаторы, это правда, но эксперты я писал и не мало ими занимался. А чего стоят Ваши утверждения по поводу Шарпа в MQL, который должен был раздавить мои разработки? И того, что я со своим подходом ничего серьезного сделать не могу, и у меня все работает плохо и т.д? Высокая компетентность? )

Достаточно посмотреть в маркет, чтобы увидеть, что (почти) ничего кроме "граалей" там не продают. 13000 "граалей" и 1000 утилит, индикаторов и библиотек. На вскидку. Следовательно, "граали" клепать легко. Особенно на МТ4. И именно создание "граалей" определяет востребованный инструментарий MQL, ставя барьер развитию приложений.

странно, если Вы писали торговых экспертов, то почему у Вас возникали вопросы в топик "Мой подход" про элементарные действия, как получить свойства открытого ордера? (когда Вы писали таблицу), как и сейчас, громкое заявления, что написать тестерный Грааль это не требует трудозатрат?

ну раз Вы все умеете, тогда Вы не удачно пошутили?


мои утверждения про Шарп лежат у меня в блоге и в КБ в публикациях @fxsaber, все работает и таблицы тоже, причем тестировал  @fxsaber под свое видение как должны работать таблицы, в этом оказалась довольно трудная техническая реализация - ему нужно было вывести таблицу истории сделок более 6000 строк на 20 столбцов   более 100 тыс  значений! и во вторую вкладку  текущие открытые ордера в виде 19 столбцов инфы, все работает и ничего не тормозит ни онлайн ни в тестере ;) . Каждую панельку можно передвигать, сложить и восстановить и ничего не потеряется и главное не нагружает терминал и ПК в целом  ( тестировали, я больше 7-8% загрузки процессора не смог добиться ни на ПК ни на ноуте )

PS: про Маркет ничего не скажу и Вам не советую, см мой пред.пост - ни Вы ни я там не опубликованы, соответственно уровень компетенции ровно ноль ;) 

PSPS: Вас прям на некий на батл распирает ))) чтобы доказать, что Шарп по скорости написания прикладного софта уступает Вашему творчеству? )))) - ну попробуйте в своем топике "Мой подход" выложить таблицу в которой будет хотя бы 10 тыс клеток, посмотрите как будет все работать;)

 
Igor Makanu:

странно, если Вы писали торговых экспертов, то почему у Вас возникали вопросы в топик "Мой подход" про элементарные действия, как получить свойства открытого ордера? (когда Вы писали таблицу), как и сейчас, громкое заявления, что написать тестерный Грааль это не требует трудозатрат?

ну раз Вы все умеете, тогда Вы не удачно пошутили?


мои утверждения про Шарп лежат у меня в блоге и в КБ в публикациях @fxsaber, все работает и таблицы тоже, причем тестировал  @fxsaber под свое видение как должны работать таблицы, в этом оказалась довольно трудная техническая реализация - ему нужно было вывести таблицу истории сделок более 6000 строк на 20 столбцов ~ 12 000 значений и во вторую вкладку  текущие открытые ордера в виде 19 столбцов инфы, все работает и ничего не тормозит ни онлайн ни в тестере ;) . Каждую панельку можно передвигать, сложить и восстановить и ничего не потеряется и главное не нагружает терминал и ПК в целом  ( тестировали, я больше 7-8% загрузки процессора не смог добиться ни на ПК ни на ноуте )

PS: про Маркет ничего не скажу и Вам не советую, см мой пред.пост - ни Вы ни я там не опубликованы, соответственно уровень компетенции ровно ноль ;) 

В моих стратегиях не было необходимости в истории ордеров и я с ней не работал, но это не значит, что я не знаю как открывать ордера и прочее. К тому же, с экспертами работал давно. Но все это очень просто, (особенно с моим подходом). Сложности создать торгующего эксперта у меня нет. Уровень сложности создания графики значительно выше и поэтому экспертов много, а графики почти нет. (Спросите у @fxsaber.) А статью про подключение шарповских таблиц я жду уже давно. (Только моего уровня легкости подключения Вам не добиться, поверьте на слово. :))

Статус продавца Маркета вряд ли делает человека мыслителем и открывает глаза на экзистциональные проблемы алготрейдинга.))

 
Igor Makanu:
...

PSPS: Вас прям на некий на батл распирает ))) чтобы доказать, что Шарп по скорости написания прикладного софта уступает Вашему творчеству? )))) - ну попробуйте в своем топике "Мой подход" выложить таблицу в которой будет хотя бы 10 тыс клеток, посмотрите как будет все работать;)

Я выкладывал там таблицу на MQL4 в 1000 рядов и в каждом ряду было более 20-ти ячеек. В сумме более 20 тыс. ячеек. Вы же ее видели. Работала очень резво. Посмотрите еще раз, если не верите. Подчеркну - MQL4. На пятерке бы работала в 10 раз быстрее.

 
Реter Konow:

Я выкладывал там таблицу на MQL4 в 1000 рядов и в каждом ряду было более 20-ти ячеек. В сумме более 20 тыс. ячеек. Вы же ее видели. Работала очень резво. Посмотрите еще раз, если не верите. Подчеркну - MQL4. На пятерке бы работала в 10 раз быстрее.

Хоть миллион ячеек. Если видно из них 1000 максимум на экране, зачем все обновлять / рисовать?

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