Есть желание изучить TXmlConnector и QLua библиотеки для создания около рыночного проекта. Кто так же только думает об этом, но не нашел единомышленников, как говорится велком )) а т.к. перехожу на новый (для себя) язык программирования C#, то приветствуются к участию так же новички в программировании и желающие изучить тему кодинга и алготрейдинга на C# ))
Конечную цель на данном этапе обсуждать смысла нет, она у всех может быть в итоге разная, но в целом это создание коннектора(ов) для аналитических систем и торговых роботов.
На данном этапе пока интересует получение исторических данных и отправка торговых транзакций по одному из 2-х способов:
1. TRANSAQ <-> тестовая программа
2. QUIK <-> тестовая программа
Со способом подключения пока сам не определился, везде есть свои плюсы и минусы, но для масштабируемости в последующие проекты, вариант 2 вроде предпочтительнее, но нужно будет определяться совместно, что бы легче все освоить.
А вот после выполнения данной задачи, можно будет определятся с конечной целью, либо она будет общая либо разная ))
Для обсуждения можно переместиться в Skype (есть в контактах) или Telegram (@coder_ex)
Владимир Иванов, я на MQL пишу и немного на С++Qt, но по многим причинам решил уйти на C# поэтому для меня это так же новое )) если есть желание вместе писать и изучать C# то почему бы не начать ))
Ставьте VS, создадим общий git и начнем ))
как начать мы обсудим с тем, кто пристыкуется к теме, а плюсы я в принципе знаю, зачем же с них начинать ))
кстати данный вариант есть и без плюсов, где то в нете попадалась статья, там правда было условие для проекта — х86 и проект на английском в ОС из-за каких то там нестыковок при компилировании, но это ведь не проблема переключить ОС на вражий и чуждый нам как патриотам язык ))
Константин, Если соберетесь использовать quik lua, то в луа есть api. Его можно использовать на нативных языках, например на си++. Далее можно передавать данные в любое внешнее приложение по сети или pipes. Можно с танцами и бубном писать на си#. Для этого нужно в одну функцию встроить добавить флаг экспорта в формате cdecl. Для этого придется дикомпилировать написанную вами dll на с#, а потом ее собрать заново. Так же придется экспортировать библиотеки описания lua api на с#. В общем не много геморройно. Так что лучше использовать с++ на стороне скрипта на луа. А на стороне робота c#. Но честно, говоря с# не лучшее решение для роботов.
_cdecl это декларация о вызовах, для C# можно использовать COM, и есть решения с QUIK использовать без плюсов напрямую в C#
насчет торговых роботов — я не собираюсь использовать HFT, поэтому мне пойдет и C#
_cdecl это декларация о вызовах, для C# можно использовать COM
cdecl — это декларация о вызовах, т. к. чтобы использовать lua api нужно экспортировать одну функцию из dll, а на c# этого нельзя сделать без диассеблирования и повторного компилирования.
есть решения с QUIK использовать без плюсов напрямую в C#
Возможно существуют через использования внешних модулей (dll). Но тогда вы ограничиваетесь только использованием lua скриптов. А lua язык скриптовый язык, поэтому скорость передачи будет меньше, чем при использовании lua api. У меня например реализована передача данных через сеть. Это быстрое решение. Но не такое, которое хотелось бы.
насчет торговых роботов — я не собираюсь использовать HFT, поэтому мне пойдет и C#
Проблема не HFT. А в том объеме данных, которые поступают с биржи и сборщике мусора и возможных утечках. Написать хорошее приложение, которое эффективно использовало память на c# требует профессиональных умений.
Александр, думаю тут есть ответ на вопрос как без плюсов quik2dde.ru/viewtopic.php?id=186
но зачем устраивать какой то спор, если нужны будут плюсы то в чем проблема не понимаю ))
насчет объема данных возвращаемых функциями думаю обойтись малой кровью, через Shared memory, класс на плюсах есть, попробую его портировать под C#, только я не помню, можно ли увеличивать размер файла после его создания, это к теме получения тех же котировок, пока все только в уме, как будет реализовано не знаю, это будем обсуждать с тем, кто подключится ))
и кстати зачем упираться в QUIK, можно ведь разнести коннектор под разные задачи, насколько помню, в QUIK как раз проблема с историей, эту историю можно брать с того же МТ5, где она хранится с июля 2016 года вполне корректно (я про тиковую историю), историю в барах можно так же взять оттуда, но это все только мысли, как все соберется пока ни кто не знает ))
А вы уверены, что это рабочее решение? Вот у меня не получилось сделать. Это решение базируется на том, что я описал выше. Но оно не рабочее. Я сам создавал свое решение. Делов на пару часов.
историю в барах можно так же взять оттуда, но это все только мысли
Это дела вкуса, как реализовать. Мы говорим о том, как реализовать доступ к Lua api на c#.
насчет объема данных возвращаемых функциями думаю обойтись малой кровью, через Shared memory
Ну как вариант передачи данных в ваше приложение из lua скрипта. Но я думаю проще реализовать или через сеть или через pipes.
эту историю можно брать с того же МТ5
Можно и так делать, если необходимы тики. Если нужны только минутные свечи, то можно взять из quik. На lua функция получения истории свечей есть.
Константин, А с чего вы взяли, что я хочу быть вашим консультантом? Я описал вам возможные грабли вашего же решения, т. к. сам серьезно повозился, прежде чем разобраться, как оно работает.
Константин, Она полностью повторяет QLua, только в C#. Для справки можно использовать QLUA.chm из папки Квика. Как запустить и использовать — есть рабочие примеры в репозитории.
Налоговые убытки для инвестора: почему в 2025 году они могут "стоить" 15% вместо 13%
Для активного инвестора убыток от неудачной сделки — это не просто досадная потеря, а потенциальный налоговый актив. Однако его истинная ценность может значительно варьироваться. Благодаря...
В ноябре мы открыли двери нашего производства для авторов популярных профессиональных блогов — «Провизор 24», «Советский цитрамон» и «PharmJokes». Коллеги прошли весь путь производства...
Президент «Норникеля» Владимир Потанин в интервью телеканалу «Россия 24» подвел итоги 2025 года, оценил макроэкономическую ситуацию и рассказал о технологической трансформации компании.
Собрали ключевые тезисы:
Макроэкономика и ключевая ставка 2025 год был сложным, но мы видим позитив: инфляцию удалось снизить до 6%. Это важно для сохранения покупательной способности...
MATEMATNK, очень нужно создать альтернативную реальность, снижение внутренних поставок Миллер описывает как «почти рекорд», доходы от Силы Сибири тоже падают даже при увеличении поставок, вот и при...
Ушаков о телефонном разговоре Путина-Трампа: Для окончательного прекращения боевых действий от Киева требуется политическое решение, которое касается Донбасса Ушаков о телефонном разговоре Путина и Тр...
usikpa, как почему? Потому что непонятная каша. Офз 7 видов и каждая ходит по своему, зачастую реверсно даже. И весь этот компот взяли и одним индексом ввели
Антон Ефанов, помоему брокер удерживает налог со всего купона. После закрытия позиции, делается пересчет, купленный НКД зачитается и появляется плюс на налоговом балансе брокера. (либо нкд включают...
На данном этапе пока интересует получение исторических данных и отправка торговых транзакций по одному из 2-х способов:
1. TRANSAQ <-> тестовая программа
2. QUIK <-> тестовая программа
Со способом подключения пока сам не определился, везде есть свои плюсы и минусы, но для масштабируемости в последующие проекты, вариант 2 вроде предпочтительнее, но нужно будет определяться совместно, что бы легче все освоить.
А вот после выполнения данной задачи, можно будет определятся с конечной целью, либо она будет общая либо разная ))
Для обсуждения можно переместиться в Skype (есть в контактах) или Telegram (@coder_ex)
Ставьте VS, создадим общий git и начнем ))
кстати данный вариант есть и без плюсов, где то в нете попадалась статья, там правда было условие для проекта — х86 и проект на английском в ОС из-за каких то там нестыковок при компилировании, но это ведь не проблема переключить ОС на вражий и чуждый нам как патриотам язык ))
насчет торговых роботов — я не собираюсь использовать HFT, поэтому мне пойдет и C#
но зачем устраивать какой то спор, если нужны будут плюсы то в чем проблема не понимаю ))
насчет объема данных возвращаемых функциями думаю обойтись малой кровью, через Shared memory, класс на плюсах есть, попробую его портировать под C#, только я не помню, можно ли увеличивать размер файла после его создания, это к теме получения тех же котировок, пока все только в уме, как будет реализовано не знаю, это будем обсуждать с тем, кто подключится ))
и кстати зачем упираться в QUIK, можно ведь разнести коннектор под разные задачи, насколько помню, в QUIK как раз проблема с историей, эту историю можно брать с того же МТ5, где она хранится с июля 2016 года вполне корректно (я про тиковую историю), историю в барах можно так же взять оттуда, но это все только мысли, как все соберется пока ни кто не знает ))
Это дела вкуса, как реализовать. Мы говорим о том, как реализовать доступ к Lua api на c#.Ну как вариант передачи данных в ваше приложение из lua скрипта. Но я думаю проще реализовать или через сеть или через pipes.Можно и так делать, если необходимы тики. Если нужны только минутные свечи, то можно взять из quik. На lua функция получения истории свечей есть.
Отлично работает из коробки с permissive лицензией бесплатно, используется в TsLab.