Есть желание изучить 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 из папки Квика. Как запустить и использовать — есть рабочие примеры в репозитории.
Лютый Комерсант, Сургут имеет валюту на которую ничего нельзя уже купить за рубежом, то есть получается эти уникумы собирали все эти годы деньги, а сейчас всю эту кучу бабла отрезали от внешних рын...
Индекс Мосбиржи 4000, Сбербанк 370 - 400 рублей Вырисовываются 2 сценария развития по Индексу Мосбиржи и Сбербанку.
1. При позитивном сценарии:
По Индексу Мосбиржи картинка вырисовывается пр...
Биткоин провалился ниже $97000. 100 тысяч не будет? Прогноз курса биткоина. 25 ноября. Выполнено условие для коррекции, о котором говорили ранее тут: пробили уровень 97122, и цена упала на 1,4%. Пока...
Квартира или синтетический депозит (синица в руках/"утка под кроватью") ??? Итак:
Исходная задача (клиентская)
---
есть 25 мио
это 2-3 комнаты в ЗАО/СЗАО (вторичка хорошая)
купи...
Квартира или синтетический депозит (синица в руках/"утка под кроватью") ??? Итак:
Исходная задача (клиентская)
---
есть 25 мио
это 2-3 комнаты в ЗАО/СЗАО (вторичка хорошая)
купи...
На данном этапе пока интересует получение исторических данных и отправка торговых транзакций по одному из 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.