Создание GUI для MQL в графическом режиме. - страница 15

 
Vladimir:
Заинтересовал "каждый тик" для мультивалютного советника. Что, на один чарт приходили события приходов тиков от многих инструментов? Или "каждый тик" здесь имеет смысл, отличный от общепринятого события, которое обрабатывается фукцией OnTick и сейчас в справке описывается как "генерируется только для экспертов при поступлении нового тика по символу, к графику которого прикреплен эксперт"?

Да, не совсем верно выразился. В те времена делали бесконечный цикл, OnTick не было, была функция start

int start()
{ 
    while(true)
    {
    // обработка
        Sleep(200);
    }
}
 
Alexey Volchanskiy:

Ты реально неспособен воспринимать вопросы. Как советники общаются, мне неинтересно. Все, закрываю тему, ибо бессмысленно.

К психиатру.)) То ему механизм обмена нужен о котором не спрашивал, то не неинтересно как общаются.
Лучше о девушках рассказывай- встретил, плачет,.... накормил борщем.

 
Yuriy Asaulenko:
Блин. Вначале про ГУИ спрашивал - как общается. Ответил - никак, не надо это. Теперь, оказывается, ему надо как советники общаются.100 раз писал об этом.
Посмотри в моем блоге. Мы уже в личке все это обсуждали, и все, вроде, выяснили.
Хочешь получать нормальные ответы, задавай нормальные вопросы.) Научись, таки, формулировать.))

Заинтересовался обменом, описанном у Вас в https://www.mql5.com/ru/blogs/post/671000. У меня такой способ также работает, но я не считаю, что обмен текстовыми командными файлами, который "вполне подходит для организации вполне быстродействующих интрадей систем", не годится для скальперских целей. Еще одна цитата из Вашего блога "При этом, DLL, на этапе разработки можно заменить файловым обменом, для убыстрения которого использовать виртуальный RAM диск".

У меня никаких вопросов к быстродействию файлового обмена не возникало. Очень редко, 2-8 раз в год, встречаются ситуации порчи информации, когда в буфер ОС уже занесена новая длина файла, а его содержимое (строка до нескольких десятков байт) в этом буфере еще не обновлено. В остальном не вижу отличия передачи через файлы от любых других решений, все равно оперативная память для обмена нужна. Размер обменных файлов таков, что контроллеру диска незачем обращаться к магнитным пластинам. Чтобы уменьшить еще эту частоту, я не удаляю сигнальные файлы, а опустошаю их, чтобы у них было постоянное место на магнитной пластине (кластер). Скажите, пожалуйста, на чем основано Ваше мнение, что файловый обмен годится только на этапе разработки?

И еще один вопрос. На каждом из терминалов Вы открываете минимум два графика, правильно я понял?

Сужу по тому, что к одному графику можно прикрепить не больше одного советника, а у Вас "Для работы нам потребуется два советника МТ: первый будет по тикам писать инфу в CSV файл для чтения системой, и второй принимать информацию от системы и отвечать за торговые функции." 

Взаимодействие МТ со сторонним ПО
Взаимодействие МТ со сторонним ПО
  • 2016.05.08
  • Yuriy Asaulenko
  • www.mql5.com
Еще до начала работы на рынке мною была создана торговая система на Excel с небольшими кусками кода на VBA (Visual Basic for Application). Почему на Excel-VBA? - потому, что система несложная, и проще было на VBA. А возможности Excel позволяют свести программирование к минимуму. По мере развития доля VBA увеличивалась, и постепенно за Excel...
 
Alexey Volchanskiy:

Да, не совсем верно выразился. В те времена делали бесконечный цикл, OnTick не было, была функция start

Кажется, понял. Из приведенного Вами кода следует, что сбор последних котировок делается не чаще, чем пять раз в секунду (Sleep(200)). Это у Вас и считается минимальным периодом мультивалютного тика? Если придут чаще, пропускаете? Или сейчас, через 10 лет, эта величина (200) другая?
 
Vladimir:
Кажется, понял. Из приведенного Вами кода следует, что сбор последних котировок делается не чаще, чем пять раз в секунду (Sleep(200)). Это у Вас и считается минимальным периодом мультивалютного тика? Если придут чаще, пропускаете? Или сейчас, через 10 лет, эта величина (200) другая?

Сейчас идет выборка по таймеру с интервалом 1 сек, остальные пропускаю. 200 мс это по памяти, давно было. Выяснилось, что так часто избыточно, а при тестировании и оптимизации здорово нагружает проц.

 
Renat Fatkhullin:

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

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

Опубликуем полные тесты сравнения производительности с C++ вместе с исходниками, чтобы любой мог сам проверить.

Ренат, Вы можете добавить к изменениям маленькое дополнение: установите для фреймов графиков или для окон графиков свойство стиля WS_CLIPCHILDREN. Это позволит без дополнительных манипуляций размещать на графиках или в окнах графиках любые дочерние окна. В настоящий момент без этого свойства родительское окно (окно графика или фрейм графика) зарисовывают устанавливаемое дочернее окно. А при установке данного стиля родительскому окну все прорисовывается очень красиво.

Полагаю что данное дополнение сделать не сложно будет. А в совокупности с обратными вызовами мы приобретем очень широкие возможности разработки дополнений для МТ, не влезая в его "внутренности". )))