Блог им. 3Qu

Брошенная стратегия. Дневник разработчика.

    • 06 февраля 2020, 16:47
    • |
    • 3Qu
  • Еще
Сегодня окончательно сделал и протестировал DLL. DLL через Lua получает из Quik реал-тайм данные о истории, состоянии текущей свечи, стакане, ленте сделок и пр., и поставляет все эти данные в ТС. Также DLL считает (пока не все) необходимые данные для оценки вектора текущего состояния инструмента, и также передает их ТС. Сама ТС еще не написана, только данные получает. DLL также пишет все получаемые данные в БД Sqlite, где они, при необходимости, доступны ТС.
И, чтобы не быть голословным, картинки.
История, последние 15 записей:
Брошенная стратегия. Дневник разработчика.

Лента сделок, последние 15 сделок.
Брошенная стратегия. Дневник разработчика.

Стакан, последние 15 изменений.
Брошенная стратегия. Дневник разработчика.

А вы говорите, какие-то коннекторы под Quik нужны. Только желание нужно, и немного времени.
★8
А если без DLL, прямо в файл, что это меняет?  QLua с этим справляется, а  ТС уже приводит данные к нужному виду.
avatar

Vladimir Diaditchev

Vladimir Diaditchev, Можно и так, если вас устраивает.
Что меняет? — только скорость обмена. Если скорость не критична — добро пожаловать в файловый обмен.
avatar

3Qu

Vladimir Diaditchev, с DLL больше гибкости, например можно добавить общение со стратегией по сети. Так одна страта может управлять несколькими квиками да и не только квиками. Делать распределённую систему с обменом через файлики так себе идея )))
Пафос Респектыч, что мешает сразу в базу писать допустим?
avatar

Свой Мужик

 Роботы, ах эти призрачные роботы. Ну как, хоть в ноль по году выходит, чудо робот?
avatar

Andrei.Ka

привет. а у тебя случаем sqlite3 нет под квик 8 64битный?
avatar

Eldar Shaymardanov

Eldar Shaymardanov, качайте любую — SQlite.
На всяк случай - SQLiteStudio
avatar

3Qu

3Qu, мне нужна lua sqlite3. без обертки сам sqlite у меня есть.
нет Lua-Sqlite3 (lsqlite3)
avatar

Eldar Shaymardanov

Eldar Shaymardanov, сорри. Тогда ничем не могу. У меня своя DLL в БД пишет.
avatar

3Qu

Eldar Shaymardanov, вот LuaSQLLite3 lua.sqlite.org/index.cgi/doc/tip/doc/lsqlite3.wiki
avatar

Sergeyka

Sergeyka, видел. При компиляции DLL в luarock ошибки идут. Поставил визуал студию, там попробую собрать
avatar

Eldar Shaymardanov

Eldar Shaymardanov, но лучше взять LuaSQL ODBC и писать в любую базу данных, например в SQLLite3 через SQLLite3 ODBC драйвер. keplerproject.github.io/luasql/manual.html
avatar

Sergeyka

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

Eldar Shaymardanov

Британские учены доказали, что в торговом роботе главное — не технологическая изощренность и не удобство интерфейса, а логика торговли.
avatar

Сергей Симонов

Не пойму, зачем из Quik'а через Qlua передавать куда-то данные, чтобы оттуда получать указания, когда совершать сделки в Quik'е? Почему бы не совершать эти сделки прямо в QLua?
Как говорили древние, «не надо  умножать сущности».
avatar

Rostislav Kudryashov

Rostislav Kudryashov, затем, что у вас терминал повиснет. Все события QLua выполняются в очереди в одном потоке терминала. Любая сколь нибудь длительная обработка событий подвесит терминал.
avatar

3Qu

3Qu, это не так. В одном потоке выполняются обработчики событий — функции обратных вызовов типа OnTransReply, OnTrade и индикаторы.
Каждый скрипт QLua, зачинаемый function main(), работает в своём отдельном потоке. Дело обработчиков не обрабатывать события, а регистрировать их для последующей обработки в скриптовых функциях main() в каком угодно числе скриптов-потоков.
Я заметил, что OnTrade срабатывает не только по сделкам из скриптов, но и поданным интерактивно.
avatar

Rostislav Kudryashov

Rostislav Kudryashov, Это так. Говорим о событиях терминала. Про main() я в курсе. Мне обработка в main() неинтересна — опять уходим в один поток и очередь.
avatar

3Qu


....все тэги
2010-2020
UPDONW