Блог им. 3Qu

Экспорт/импорт данных из/в Квик или МТ5 для ленивых и нелюбопытных.

    • 11 апреля 2025, 22:35
    • |
    • 3Qu
  • Еще
Писать ТС в Квик или МТ5, в общем, не совсем удобно из за ограничений Квик-Луа и МТ4-5 -MQL. Лично я (не знаю как вы) предпочитаю нормальные (да, да, именно нормальные) языки программирования. Такие, как, скажем, С++, C#, Python или кто что любит, где за Луа или MQL остается минимум, а дальше уже можно разгуляться по полной программе. Однако взаимодействие с Квик-Луа и/или MQL достаточно проблематично. Эт у кого как, правда, но все же. У меня к ним личная неприязнь.))
Простейшим выходом является файловый обмен через диск. Непосредственно через жесткий диск или флешку скорость уже устраивает, но кому надо еще быстрее, можно сделать это через RAM-Disk. В памяти компьютера 1-2 MB и обмен данными со скоростью света. Так, для примера, браузер Chrom жрет до 200 MB памяти.
Протокол обмена описывать не буду, про RAM-Disk я уже как-то писал.
Теперь, что использовать для RAM-Диска. Нашел недавно новый для меня Ram-Disk — ImDisk -называется. Опробовано, все нормально. Я уже давно RAM-Disk использую для ряда задач, а, вот, ImDisk нашел с неделю назад. Сделать Диск 1-2 MB не проблема. Сам ImDisk занимает тоже совсем немного — около 1МБ или даже меньше.
Не, кто предпочитает навороты к Квик-Луа или МТ4-5- MQL, вопросов нет, дело исключительно личных предпочтений, но лично я предпочитаю простые решения, и чем проще, тем лучше.
★1
23 комментария
не проще ли ручками? Если простые решения? Ткнул пару раз и всё бапки у тебя)
Мультитрендовый, ну, если охота пялиться в монитор, то не проблема.) Мне неохота.)
avatar
3Qu, пяльтесь в мобилку)
В реальном трейдинге в общем то больше вопросов связаны с получением и обработкой информации о торговом окружении, т.е. состоянии счета, вариационной маржи, открытых ордерах, текущих позициях и прочее. Вопрос упрется не в то как, чем и в чем их обрабатывать, а как получать корректно. И здесь вы в любом случае уткнетесь в ограничения LUA/MQL.
Дмитрий Овчинников, все что может дать LUA/MQL мы получим. Дальше зависит только от нас самих.
avatar
3Qu,
ну ок, дальше в текстовый файл и на принтер ;)
Дмитрий Овчинников, дальше делаем авто ТС на привычном языке.)
avatar
3Qu,
так в боевой ТС собственно торговой логики 2-10 строчек. и еще 1000-2000 строчек получения и обработки торгового окружения, а их делать придется внутри LUA\MQL или на каждый чих обмениваться текстовым файлом и быть слоупоком?
Дмитрий Овчинников, у меня другой подход. Всю рыночную информацию импортируем в ТС. Остальное, включая индикаторы, делает сама ТС. В Луа (или МКЛ) писать вообще ничего не надо, кроме экспорта данных и импорта заявок, т.е., всего по несколько строк на каждый тип экспортируемых/импортируемых из/в терминал данных.
avatar
 А какие ограничения в Lua? Я пока не утыкался в ограничения . 
Самый простой способ обмена наверное  обычный текстовой файл .

avatar
Anest, 
Самый простой способ обмена наверное  обычный текстовой файл
Ну, да, типа того. CSV, либо JSON.
avatar
3Qu, это не серьезно, надо использовать современный формат RDF-Turtle



avatar
Beach Bunny, используйте, кто против? Вообще, хозяин — барин.
avatar
Я раньше тоже довольно скептически относился к Lua. Сейчас понимаю, что это самый простой и удобный для работы с Квиком способ .
 С# и другие конечно более мощные и универсальные языки .
Но, если в планах работать только с Квиком, то вполне годится и Lua.
avatar
Anest, дело вкуса. Луа неплохой язык для многих применений, но для автоТС он явно не подходит.
avatar
Anest, не замучаешься отлаживать все в Квике?
avatar
Beach Bunny, а чего там отлаживать. Один раз сделал, разбил на модули --> конфиг -файл, с параметрами, аккаунтами и т.д
--> основной модуль — ядро, который всё крутит/вертит ,
— > модуль который считывает активные ордера, позиции и т.д.
--> модуль работы с  заявками ставим/снимаем/мувим .
--> расчетный модуль, чего нибудь считаем, индикатор и т.д, можно отдельно несколько как правило .
--> логический модуль — задаем собственно логику и условия . 
--> модуль логирования, записываем ошибки, параметры и т.д и сохраняем .
--> можно еще визуальную графическую таблицу нарисовать, чтобы туда выводить нужные параметры, позиции и т.д . 

складываешь это всё в одну папочку, подключаешь все эти файлы, включаешь и идешь заниматься своими делами. Не нужно с утра просыпаться не свет не заря, как с другими вариантами ботов. Чтобы их запустить, проверить есть ли коннект между ботом и квиком, либо сервером и т.д. Квик сам законнектится/переконнектится  . 

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

Получается самый простой и надежный, как лопата . 
avatar
Дмитрий Овчинников, если вас устраивают и вам достаточно Луа /МКЛ, так кто же против.) Топик для тех, кто хочет быстро и просто писать на нормальных языках программирования со всеми их возможностями, а не на Луа/МКЛ с их очень ограниченной функциональностью.
avatar
Гоните данные из квика в БД  пишите проги хоть на Си, хоть на Питоне. 
А чем экспорт из Квика сразу в БД Вас не устраивает, скоростью? 
 
avatar
SergeyJu, никто, вроде, не против.
avatar
3Qu, таблица квика может выводиться, помимо самого квика, или в лист экселя или в БД. И все это работает надежно. 
avatar
SergeyJu, я в курсе. Что и как вы делаете, завтсит от того, что конкретно вам нужно.
Скажем, мне, напрмер, не нужны БД и таблицы Квик и Ексель, а нужны только свечи и данные стакана и сделок. Для этого есть события КЛуа. Через файлы грузим их в массивы нашей ТС. Все, можно работать.
Повторюсь, никто не против каких-либо других методов обмена с Квик.
avatar

теги блога 3Qu

....все тэги



UPDONW
Новый дизайн