Replikant_mih
Replikant_mih личный блог
19 апреля 2017, 14:50

Выбираю программу для алгоритмической торговли. Wealth-Lab, MultiCharts и их друзья.

В общем, TSLab в прошлом, а ведь только недавно это было самое что ни на есть настоящее, я немного ветреный)). Не успев особо углубившись в платформу понял, что это не то, что кубики — это очень ограниченно, а от людей узнал, что на этапе торговли тоже хватает проблем в платформе. И я продолжил поиск. Совсем слегка расстроился, что купил платный курс по платформе, но целеустремленного человека так просто не сломить)), тем более опыт интересные и не бесполезный, интересные идеи и мысли почерпнул.

 

Собственно, что имеем, у меня пробел в технической части, я не технарь, не кодер, для меня синтегрироваться с торговой платформой, с Plaza-2 и т.д. пока нереализуемо. В то же время я устал метаться между платформами, между вариантами реализации торговой алгоритмической инфраструктуры, между разными костыльными решениями. В общем сейчас я определился со входящими параметрами, мне нужна мощная готовая платформа для аналитики, тестирования, оптимизации стратегий и прочего и чтобы… она же эти стратегии и торговала на реальном рынке, плюс мне надо чтобы кодинг внутри платформы был на C# — классный язык — немного его знаю, + когда проапгрейжу этот язык смогу писать уже свои вещи — свои платформы, свои тестеры и прочее.


Сформировал short-list из Wealth-lab, MultiCharts, NinjaTrader, Tradmatic. Первые два в приоритете. Немного опросил экспертов), получил обратную связь, но решение конечно буду принимать сам. Решил скачать демки и помучать их некоторое время, понять плюсы минусы, потом, если будет явный лидер, проблем нет, если не будет — сочиню некий весовой скоринг и определю лидера, или же прислушаюсь к внутреннему я, к подсознанию — иногда так тоже делаю).

Советы, рекомендации, критика приветствуются)).  

76 Комментариев
  • Андрей К
    19 апреля 2017, 15:00
    понял, что это не то, что кубики — это очень ограниченно,

    в тслабе же ограниченность снимается за счет c#
      • SAI
        19 апреля 2017, 15:20
        Replikant_mih, Смотрите TSLab api в этом случае тсЛаб можно использовать как коннектор, все остальное можно писать самому. А с этой точки и шлюз плазы освоить не так сложно.
          • SAI
            19 апреля 2017, 15:28
            Replikant_mih, Все гораздо проще чем кажется, там минимум знаний нужен для старта, а дальше все будет зависеть только от вашей фантазии.
      • Андрей К
        19 апреля 2017, 15:20
        Replikant_mih, завалили меня вопросами, я оказывается не все знаю.

        1) Можно написать свой кубик на c# и дальше тестить на кубиках
        2) Можно полностью всю стратегию написать на c# и тестить стратегию без кубиков.
        3) OutOfSample, портфельное — мне такие понятия не знакомы.
        Если вы спрашиваете, можно ли портфель стратегий прогнать на тесте, то нет. Я изворачивался, делал сразу несколько стратегий в одной и смотрел поведение.

        Если не хватает аналитики (ну например разбивки по годам и тд), гружу прям с ТСЛАБ все сделки в ексель и там кручу верчу, тут ограничений нет — можно прям утонуть в аналитике.
  • Виталий Саханов
    19 апреля 2017, 15:03
    Wealth-lab работает с одним брокером
      • Виталий Саханов
        19 апреля 2017, 15:18
        Replikant_mih,  с неофициальными коннекторами можно нарваться на неприятности на счете. Т.к. система может начать работать не одекватно 
  • Сергей Гаврилов
    19 апреля 2017, 15:03
    Учите дальше с#, и тогда Вам будет все равно, что Wealth-lab, что MultiCharts, NinjaTrader...
    Tradmatic сразу в топку — это не очень качественный отечественный ремейк Wealth-lab. 
      • Виталий Саханов
        19 апреля 2017, 15:23
        Replikant_mih, В этом случае остановитесь на TSLAB. Хорошая стратегия — это простая стратегия.  В TSLAB вы ее легко напишите и проверите в реале. Проблема в том, что если исходить из доходности 30% годовых, то минимальная сумма депозита должна быть 120 000 рублей
          • Виталий Саханов
            19 апреля 2017, 15:39
            Replikant_mih, я TSLAB пользуюсь 4 года. Тайм фрайм 5 минут и не испытывал больших проблем с алгоритмами. Все что не удобно реализовать на TSLAB я пишу на C#
              • Дмитрий Черников
                20 апреля 2017, 05:35
                Replikant_mih, вы не любите кошек?.. вы просто не умеете их готовить…  нарисуйте табличку с плюсами и минусами… и пока сам не проверишь… ни кому не верь
  • dip
    19 апреля 2017, 15:06
    Рекомендация для начинающих: начните. 
  • Бобровский Дмитрий
    19 апреля 2017, 15:31
    S#, QuantConnect посмотри.
      • Бобровский Дмитрий
        19 апреля 2017, 15:43
        Replikant_mih, у S# есть S#.Designer. Вроде довольно простая штука. А так, при желании и достаточной глубине знания C# кодить под S# стало одно удовольствие. При этом нет проблем подвязать в проект сторонние библиотеки — тот же R.NET, Python.NET, unmanaged code и т.п., использовать GPGPU и прочая. Wealth-Lab на момент версии 6.5 не хотел даже особо дружить с базовыми .NET'овскими фичами, запихнуть в него свою библиотеку было ещё большей проблемой.
          • Бобровский Дмитрий
            19 апреля 2017, 15:54
            Replikant_mih, ну, я к тому, что что-то серьёзное посчитать в Wealth-Lab довольно затруднительно, к сожалению. ((( Насчёт беты дизайнера их — разве? Вроде ж уже полноценку сделали? Я просто брал их API всегда и под себя разрабатывал с нуля.
              • Бобровский Дмитрий
                19 апреля 2017, 16:05
                Replikant_mih, проблема в том, что Вы не сможете без танцев с бубнами и с уверенностью в том, что это всё сейчас не нае..., подключить какую-либо нормальную считалку чего-либо. Для подключения внешней библиотеки нужна Visual Studio или схожая штука (по крайней мере, ранее). И стабильностью эта конструкция совершенно не отличалась. 
                Далее, невозможно было использовать нормально собственный Candle Manager и клепать нестандартные свечки. Я писал один в своё время — дело было крайне неблагодарное, сапп их только разводил руками и желал мне удачи. 
                Многопоточности как таковой не было (насколько я помню). Поэтому был большой вопрос в бэк-тестинге. Большой объём данных приводил к отжиранию всей оперативы, до которой Wealth-Lab мог дотянуться. При этом тормоза становились жутчайшими. Как-то так.
                  • Бобровский Дмитрий
                    19 апреля 2017, 16:17
                    Replikant_mih, нестандартные свечи — например, свечи с High-Low = const, строящиеся по тикам. Ох я замучился их реализовывать, а ещё больше — отрисовывать! Далее, как раз с подключением внешней библиотеки и могут быть большие проблемы. Хотя бы потому, что Editor велсовский не даёт развёрнутый код, только лишь часть, связанную со стратегией. Если Multicharts даёт возможность соответствующую работать в MSVS или иных — отлично. Но когда изучал тему, то помнится, были подводные камни подключения внешних библиотек, не помню какие. Рекомендую обратить на это внимание. 
                      • Бобровский Дмитрий
                        19 апреля 2017, 16:26
                        Replikant_mih, к сожалению, Candle Manager в велсе в большей части статичен. В этом смысле S#/QuantConnect выгодно отличаются (уже хотя бы в этом) — там можно свой написать с нуля, считай.
              • Виталий Саханов
                19 апреля 2017, 16:09
                Replikant_mih, если вы хотите HFT, то однозначно надо C#. Но по моему убеждению в HFT торговли денег нет. Туда надо вбухивать большие деньги в оборудование и пытаться поймать крохи. Намного эффективнее встать по тренду и ждать сколько рынок нальет тебе. При HFT торговли у вас должна быть хорошая математическая обработка. Вас не должны пугать стохостические диференциальные уравнения. Но и они говорят, что математическое ожидание прибыли есть ( mu*T — sigma^2/2 * sqrt(T))
                • Бобровский Дмитрий
                  19 апреля 2017, 16:19
                  Саханов Виталий, для HFT нужен С++, а лучше Си, специальные компиляторы, оптимизированные под особенности процессора и т.п. А ещё лучше ПЛИСы или хотя бы GPGPU.)))
                  Насчёт мат.ожидания прибыли — кто сказал, что доходность будет нормально распределена? ;-)
      • Сергей Гаврилов
        20 апреля 2017, 00:20
        Replikant_mih, из s# можно использовать коннекторы: http://synapseslot.ru/osnovy-stocksharp
  • Виталий Саханов
    19 апреля 2017, 15:42
     s# я пытался освоить, но там документация не соответствует реализации. И к тому же один из разработчиков S# не рекомендовал его
    • Бобровский Дмитрий
      19 апреля 2017, 15:44
      Саханов Виталий, проще всего S# осваивать по examples. Просто S#, надо отдать должное Михаилу, превратился в мощную штуку. Правда, если сравнивать с Wealth-Lab и прочими, то это как MacOS и Linux.))))
        • Бобровский Дмитрий
          19 апреля 2017, 15:56
          Replikant_mih, ну, тогда лучше, конечно, Wealth-Lab, TSLab, Quantconnect, Multicharts. Там сильно заморачиваться не нужно, минимум усилий, но полноценный ТА.))) В Wealth-Lab'е достаточно большой набор всяких индикаторов из ТА, есть большое поле. Насчёт многопоточности в бэктестах у этих систем — яхз, если честно.
            • Бобровский Дмитрий
              19 апреля 2017, 16:06
              Replikant_mih, крайне сомневаюсь. Если только потроха не перепишут с нуля. Обычно проект либо сразу на рельсы многопоточности ставят, либо никогда.
                • Бобровский Дмитрий
                  19 апреля 2017, 16:20
                  Replikant_mih, да тут веры мало. Ребят устраивает. Их потребителей — тоже. А если нет запроса, то зачем напрягаться?) Вот они и не напрягаются, насколько я понимаю.
                    • Бобровский Дмитрий
                      19 апреля 2017, 16:27
                      Replikant_mih, да, будет интересно узнать про их планы на будущее.)))
                        • Бобровский Дмитрий
                          19 апреля 2017, 16:37
                          Replikant_mih, С мультиками не работал особо, к сожалению, смотрел только в плане доступных фишек и немного пытался покодить. Что-то меня в нём не устроило, не помню что. Вроде тоже что-то со свечками.
                            • Бобровский Дмитрий
                              19 апреля 2017, 16:48
                              Replikant_mih, да не за что.)) Я бы из этих 2-х выбрал Мультичартс, наверное. Для старта самое оно — заодно поучитесь в студии кодить.)))
          • Сергей Гаврилов
            20 апреля 2017, 00:28
            Бобровский Дмитрий, не вводите парня в заблуждение с многопоточностью. В s# от многопоточности Вы никакого выигрыша не получите, потому как «многопоточность» не есть синоним «многоядерности»… Как считали на одном ядре, так и будете…
            • Бобровский Дмитрий
              20 апреля 2017, 01:40
              Сергей Гаврилов, не соглашусь. С помощью Task'ов вполне себе на бэктестере реализуется многопоточность. А уж как потоки по ядрам процессора будут распиханы — это к операционке.))
              • Сергей Гаврилов
                20 апреля 2017, 04:22
                Бобровский Дмитрий, не будут… Диспетчер задач включите и увидите, что таски работают на одном ядре..., время померьте — скорость не увеличивается, а может даже уменьшается…
                • Бобровский Дмитрий
                  20 апреля 2017, 09:39
                  Сергей Гаврилов, не знаю, как у Вас, у меня таски работали на разных ядрах. В моём SkyLake 4x2, т.е. 8 логических ядер — все были задействованы.
                  • Сергей Гаврилов
                    20 апреля 2017, 15:01
                    Бобровский Дмитрий, как Вы это определили?
                    • Бобровский Дмитрий
                      20 апреля 2017, 15:06
                      Сергей Гаврилов, task manager, профайлер, рост скорости бэк-тестинга и т.п.
                      • Сергей Гаврилов
                        20 апреля 2017, 15:08
                        Бобровский Дмитрий, а на что Вы смотрели в task manager?
                        • Бобровский Дмитрий
                          20 апреля 2017, 15:14
                          Сергей Гаврилов, например, загрузку ядер. В System Explorer можете больше инфы посмотреть. А так — возьмите профайлер и попробуйте посмотреть, что и как у Вас работает и вызывается, в каком потоке работает и как.
                          • Сергей Гаврилов
                            20 апреля 2017, 15:48
                            Бобровский Дмитрий, можно… Мне до сих пор не удавалось заставить таски работать на разных ядрах… Вот я и хочу выяснить, у Вас на самом деле включаются все ядра или Вы заблуждаетесь… Признаком того что включены все ядра является одинаковая загрузка в % всех ядер..., т.е. у Вас должно быть 12,5%...
                             
                            • Бобровский Дмитрий
                              20 апреля 2017, 19:16
                              Сергей Гаврилов, вполне можно, вполне получается. Task работает посредством Task Manager'a CLR и задействует потоки из соответствующего Thread Pool'а. Нормальной адекватной статьи по Task Parallel Library у  меня под рукой нет, но вот что-то более-менее стоящее: https://www.codeproject.com/Articles/362996/WebControls/  И да, у меня 12,5% показывает (ну, с флуктуациями на десятые доли %, если никаким другим процессам в системе не требуется проц активно).
            • Бобровский Дмитрий
              20 апреля 2017, 15:24
              Сергей Гаврилов, кажется, мы не до конца друг друга тут понимаем. Бэктестер сам по себе у S# однопоточный, насколько я знаю, но можно параллельно запускать пакет стратегий с разными параметрами, который будет работать в отдельном потоке (я, правда, сейчас не уверен, что не реализовано на Task'ах — тут Вам, как тим девелоперу, виднее). Как сказано тут (собственно, я использовал именно этот подход), параллельный бэк-тестер имеет место быть. doc.stocksharp.ru/html/24a5c734-199f-4090-943d-6324a04f335b.htm 
              В моих задачах требовалось большое количество специфических вычислений, которые неплохо распараллеливались, поэтому скорость даже на однопоточке повышалась, не говоря уже об параллельном тестировании.
              • Сергей Гаврилов
                20 апреля 2017, 15:50
                Бобровский Дмитрий, насколько я знаю сам таск нельзя принудительно заставить работать на определенном ядре… Обычную нитку можно…  
                • Бобровский Дмитрий
                  20 апреля 2017, 19:18
                  Сергей Гаврилов, Task можно заставить работать в определённом Thread Pool'е, если не ошибаюсь. Вообще, можно использовать сторонние Task Manager'ы, реализующий функционал запуска Task'а (Task Sheduler), который можно привязывать к чему угодно.)
  • Виталий Саханов
    19 апреля 2017, 16:02
    Возможно, но я нему обратился после того, как я пытался в S# разобраться. Из интернета я узнал, что разные версии могут быть не совместимы между собой. Но с другой стороны понятно. Проект бесплатный. Кол-во трейдеров в РФ небольшое и инвеститорам он не интересен 
    • Бобровский Дмитрий
      19 апреля 2017, 16:07
      Саханов Виталий, с совместимостью версий были проблемы, да. Но небольшие пляски с бубном в Visual Studio, используя примеры, помогали перетащить проект на новые рельсы. При этом в принципе подход верный — нефиг тащить старые костыли с собой, имея новые ноги. 
  • vito2000
    20 апреля 2017, 01:33

    1. Судя по посту Вы собираетесь стать программистом, а не трейдером. Ну, тогда выбирайте C#. Годика через два может запустите первого робота. Смотрите блог Д.Чечета. У него 12 курсов по WL — это минимум полгода, если каждый день учится. Оно Вам надо?
    2. ves2010 написал про недостатки TSlab, но необходимо принимать во внимание, что он уже несколько лет мирится с этими недостатками и заработал кубиками больше 10 млн. руб. Если у Вас небольшой депо, то указанные недостатки Вас не коснутся. TSLab кубиками — самое простое, чтобы быстро запустить своего робота. 
    3. Если торгуете ММВБ, то qLua. Вот мнение по этому поводу. Смотрите посты Albus — у него роботы на Lua.
    4. Amibroker. Я выбрал эту программу. Почему:
    — вот мнение Ubertrader. Мне добавить нечего. Только он там пишет, что из Ами нельзя торговать — да, нельзя было в 2012, уже давно можно. Например, форумчани SenSor торгует на Ами. Смотрите его посты.
    — вот ссылка на amisite.ru, где приведен пример готового робота.
    — вот ссылка на Amisharp — надежный способ торговать через связку Quik-Amisharp-Amibroker.

  • Ruslan_Loginov
    21 апреля 2017, 13:26
    MetaStock в принципе не рассматривали? почему?
  • SirBulldog
    24 мая 2017, 19:38
    o-s-a.net
    Как вариант могу предложить 
    Сам не так давно об этом проекте узнал и уже даже опробовал в торговле. Работает))
    Из плюсов опенсорс и полная бесплатность, минусы сыровато, но развивается. Оптимизатора конечно как такового нет, но можно прикрутить. В целом что-то среднее между tslab и S#… Имхо мое мнение.

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

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