Инструменты для разработки торговых роботов

Автор записи: Дмитрий (Admin)
1 звезда2 звезды3 звезды4 звезды5 звезд (Голосов 8, среднее: 5,00 из 5)
Загрузка...

VSВо-первых, в папке установки терминала QUIK должны быть 2 файла справок:
info.chm - справка по работе с терминалом (в нем есть вся информация по полям транзакций, которые применяются в функции sendTransaction) и
QLUA.chm -  справка по языку QLua, держите их всегда "под рукой".

Для создания скриптов на языке Lua вполне подойдет редактор Notepad++, с небольшими настройками. Скачать его можно на сайте разработчика, он бесплатный (при установке выберите русский язык). Устанавливается стандартным способом.

После установки, если у Вас Windows 7/8/10, в свойствах ярлыка программы, на вкладке "Совместимость" поставьте галочку "Запускать от имени администратора" и нажмите "Применить". Это нужно для того, чтобы скрипты, находящиеся в папке "Program Files (x86)" можно было без проблем редактировать и сохранять.Запустите Notepad++. Для того, чтобы русский текст не подчеркивался как ошибка, пройдите по меню: "Плагины" -> "DSpellCheck" -> "Change Current Language" -> "Download More Languages...", поставьте там галочку напротив "Russian" и нажмите кнопку "Install Selected". После этого снова пройдите: "Плагины" -> "DSpellCheck" -> "Change Current Language" и нажмите на строку "Multiple Language". Теперь программа сверяет текст как с английским, так и с русским словарями.

ВАЖНО!!! Для QUIK необходимо сохранять скрипты в кодировке Windows-1251, иначе русский текст не будет адекватно отображаться.
Для того, чтобы задать скрипту кодировку, нужно перейти: "Кодировки" -> "Кодировки" -> "Кириллица" -> "Windows-1251"

Более интересный вариант - это Visual Studio Code с плагинами Russian Language Pack for Visual Studio Code и Lua
Мы используем такие настройки профиля:

{
    "files.encoding": "windows1251",
    "editor.tabSize": 3,
    "files.autoGuessEncoding": true,
    "Lua.codeLens.enable": true,
    "[lua]": {
        "editor.defaultFormatter": "sumneko.lua"
    },
    "Lua.runtime.unicodeName": true,
    "Lua.workspace.ignoreSubmodules": false,
    "Lua.type.weakNilCheck": true,
    "Lua.runtime.fileEncoding": "ansi",
    "git.enableSmartCommit": true,
    "security.workspace.trust.untrustedFiles": "open",
    "git.confirmSync": false,
    "editor.minimap.enabled": false,
    "window.zoomLevel": 1
}

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

Для разработки приложений на языке C# есть отличная среда разработки (IDE) Visual Studio от компании Microsoft. Советую Вам использовать именно ее, причин для этого очень много, назову основную: и язык C# и платформа .Net Framework, всю мощь которой он использует, созданы и продолжают развиваться компанией Microsoft. По-этому, логичным будет, использовать и язык и платформу и среду разработки одной компании. Еще один неоспоримый плюс это возможность получить бесплатно среду разработки непосредственно на сайте Microsoft.
Это Visual Studio Community последней версии.
После установки, программа предложит войти в свою учетную запись Microsoft, если у Вас ее еще нет, рекомендую зарегистрировать, т.к. в ней будут автоматически сохраняться Ваши настройки из Visual Studio. И если Вы решите переустановить ее, например после переустановки Windows, то Ваши настройки будут автоматически загружены с сервера Microsoft.

Если у Вас появились какие-то вопросы, задайте их в комментариях под статьей !!!

Добавить комментарий

Инструменты для разработки торговых роботов: 23 комментария

  1. Добрый день!маленький вопрос программа Visual Studioпросто огромна, не подскажите какие компоненты поставить, если я только буду пробовать изучить lua в привязке квик?

  2. Привет, в Нотепад открыл код одного скрипта потом второго. И мы видим только код активного окна, можно ли как-то сделать в настройках, что-бы видеть два окна три и т.д. (как это реализовано в МТ4 и МТ5) ? Сам ковырялся в настройках но ничего не получилось.

  3. Кроме Notepad++ промелькнул продукт SciTE. В Notepad'e есть возможность раскрасить служебные слова. Кроме этого как бы можно добавить свой синтаксис с набором ключевых слов и так же их раскрасить. Заманчиво - но добавить ничего не получилось. В SciTE не нашёл таких настроек вообще, да и меню не на родном мне языке).
    Кто-нибудь ставил перед собой подобные задачи?

        1. Я просто подумал вдруг Вы не нашли в нотепаде стандартный луа-синтаксис и хотели сами его создать 🙂 Тогда лично я ничего Вам не подскажу, не пытался добавлять. И на сколько я понял, нотепад дает возможность свой синтаксис с нуля создавать, а если есть потребность добавить в существующий, то нужно, как я понимаю, этот плагин установленный как-то редактировать. Надеюсь кто-то из здесь присутствующих поможет Вам советами.

  4. Спасибо за ответ.
    Я согласен с Вами, что на счет C#. Смущает объем изучаемой информации.
    Если пойти по пути создание приложений в C# то нужно изучить C# + Qlua .
    Если в Qlua соответственно одна программа.
    Наверно так и придется делать на C# .
    Спасибо.
    С уважением, Александр

  5. Замечательный сайт. Огромное Вам спасибо.
    Не знал где задать вопрос задал здесь.
    Подскажите пожалуйста, есть ли в Lua библиотека с оконный интерфейс? Если есть то какая и ссылку на рабочий пример если можно.
    Нужно написать модуль управления, в который поступают управляющие сигналы с Amibrokerа, а модуль передает сигналы на несколько квиков, и осуществляет контроль за сделками и капиталом, а также осуществляет ручное управление всеми квиками. В модуле должны быть окошечки, кнопочки и прочее....
    Сейчас робот работает один Amibroker один квик

    С уважением, Александр.

    1. Здравствуйте, Александр! Спасибо за добрые слова! Библиотеки такие есть для QLua, но может быть Вам больше подойдет создать приложение на C#, которое будет решать все эти задачи, а Qlua использовать только как связку с C#, для выполнения торговых приказов в QUIK полученных из C#, и для обратной связи о сделках? Ведь если использовать такую библиотеку, то Ваш модуль будет привязан к определенному терминалу QUIK... Да и вообще, в C# намного больше возможностей и "удобств" для разработки сколь угодно сложных решений, чего нельзя сказать про сторонние библиотеки для QLua.