Блог им. IvL

Enter Trade 0.1 - Торговый привод для терминала Quik с открытым исходным кодом

Спустя месяц работы, наконец-то закончил работу над первой версией торгового привода для Quik. На данный момент привод заточен для работы на срочном рынке FORTS Московской биржи. Название придумалось как «Enter Trade». Текущая версия 0.1. Сегодня на сайте выложил исходники, можно скачивать, изучать, тестировать, пробовать и давать обратную связь. Часть идей оставлена на следующие релизы.
Enter Trade 0.1 - Торговый привод для терминала Quik с открытым исходным кодом
Описание

Умеет: открывать длинную позицию, открывать короткую позицию с заданным объемом, закрывать позицию частично либо полностью, автоматически выставлять защитные стоп-ордера (тип стоп и тейк №9).

Дополнительно умеет: генерировать журнал сделок, рассчитывать максимальный объем контрактов для входа в позицию, максимально допустимый размер стоп-лосса при заданных параметрах риск-менеджмента, также имеется возможность создавать оповещения с звуковым сигналом по различным событиям (достижение ценой определенного значения, пересечение с индикаторами — пример см. в файле «Settings.Callback.Alert.lua»).

Также в архиве в файле «Settings.Callback.Robot.lua» описаны 4 простых робота (1 только покупки, 2 только продажи, 3 чередует покупку с продажей, 4 случайный вход на покупку или на продажу).

В рабочем окне привода отображается основная повседневная информация для трейдера о текущих открытых позициях, о количестве стоп-заявок по инструменту, о текущем состоянии счета, об изменении счета за день, о текущем состоянии сессии.

Установка:

— Привод в основном тестировался в Quik7, Windows 7,8):
— 1. Для проигрывания звуков необходимо скачать и закинуть в папку Quik библиотеку «w32.dll»: quik2dde.ru/viewtopic.php?id=78
— 2. При первоначальном знакомстве рекомендуется опробовать привод на демо-счете
— 3. После скачивания архива все содержимое архива необходимо разместить в папку, где установлен Quik («C:\QUIK-...\LuaIndicators\»)
— 4. В файле «EnterTrade.Settings.All.lua» необходимо установить ваш «Торговый счет» и «Код клиента»
— 5. В файле «EnterTrade.Settings.All.lua» в переменной «FILE_SETTINGS_LIST_TICKETS» необходимо перечислить список торгуемых тикетов
— 6. Проверить сущестование папки для логов («C:\QUIK-...\LuaIndicators\EnterTradeLog»), если она была удалена по какой-либо причине
— 7. После вышеперечисленного, необходимо запустить сам скрипт «Сервисы > Lua-скрипты… > Добавить»
— 8. Важно: пока работает скрипт крайне не рекомендуется открывать файлы "№СЧЕТА.report.csv" и "№СЧЕТА.report.full.csv"
— 9. Важно:
— по умолчанию при запуске скрипта в файле «Settings.Callback.Alert.lua» приведен пример оповещения на основе пересечения цены и индикатора SAR, их необходимо затереть
— по умолчанию при запуске скрипта в файле «EnterTrade.Settings.Callback.Robot.lua» в качестве примера описаны 4 торговых алгоритма (робота), их необходимо затереть
— 10. Важно: убедиться что не запущено два экземпляра торгового привода (обычно может происходить после перезапуска Quik и ручного запуска еще 1 экземпляра)!

Ссылки на скачивание: 
СКАЧАТЬ VK-ГРУППА YOUTUBE-ПЛЕЙЛИСТ

Enter Trade 0.1 - Торговый привод для терминала Quik с открытым исходным кодом

  • обсудить на форуме:
  • Quik Lua
★28
29 комментариев
ЗакрепитьКомментарий закреплен пользователем Иван
Иван, 
require('luacom').CreateObject(«wmplayer.ocx»).URL=«C:...\\alert.wav»

Я так воспроизвожу
Николай И, это стандартная библиотека квика в версиях 7 и 8?
avatar
Иван, Спасибо за отличный инструмент! который давно пора было Квику добавить! 
avatar
Tim, есть пока ряд неточностей, например депозит предыдущего дня заметил что изменяется после клиринга в 14-00. Поэтому придется как-то его по другому записывать… Во всех видео и описаниях забыл упомянуть также что журнал сделок будет считаться не правильно если открыть позицию в ручную (а не через кнопки BUY, SELL), т.к. когда нажимается кнопка очень важную роль играет поле комментарий — в него пишется LO/400/3 (LONG OPEN, STOP LOSS в пунктах, Соотношение риск-прибыль...). Аналогичные комментарии для закрытия позиции, в т.ч. по закрытию через стоп-лосс.
avatar
Все здорово, только 32х Квик умрет через пару месяцев, в связи с введением 19-ти знаковых ордеров на Фортс. Луа 5.1 тоже, но на 5.3. небольшие изменения в скриптах.
Да уже и сейчас Квик 7 немного осталось.
avatar
3Qu, библиотека 32x используется только ради 1 цели — воспроизведение звука (музыки) для Alert. Не нашел пока других альтернатив. В т.ч. пробовал другие dll-библиотеки и воспроизведение звука через «os.execute ('start /i /min /b C:\\VideoLAN\\VLC\\vlc.exe -I dummy --dummy-quiet C:\\windows\\media\\tada.wav');». Может кто-то подскажет как можно воспроизвести звук.

В Quik 8 заметил только 1 ошибку - ACCESS DENIED.
avatar
3Qu, не пугай так.
Владимир Гончаров, это реальность.
Хуже, что Квик сервера 7 не поддерживают Квик 8.
Один брокер у меня с Квик 7 — жду обновления, иначе в июне играть на Фортс будет уже невозможно. Но у меня для этой штуки предусмотрен другой брокер. Одна из причин того, что его завел.
avatar
3Qu, полагаю со временем все равно придется переходить на Quik8. И библиотеку w32.dll кстати для него судя по информации о ней обновили. Привод запускал и тестил в 8, периодически при смене тикетов (стрелки вправо, влево) вылазит ошибка нет доступа и скрипт падает (приходится перезапускать). 8 Quik, как читал почему-то нужно запускать с правами администратора, и возможно с этим как-то связана данная ошибка. 
avatar
Иван, 8.2… у меня был до последнего времени, особых глюков не замечал. Неск дней назад поставил 8.5.2.11 — вроде все ОК. Существенно лучше 8.2. — заметно меньше подвисает. Но на 8.5. еще не торговал.
Ставится элементарно — 5 минут, только апдейт файлы в папку Квик скопировать.
avatar
3Qu, а вы его запускаете с правами администратора (правая кнопка мыши, «Запуск от имени Администратора», или как обычно кликнув на икноку?
avatar
Иван, нет, не запускаю. Но у меня, хоть я и не админ, на компе права админа по умолчанию. Имхо, на домашних компах у большинства так.
avatar
Иван, «8 Quik, как читал почему-то нужно запускать с правами администратора»
Потому что windows не даёт квику записывать файлики в его папку. Не ставьте квик в program files и вообще на диск C, ну или запускайте с правами от админа.
avatar
Иван, забыл добавить: этот момент (с правами администратора) не специфичен для 8-ой версии квика, 7-ая также.
avatar
3Qu, В июне ещё не будет 19 знаков в заявках/сделках, это уже точно.
avatar
3Qu, сбер недавно обновился, угадайте до какой версии?  7.27. у них 1 сервак, у Открытия несколько но резервный не поддерживает 8 версию что + т.к. если глючат основные сервера с 8 туда не сунуться. сам на резервном и доволен.
Владимир Гончаров, у меня сбер на той неделе обновился до 8.3
avatar
Надо скачать.
Пробовать.
Пробовал сделать по вариационке стоп ставить, не получалось.
Программировать тяжело мне.
Вариационку в программе нужно считать и в безубыток стоп ставить и тралить за ценой, потом на % расстоянии снова трейлить.
Итак изо дня в день по 1% хотя бы .
По индикаторами ничего не берет.
"— по умолчанию при запуске скрипта в файле «EnterTrade.Settings.Callback.Robot.lua» в качестве примера описаны 4 торговых алгоритма (робота), их необходимо затерет"

Самое интересное и затереть!!!

Как торгуют боты?
Что их надо затирать?
avatar
Антон Б, было интересно посмотреть как будет себя вести разработанный  алгоритм по отправке и отслеживанию статуса транзакций (функция sendTransaction(), а также функции отслеживания событий OnTransReply(), OnTrade(), OnOrder(), OnStopOrder()) — после изучения Lua не совсем понятно почему это область задачи разработчика. Достаточно не простая задача, на формах люди описывают целые системы как реализовать это отслеживание. По итогам разработки и пришла идея в голову как-то протестить это дело и был придуман такой файлик с 4 роботами что бы оставил утром и в конце дня смотришь что получается, были ли ошибки. Формально его содержимое нужно открыть блокнотом, и затереть — данное содержимое оставил только для тех, кому будет интересно.
avatar
Иван, боты как торговали?
если боты у тебя торгуют в плюс зачем самому сидеть у монитора?

avatar

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

Первый из них всегда будет убыточным когда рынок идет вниз к примеру...

На основе их тестирую привод и риск-менеджер (он в доработке), а также по каждому пробовал собирать статистику для журнала что бы свериться что генерируемый журнал сделок (кнопка в самом низу, записывает файл в папку EnterTradeLog/[№Счета].journal.csv) и расчеты средневзвешенных цен под сделкам считается правильно, т.е. по идее то что будет видно в журнале сделок в колонках результат в руб., будет соответствовать текущему депозиту.

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

avatar
Иван, lua это очень плохо, потому что ненадежно.
1) нет ide,
2) нет обработки ошибок,
3) внутри quck — проприетарное г динозавра,
4) самое главное — время на обучение lua ничего не стоит на рынке труда, там борьба с самим луа у боль.

посмотри сюда
github.com/AlexWan/OsEngine
avatar
Антон Б, по ide да возможно (notepad++ хватает)., по обработке ошибок, нет и нет. по поводу квик — возможно и динозавр, а какой терминал или привод, или приложение, или программа не динозавр? Везде будет примерно одно и тоже, где то лучше в одном вопросе, где-то хуже в другом вопросе — возьмите бухгалтеров как они мучаются с ПО когда не сходится отчетность. Lua универсальный скриптовой язык (в той же GTA5 используется насколько знаю). У меня Lua хорошо прижился для Квик. Любой язык программирования это борьба, особенно когда нет API в решении вопроса специфичной задачи… Изначально тема поста привод, а не конструктор роботов… За ссылку спасибо — посмотрю обязательно ваши видео. 
avatar
Иван, lua в quik это боль. поверь мне.
у меня большой опыт работы с ним, более 10 лет.
жалею о каждом потраченном часе.

C# это ide это,debug, это профессия.
тест на истории. портфели.
avatar
Антон Б, буду только за что бы использовать последние технологии для привода — можно даже совместный проект реализовать…
avatar
Антон Б, Какие языки программирования актуальны для алгоритмической торговли да и просто пригодилось в жизни? Спасибо!
avatar
Что такого суперского нового появилось в Quik 8 что на него стоит перейти? У меня он например работает в два раза медленнее как мне показалось, полагаю в первую очередь из-за нового графического оформления…
avatar
Исходники привода для скачивания опубликованы на GitHub (ссылка на скачивание): https://github.com/iv-litovchenko/Quik-Enter-Trade 
avatar

теги блога Иван

....все тэги



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