Блог им. 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
★30
ЗакрепитьКомментарий закреплен пользователем Иван
Иван, 
require('luacom').CreateObject(«wmplayer.ocx»).URL=«C:...\\alert.wav»

Я так воспроизвожу
Николай И, это стандартная библиотека квика в версиях 7 и 8?
avatar

Иван

Иван, Спасибо за отличный инструмент! который давно пора было Квику добавить! 
avatar

Tim

Tim, есть пока ряд неточностей, например депозит предыдущего дня заметил что изменяется после клиринга в 14-00. Поэтому придется как-то его по другому записывать… Во всех видео и описаниях забыл упомянуть также что журнал сделок будет считаться не правильно если открыть позицию в ручную (а не через кнопки BUY, SELL), т.к. когда нажимается кнопка очень важную роль играет поле комментарий — в него пишется LO/400/3 (LONG OPEN, STOP LOSS в пунктах, Соотношение риск-прибыль...). Аналогичные комментарии для закрытия позиции, в т.ч. по закрытию через стоп-лосс.
avatar

Иван

Все здорово, только 32х Квик умрет через пару месяцев, в связи с введением 19-ти знаковых ордеров на Фортс. Луа 5.1 тоже, но на 5.3. небольшие изменения в скриптах.
Да уже и сейчас Квик 7 немного осталось.
avatar

3Qu

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

3Qu, полагаю со временем все равно придется переходить на Quik8. И библиотеку w32.dll кстати для него судя по информации о ней обновили. Привод запускал и тестил в 8, периодически при смене тикетов (стрелки вправо, влево) вылазит ошибка нет доступа и скрипт падает (приходится перезапускать). 8 Quik, как читал почему-то нужно запускать с правами администратора, и возможно с этим как-то связана данная ошибка. 
avatar

Иван

Иван, 8.2… у меня был до последнего времени, особых глюков не замечал. Неск дней назад поставил 8.5.2.11 — вроде все ОК. Существенно лучше 8.2. — заметно меньше подвисает. Но на 8.5. еще не торговал.
Ставится элементарно — 5 минут, только апдейт файлы в папку Квик скопировать.
avatar

3Qu

3Qu, а вы его запускаете с правами администратора (правая кнопка мыши, «Запуск от имени Администратора», или как обычно кликнув на икноку?
avatar

Иван

Иван, нет, не запускаю. Но у меня, хоть я и не админ, на компе права админа по умолчанию. Имхо, на домашних компах у большинства так.
avatar

3Qu

Иван, «8 Quik, как читал почему-то нужно запускать с правами администратора»
Потому что windows не даёт квику записывать файлики в его папку. Не ставьте квик в program files и вообще на диск C, ну или запускайте с правами от админа.
avatar

Gh0sT555

Иван, забыл добавить: этот момент (с правами администратора) не специфичен для 8-ой версии квика, 7-ая также.
avatar

Gh0sT555

3Qu, В июне ещё не будет 19 знаков в заявках/сделках, это уже точно.
avatar

Gh0sT555

3Qu, сбер недавно обновился, угадайте до какой версии?  7.27. у них 1 сервак, у Открытия несколько но резервный не поддерживает 8 версию что + т.к. если глючат основные сервера с 8 туда не сунуться. сам на резервном и доволен.
Владимир Гончаров, у меня сбер на той неделе обновился до 8.3
avatar

Andy

Надо скачать.
Пробовать.
Пробовал сделать по вариационке стоп ставить, не получалось.
Программировать тяжело мне.
Вариационку в программе нужно считать и в безубыток стоп ставить и тралить за ценой, потом на % расстоянии снова трейлить.
Итак изо дня в день по 1% хотя бы .
По индикаторами ничего не берет.
avatar

френк

"— по умолчанию при запуске скрипта в файле «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

Tim

Что такого суперского нового появилось в Quik 8 что на него стоит перейти? У меня он например работает в два раза медленнее как мне показалось, полагаю в первую очередь из-за нового графического оформления…
avatar

Иван

Исходники привода для скачивания опубликованы на GitHub (ссылка на скачивание): https://github.com/iv-litovchenko/Quik-Enter-Trade 
avatar

Иван


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

....все тэги



2010-2020
UPDONW