Константин
Константин личный блог
08 июля 2017, 08:27

Изучение TRANSAQ или QLua

Есть желание изучить TXmlConnector и QLua библиотеки для создания около рыночного проекта. Кто так же только думает об этом, но не нашел единомышленников, как говорится велком )) а т.к. перехожу на новый (для себя) язык программирования C#, то приветствуются к участию так же новички в программировании и желающие изучить тему кодинга и алготрейдинга на C# ))
21 Комментарий
  • Владимир 2102
    08 июля 2017, 08:43
    Хотелось бы попробывать, но нужно уяснить.Конечная цель какая? Для чего?
    • Владимир 2102
      08 июля 2017, 09:01
      Константин, Тема интересная, нужная но я к сожалению  в ней полный «0». Только присматриваюсь, как бы подступится.
  • Karim
    08 июля 2017, 10:08
    Чтобы сделать второй вариант QUIK <-> программа, понадобится QLua  и С++, а потом уже С#. Так что начинайте с них.
    • Александр
      08 июля 2017, 14:18
      Константин, Если соберетесь использовать quik lua, то в луа есть api. Его можно использовать на нативных языках, например на си++. Далее можно передавать данные в любое внешнее приложение по сети или pipes. Можно с танцами и бубном писать на си#. Для этого нужно в одну функцию встроить добавить флаг экспорта в формате cdecl. Для этого придется дикомпилировать написанную вами dll на с#, а потом ее собрать заново. Так же придется экспортировать библиотеки описания lua api на с#.  В общем не много геморройно. Так что лучше использовать с++ на стороне скрипта на луа. А на стороне робота c#. Но честно, говоря с# не лучшее решение для роботов.
    • Александр
      08 июля 2017, 15:20
      Константин, 
      _cdecl это декларация о вызовах, для C# можно использовать COM
      cdecl — это декларация о вызовах, т. к. чтобы использовать lua api нужно экспортировать одну функцию из dll, а на c# этого нельзя сделать без диассеблирования и повторного компилирования.
      есть решения с QUIK использовать без плюсов напрямую в C#
      Возможно существуют через использования внешних модулей (dll). Но тогда вы ограничиваетесь только использованием lua скриптов. А lua язык скриптовый язык, поэтому скорость передачи будет меньше, чем при использовании lua api. У меня например реализована передача данных через сеть. Это быстрое решение. Но не такое, которое хотелось бы.
      насчет торговых роботов — я не собираюсь использовать HFT, поэтому мне пойдет и C#
      Проблема не HFT. А в том объеме данных, которые поступают с биржи и сборщике мусора и возможных утечках. Написать хорошее приложение, которое эффективно использовало память на c# требует профессиональных умений.
        • Александр
          08 июля 2017, 17:01
          Константин, 
          думаю тут есть ответ на вопрос как без плюсов quik2dde.ru/viewtopic.php?id=186
          А вы уверены, что это рабочее решение? Вот у меня не получилось сделать. Это решение базируется на том, что я описал выше. Но оно не рабочее. Я сам создавал свое решение. Делов на пару часов.
          историю в барах можно так же взять оттуда, но это все только мысли
          Это дела вкуса, как реализовать. Мы говорим о том, как реализовать доступ к Lua api на c#.
          насчет объема данных возвращаемых функциями думаю обойтись малой кровью, через Shared memory
          Ну как вариант передачи данных в ваше приложение из lua скрипта. Но я думаю проще реализовать или через сеть или через pipes.
          эту историю можно брать с того же МТ5
          Можно и так делать, если необходимы тики. Если нужны только минутные свечи, то можно взять из quik. На lua функция получения истории свечей есть.
        • Александр
          08 июля 2017, 17:13
          Константин, По поводу lua.cs — там не все функции описаны, но основные. Придется повозится с некоторыми колбеками. А так прикольный результат.
          Вторым условием является английский интерфейс windows, это к сожалению условие пакета, при русском интерфейсе windows компиляция выполнятся не будет.
          Жесть конечно. Проще свое решение напилить, за одним разобраться, как оно реализовано. Полезно знать.
    • Александр
      08 июля 2017, 17:16
      Константин, А с чего вы взяли, что я хочу быть вашим консультантом? Я описал вам возможные грабли вашего же решения, т. к. сам серьезно повозился, прежде чем разобраться, как оно работает.
  • buybackoff
    08 июля 2017, 19:26
    Вот же https://github.com/finsight/QUIKSharp

    Отлично работает из коробки с permissive лицензией бесплатно, используется в TsLab.
      • buybackoff
        08 июля 2017, 19:47
        Константин, я её написал ;) А другие люди помогли довести её до ума.
          • buybackoff
            08 июля 2017, 20:02
            Константин, Она полностью повторяет QLua, только в C#. Для справки можно использовать QLUA.chm из папки Квика. Как запустить и использовать — есть рабочие примеры в репозитории.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн