iSly
iSly личный блог
10 ноября 2014, 17:52

Помогите с написанием торгового робота

Добрый день!
Начну сразу с сути. Начал изучать программирование. Цель — написание торговых роботов. Опыта в программировании никакого. Остановился на Pythonе. Читаю, изучаю, пытаюсь что то писать. Что-то даже автоматизировал для своей основной работы — простейшие вещи ) — благо таких примеров в сети полно. Но как все это дело приладить к трейдингу вообще не понимаю. Примеров посмотреть негде. Как подключиться к квику, получить котировки, накапливать историю, сохранять ее, отправлять заявки и т.д. В связи с этим вопрос: может кто-либо поможет с этим разобраться или даст простого робота (без логики принятия решений) для самостоятельного изучения. Естественно все это на возмездной основе. Очень надеюсь что здесь есть люди готовые помочь. Для дальнейшего общения пишите, пожалуйста, в личку.

P.S. Если не сложно поставьте плюс что бы вывести на главную, а то хорошие люди могут и не увидеть.
62 Комментария
  • vito333
    10 ноября 2014, 17:57
    начало большого пути…
  • krasoffka
    10 ноября 2014, 18:06
    почему питон?
    • Евгений Черных
      10 ноября 2014, 21:21
      krasoffka, Вот и я про тоже.
      Забудь про питон и иди сюда kbrobot.ru/forum/
      Куча примеров
  • professor facepalm
    10 ноября 2014, 18:09
    Не тот язык выбрал. Лучше C# учи.
    Пример: www.itinvest.ru/editorfiles/File/smartcom/TestConnect_source.zip
      • krasoffka
        10 ноября 2014, 18:26
        iSly, то что он в складчине дал, вы все изучили? на чем строятся ваши системы? на сколько сложен их уровень? на той же складчине есть ТСлаб с апи, смотря что вы собираетесь строить, может и начать стоит с тслаба, он очень не плох…Ваш пост слишком пустой, даже если и хочется посоветовать то непонятно что вам интересно, опыт, навыки и тд, а писать про все сами понимаете нет желания.
  • AlexeyTikhonov
    10 ноября 2014, 18:27
    «Начну сразу с сути. Начал изучать программирование. Цель — написание торговых роботов. Опыта в программировании никакого. „
    Начать нужно с торговой идеи, потом уже ее реализовывать.
  • AlexeyTikhonov
    10 ноября 2014, 18:29
    А по сути, если еще не программируете:
    начните с Quik-DDE-Excel,
    разберетесь сначала с экспортом DDE, простейшими алгоритмами, обработкой, постановкой заявок, потом создадите свой DDE сервер на том же C#, и свое приложение и т.д. Сразу объять всё, может быть затруднительно.
      • AlexeyTikhonov
        10 ноября 2014, 21:23
        iSly, trans2quik.dll прикручивайте и всё
    • SergeyEgorov
      10 ноября 2014, 21:59
      AlexeyT, Квик + ДДЕ + Эксель — это адская трешовая связка на мой взгляд, никто еще не написал что ему удалось собрать из нее стабильный автомат для торговли.
      • AlexeyTikhonov
        10 ноября 2014, 22:26
        SergeyEgorov, нормальная связка, только надо знать особенности и понимать как их обходить.
        Впрочем это верно (связка и особенности) про любое непрямое подключение.
    • Seroja
      10 ноября 2014, 22:06
      AlexeyT, А чем Quik-DDE-Excel лучше Quik-Qpile?
    • AleksK
      11 ноября 2014, 04:14
      AlexeyT, да ну? имхо, проще на QLUA писать, проще не придумаешь. А вообще по правильному с# + ритмик или cqg и свой софт на cme
  • professor facepalm
    10 ноября 2014, 18:33
    Там вверху AFL посоветовали (это язык встроенный в amibroker).
    Помимо него можно также посмотреть TradeScript:
    habrahabr.ru/company/itinvest/blog/214601/
    habrahabr.ru/company/itinvest/blog/237689/
  • ves2010
    10 ноября 2014, 21:13
    тслаб
  • nemilen
    10 ноября 2014, 21:22
    iSly, дружище я помогу, читай:
    forum.qlua.org
    ilovelua.narod.ru/about_lua.html
    ilovelua.wordpress.com/
    Там все есть.

    Тут еще чел под ником orekton выкладывал уроки по Qlua, поищи его…
  • Cheshirscy
    10 ноября 2014, 21:26
    Начнем с того, что это большой и длинный путь. В идеале тебе должно быть вообще фиолетово на каком языке писать. Скажу на своем примере. Я все тестирую в амиброкере, там свой язык. Что бы закачать туда историю использую javascript. Ну а сами роботы работают в транзаке, опять же и там свой язык. А вся аналитика моих реальных сделок, заявок, стопов и результатов торговли в 1с
  • Cheshirscy
    10 ноября 2014, 21:27
    Вобщем если че — пиши в личку
  • nemilen
    10 ноября 2014, 21:28
    у человека терминал quik, поэтому рекомендую ему однозначно qlua
  • Михаил Васин
    10 ноября 2014, 21:34
    Скажу тебе как программист с конекторами к плазе квику метатрейдеру и тслабу и собственной системой тестинга.

    Пиши под метатрейдер лучше 5, его брокеры выдают некоторые к бирже.
    Да там будут левые данные часто, не будет ленты сделок и опционов.
    НО
    Зато 90% сделано за тебя уже + готовые примеры в справке+ встроенный тестер + глюки легко ловить, зарабатывать за счёт умения кодить ты не сможешь по началу точно, потом как освоишся перейдёшь на что то нормальное, а быстро начать изучение лучше там.

    Под что начинать писать не надо точно это под Квик. Это сложно и долго, и всё твоё время уйдёт на решение программистских проблем а не сути. Там можно написать либо чтото очень простое, либо надо потратить крайне много времени вникуда чтобы вышло что то нормальное.

    Остальные решения почти все приемлемы.
    Программировать лучше на с++ или с# они очень похожи, но есть небольшие отличия, питон и прочее можешь использовать только если отыщешь хороший переходник к платформе, что трудно и нет смысла по началу.

    И ещё момент.
    Если у тебя нет чёткой системы, лучше не начинай кодить, а посиди сперва и сделай её, программирование с 0 это сотни часов вникуда пока разберёшься.
    • SergeyEgorov
      10 ноября 2014, 22:09
      farok, С++ и C# похожи не более чем синтаксически. Программируя на C++ у программиста значительно больше возможностей прострелить себе ногу, если он не представляет себе как вообще происходит исполнение программ и что такое работа с памятью. Получить из программы на C# segmentation fault практически невозможно и почти любой говнокод будет как-нибудь исполняться, при программировании на C++ все новички начинают с segmentation fault. В написанной на C++ программе никакая среда исполнения не будет за программистом «мусор собирать».
      • Михаил Васин
        11 ноября 2014, 10:03
        SergeyEgorov, Массивы заданного заранее размера присутствуют в обоих вариантах, новичок всё равно не сможет круто пользоваться памятью. Зато потом перспективы на порядок лучше.
        • SergeyEgorov
          11 ноября 2014, 10:20
          farok, Массивы наверное есть в любом языке программирования. Я когда начинал программировать первого робота, мне хотелось побыстрее его торговать поставить, поэтому я договор заключил с брокером, который API предоставлял, ну а язык программирования выбирать не пришлось, кроме C# ничего не предлагалось.
  • TRADERS GLOBUS
    10 ноября 2014, 21:50
    Вот дружище обратись к этому парню он напишет робот sib-algo.ru/ и передавай привет от нас
  • gluhov
    10 ноября 2014, 21:51
    AFL и амиброкер лучший выбор для новичка. Простой функциональный язык, интерфейс к квику и уйма готовых систем. Лучше него только MQL по количеству написанных систем, но и язык сложнее и интерфейс к российскому рынку только для старого терминала.
  • SergeyEgorov
    10 ноября 2014, 22:49
    Я не люблю связки «что-то и терминал», не встречал еще ни одной такой чтобы была надежной. То рыночные данные пропадут, то заявка не ушла, то еще какая-нибудь хрень. Чем больше компонентов в системе, тем выше вероятность отказа. Такие вещи можно практиковать на начальном этапе, когда только присматриваешься к «рыночному программированию». В алгоритмической торговле есть масса тонких моментов, особенно если практиковать стопы, и если торговать волатильные инструменты. Сразу возникает необходимость оперативно и надежно ставить, снимать, двигать заявки в зависимости того, что там на рынке намечается. Если есть ощущение что алгоритмической торговлей будешь заниматься всерьез и долго, лучше сразу начать постепенно разбираться с каким-нибудь более менее приличным API и нормальным языком, а скриптовые вещи использовать как предварительное знакомство с рыночным программированием.

    P.S. На Python-е, если я правильно помню можно торговать америку через Quantopian, если есть договор к примеру с IB. Там же и стратегии тестировать можно.
  • sheffield
    11 ноября 2014, 02:29
    Вы правильно выбрали python, он действительно простой и позволит отвлечься от технических деталей и полностью сосредоточится на самой стратегии, а не на технических особенностях терминала. Обычно торговые роботы состоят из нескольких частей, минимально связанных друг с другом:

    — блок получения котировок
    — блок принятия решения
    — блок определения параметров сделки в соответствии с риск менеджментом
    — блок управления ордерами (отправка и исполнение)

    Конечно все интересно и хочется со всем разобраться, однако нужно сфокусироваться на самых важных вещах, а именно на блоке принятия решений, иначе есть риск, что вы потратите время на то, что бы разобраться с особенностями терминала, но это никак не поможет вашей торговле. Более того, блок принятия решений как правило делают независимым от терминала, что бы можно было перенести на другого брокера легко. Напишите как с Вами связаться — я могу помочь с python и разработкой стратегии — бесплатно, я Вам дам скрипты для теста стратегий — это существенно сэкономит Вам время. Вообще старайтесь избегать работы, которая «около» Вашей основной задачи, а в данном случае Ваша задача — именно стратегия, а не отправка ордеров. Удачи и помните, сложные проценты и положительное мат. ожидание — самые важные вещи.
      • wyg
        16 января 2015, 17:14
        iSly, подскажите на чем остановились — что выбрали в итоге? актуальный подняли вопрос. в python много библиотек с математикой, что наверное плюс для анализа и теста…
    • wyg
      16 января 2015, 17:08
      sheffield, нет возможности написать вам письмо — нет рейтинга, напишите пожалуйста как с вами можно связаться по поводу python в трейдинге?
  • Изя 3%
    11 ноября 2014, 03:29
    Не тратьте время зря. Не заработаете и выучите не лучший язык.

    Программирование это сложное ремесло. Настолько сложное что хорошо программируя у вас не останется сил на разработку каких либо стратегий и пр. А программируя плохо вы обречены на постоянный бег по граблям. Поверьте, программистам не зря хорошие деньги платят за нажимание кнопок )
    Кубики вам в руки!
    • Михаил Васин
      11 ноября 2014, 10:06
      Изико, Это да программисты не просто так получают крайне неплохо где бы они не работали, геморой тот ещё.
      Времени на исправление всяких ляпов будет потрачено больше чем на торговлю.
      Просто чтоб стартануть могут уйти сотни часов.
  • Si#
    18 ноября 2014, 17:25
    С#
  • wyg
    16 января 2015, 17:57
    Здесь немножко про python для трейдинга:
    ubertrader.org/tag/python/

    а здесь видео про python на английском
    www.youtube.com/user/sentdex/playlists
  • wyg
    19 января 2015, 11:32
    Python только пробую, C# уже немножко знаю...
    сам думал про использование Python, возникает вопрос с инфраструктурой, где брать коннекторы к бирже...
    сам скорее всего буду использовать его для математических расчетов.
    На другом портале нашел:
    www.bot4sale.ru/blog-menu/ami/amibroker-list/142-amisharp.html
    библиотека для работы с терминалом Quik,
    У автора эта библиотека в связке с AmiBroker работает.
    В AmiBroker свой встроенный векторный язык AFL + можно использовать синтаксис похожий на C#
    Наверное библиотеку эту AmiSharp можно будет и на Python использовать.
  • wyg
    19 января 2015, 11:38
    Еще находил Zipline is a Pythonic algorithmic trading library github.com/quantopian/zipline
  • wyg
    19 января 2015, 11:46
    Еще в качестве альтернативы, возможно будет интересно,
    здесь исходники C# под SmartCom: bitbucket.org/SazanProject
    на библиотеку эту наткнулся здесь на этом портале,
    автор smart-lab.ru/my/SergeyEgorov/blog/all/
    есть виде по использованию библиотеки:
    www.youtube.com/user/codetraidingsystem/playlists

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

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