<HELP> for explanation

Блог им. SLinfinius

Quik lua to C# коннектор ?

Здравствуйте, 

Вопрос собственно такой: Как связать квик с помощью lua с программой написаной на C# ?

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

Буду благодарен за любую инормацию по даной теме .

Спасибо.
 

Quik Lua коннектор для С# можно купить у меня с исходным кодом
Bulldozer, Спасибо, но хотелось бы самому разобратся. Может поделитесь ссылками по теме где почитать что-то можно.
avatar

SL

SL, информации в общем-то и нет в интернете, могу сказать, что Lua коннектор пишется на С++ используя Lua API www.lua.org/manual/5.1/, сам язык Lua в нём никак не используется.
Bulldozer, Спасибо, буду изучать, вы используете луа только для получения данных? а trans2quik.dll для отправки транзакций или полностью все на луа сделали?
avatar

SL

SL, всё полностью на Lua, Lua не требует каких либо настроек, достаточно запустить Lua скрипт и открыть нужные таблицы в квике
Bulldozer, Нашел что то такое LuaInterface habrahabr.ru/post/197262/, ка думаете может подойти?
avatar

SL

SL, эта штука для работы с Lua, но не с квиковским QLua
SL> Спасибо, но хотелось бы самому разобратся.

Тогда вам надо начать с гугленья по запросу
mixing native and managed code c++

Но для начала очень рекомендую пописать что-то на Lua в
QUIK, потому как по вашим сообщениям видно, что вы даже не представляете что интерфейс Lua в QUIK предоставляет. Как тогда вы собираетесь что-то делать во внешней DLL — как-то не очень понятно.
avatar

swerg

а зачем это? если есть trans2quik.dll
avatar

VpnS

VpnS, через trans2quik.dll позно только посылать команды в квик, а получать данные нельзя к сожалению
avatar

SL

есть отдельный форум по Quik Lua. погугли.
avatar

Mr. Bean

Mr. Bean, нашел, спасибо, но вроде по моему вопросу там не очень то есть что почитать.
avatar

SL

Непроглядный Туман, ДДЕ хорошо, но говорят Луа лучше и быстрее.
avatar

SL

Непроглядный Туман, да, но все же хотелось бы какое то полноценное решение, лучше бы разработчики квик поработали над этим АПи, чем внедряли луа в квик.
avatar

SL

Непроглядный Туман, Но все же обработка событий из Квик через луа в C# наверно все же будет быстрее чем DDE+C#?
avatar

SL

Непроглядный Туман, а историю торгов никак не получаете через dde?
avatar

VpnS

Непроглядный Туман, Спасибо, большое, за детальное обьяснение.
Мне все же без тиковых сделок никак не обойтись, потому и смотрю в сторону Луа->C#, так как в сторону плазы смотреть еще рановато :). Да и там еше и сертификацию нужно проходить…
avatar

SL

Непроглядный Туман, насколько я знаю ОИ в квик очень сильно отстает? плюс ОИ показывает и несистемные сделки что тоже может внести полный бардак в расчеты.
avatar

SL

Непроглядный Туман, так вот вопрос в чем
через DDE выводятся данные, которых не было, то есть новые
а старые вы где храните, запускаете программу с утра?
а если требуется старые данные использовать?
график опять же как рисуете?
avatar

VpnS

Непроглядный Туман, Ccылка к сожалению у меня не открывается :(
avatar

SL

Непроглядный Туман, а историю свечей как получаешь?

Я сам сейчас, не знаю зачем, пишу связку Quik->Lua->*.dll->C# по он-лайн выгрузке свечей. С тиками не буду связываться. Потом еще надо будет добавить связь по отправке заявок C#->trans2quik.dll->Quik.
Rookie, Что используете для связки Quik->Lua->*.dll->C#, можете поделится где инфу берете по созданию *.dll? Я так понимаю в *.dll написана на C# и в скрипте кроме загрузки даной длл, больше ничего прописывать не нужно. Можете привести хоть какой то пример по обработке событий из квик в даной длл.
avatar

SL

SL, .dll пишется на С/С++. Я только в начале написания.
Rookie> Потом еще надо будет добавить связь по отправке заявок C#->trans2quik.dll->Quik.

Используйте ту же связку C# -> *.dll -> Luz ->Quik
avatar

swerg

Непроглядный Туман, а где данные хранишь?
в переменной или файле каком?
avatar

VpnS

Непроглядный Туман, хм, а где на финаме хранятся и в каком формате?
avatar

VpnS

Непроглядный Туман, а на кривость проверяете данные?
Теоретически можно слать в скрипт запущенный в Квике команды луа (там есть возможность принять и исполнить) и отправить обратно результат. Почти АПИ получится. Камынин пишет есть у него такое.
avatar

quant_trader

quant_trader, тут вроде бы другое нужно при возникновении события в луа передать его и данные в С#.
avatar

SL

SL, если нужны события то проще в луа и писать все (или в длл на нормальном языке). Ну или слать события с той стороны в Ваше приложение.

Например поднимаем вебсокет, шлем в него из скрипта на луа. Но это ж надо прописывать.

Имхо если мы не hft то нафиг эти событийные дела, опрашивать по таймеру.
quant_trader, не хфт но иногда нужно вовремя смытся что б не влили слишком много, и как правило это бывает когда движняк начинается и ДДЕ подтормаживает, потому и в сторону Луа решил посмотреть.
avatar

SL

SL, понял. А подтормаживает ДДЕ или поток котировок?

Насколько понимаю логику луа чуть выигрывает получая данные до отрисовки таблицы но если тормозит поток то разница невелика.

Тогда Непроглядный Туман прав, можно попробовать получить данные быстрее из ТТП.
quant_trader, да я сильно и не разбирался что больше подтормаживает, думаю Непроглядный Туман, может об этом больше сказать. Сам сейчас начал обдумывать может действилельно поток сделок отключить в квике и попробовать без них обойтись. А то насколько я понял легче с плазой разобраться чем коннектор для луа сделать.
avatar

SL

SL, эмм а какая загрузка в моменты когда подтормаживает?

Просто может причина то вообще в недостатке ОЗУ.
quant_trader, нет это исключено там 12ГБ ОЗУ.
avatar

SL

Непроглядный Туман, а потом если у Вас будет разрыв связи то кривой график :)
Непроглядный Туман, если у Вас встал экспорт по таблице открытых позиций экспортируемый по DDE через скока Вы поймете это?
Ребята, а чем Luva лучше чем MQL5?
avatar

Lika

quant_trader, спасибо
avatar

Lika

Колеги, вы б плюсанули темку что б на главную вывести, может кто еще увидит кто что-то может сказать.
Спасибо.
avatar

SL

Непроглядный Туман, говорит страница не найдена.
avatar

SL

Непроглядный Туман, ну вот получить открытые позиции из терминала, скажем по акциям?
Непроглядный Туман, в прогах теханализа с адаптерами будет нормальный бекфил. У тех кто получает по ДДЕ всю таблицу сделок и парсит тоже нормально будет.
Я по такой схеме программировал —
Получение данных: Lua -> Named Pipes (Client на Lua) -> C# service (Pipe server) -> С# объекты(таблицы) тех данных -> C# роботы
Логика робота: С#
Отправка транзакций: С++ trans2Quick api, также обернутый в С#
Вообще есть вроде несколько способов передать данные из Lua. Это так называемый inter process communication. Конкретно под Lua видел след. варианты: Сom-server, ZMQ (Messaging Queue) и то, что использовал я (именованные каналы).А вообще есть более простой вариант: просто сбрасывать данные в файл и в С# приложении отслеживать изменения, но у такого подхода есть минусы, конечно.
avatar

nvse

nvse, файл отпадает, ДДЕ точно быстрее будет.
avatar

SL

SL, memory map file, не? и пусть дде курит бамбук
AleksK, а луа с такими умеет работать?
avatar

SL

SL>а луа с такими умеет работать?
Используя Lua-индерфейс вы фактически можете пристыковать к QUIK написаную на C++/Delphi DLL. В этой DLL можете делать уже что угодно.
quik2dde.ru/viewtopic.php?id=18
avatar

swerg

Непроглядный Туман, спасибо за инфо
avatar

VpnS

Тогда один из тех 3-х вариантов, что я предложил. Но вообще если Вы пишите какой-нибудь hft и быстродействие для Вас так критично, то наверное надо будет вкладываться в инфраструктуру, платить за colocation на биржевых серверах, писать на С++ и чуть ли не на asm-e, развертывая всё это еще *nix-ах. Но тут я уже не советчик.
avatar

nvse

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

SL

Для коннекта QLUA с Python использую свой коннектор на ZMQ-сокетах. Библиотека, соответственно, ZeroMQ.
avatar

MKS

MKS, спасибо, погуглю, если можете, скиньте где можно почитать что-то о такой связке.
avatar

SL

Коннектор сам писал на Python + Qt4 + ZMQ. Почитать про коннектор не знаю где, готовых решений не встречал. По ZMQ читать на сайте zeromq, да и просто статей всяких полно. Для C# тоже полно примеров по ZMQ. В целом, довольно быстрая и удобная библиотека. Производительности вроде хватает. Не HFT, конечно, но поарбитражировать малоликвид хватает.
avatar

MKS

bulldoser: >>Quik Lua коннектор для С# можно купить у меня с исходным кодом

не могу написать Вам в личку т.к. только зарегистрировался здесь.
напишите, пожалуйста что из себя представляет в коннектор и сколько стоит не для перепродажи asaneeX эт гмэйл к0м. спасибо!
avatar

asane

asane, см здесь: smart-lab.ru/blog/216370.php
avatar

ПBМ

Павел Bosco M: Спасибо! можно попросить ffi.dll и ffi.lib или что там еще билдится и требуется проекту прикрепить или на файлообменник выложить? у меня весь проект в делфи и девелопер студию ставить незачем было пока.
avatar

asane


Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.

Залогиниться

Зарегистрироваться
....все тэги
Регистрация
UP