Lightest
Lightest личный блог
05 июня 2016, 16:30

Какую платформу для торговых роботов выбрать: TSLab,WealthLab,StockSharp?

Существует большое количество платформ для торговых роботов, наиболее популярные: TSLab, WealthLab, StockSharp.
Почему именно эти три платформы?
Язык программирования C# 

   Какую платформу для торговых роботов выбрать: TSLab,WealthLab,StockSharp?Освоение языка программирования – это один из самых сложных и трудоемких этапов создания торгового робота. Возникает естественное желание найти такой язык, освоив который мы раз и навсегда закрыли бы для себя вопрос изучения других языков и сконцентрировались непосредственно на написании торговых роботов. Выбранный язык должен позволить нам реализовать робота любой сложности и при этом быть актуальным для различных платформ. C# как раз является таким языком.

   WealthLab, StockSharp, TSLab позволяют совершить весь перечень работ, начиная тестированием и заканчивая реализацией.

Основные различия платформ WealthLab, StockSharp и TSLab

TSLab — Торговые Роботы без программирования

Какую платформу для торговых роботов выбрать: TSLab,WealthLab,StockSharp?Эта платформа является основателем визуального редактора для программирования роботов. Программа TSLab позволяет создавать роботов с помощью “кубиков”, каждый из которых выполняет определенные функции. Чтобы написать стратегию, нам нужно соединить кубики между собой. Такой подход к созданию роботов удобен тем, что помогает представить сложные вещи в простом и привычном нам виде.
Какую платформу для торговых роботов выбрать: TSLab,WealthLab,StockSharp?













Как было сказано выше, платформа TSLab поддерживает язык C#. Те же самые кубики, в конечном счете, и есть программный код, написанный на C#. Есть возможность писать непосредственно на C# с использованием TSLab API, что существенно расширяет возможности. Можно комбинировать код на C# и кубики, самостоятельно программируя недостающие элементы.

Торговые роботы StockSharp — 100% программирования

Какую платформу для торговых роботов выбрать: TSLab,WealthLab,StockSharp?StockSharp – это библиотека для торговых роботов, написанная на C#. Написание роботов с помощью библиотеки StockSharp идет непосредственно в среде для программирования Visual Studio. Довольно сложно доступно и коротко описать принцип работы с библиотекой в словах. 
Из опыта проведения курсов по программированию на плаформе StockSharp, можно привести такую статистику: среднее время, которое уходит на освоение библиотеки у человека не являющегося профессиональным программистом – в лучшем случае около 6 месяцев. Из этих 6 месяцев, 2 – это изучение основ программирования, еще 2 – изучение библиотеки, последние 2 месяца – это самостоятельная работа с библиотекой в попытках написать робота. Этот срок с учетом того, что вы будете регулярно заниматься программированием.

TSLab или StockSharp?

TSLab и StockSharp являются противоположностями, и конечный выбор стоит за вами. Нельзя сказать, что одна платформа хуже или лучше другой, все зависит только от ваших целей и ваших возможностей. Еще один интересный факт, говорящий о том, что ни один из подходов не является универсальным и идеальным – TSLab развивает свой API, т.е. подход создания роботов с помощью программирования, а StockSharp разрабатывает S#.Studio – платформу, представляющую собой графическую часть для программной библиотеки, призванную облегчить работу трейдера. Судя по всему, обе компании осознают свои слабые места и стараются устранять их. Идеальным вариантом платформы для создания торгового робота представляется решение, когда трейдер может начать с визуального конструктора и дорасти до роботов, полностью написанных на языке программирования. Наиболее близким к той цели выглядит платформа TSLab, визуальный редактор уже готов, TSLab.API развивается очень быстро более прост в освоении, нежели S#.API.

Торговые роботы WealthLab

WealthLab представляет собой некоторую промежуточную стадию между StockSharp и TSLab. Визуальный редактор в WLD есть, но он плохо развит. Стратегии пишутся на языке программирования, но первые простые стратегии можно начать писать уже через месяц или даже через несколько недель после активного изучения программирования. Сравнивая с другими рассматриваемыми нами платформами, сильной стороной WealthLab является хорошо развитый и продуманный тестер стратегий. Если мы говорим о тестировании внутридневных и среднесрочных стратегий, WealthLab, пожалуй – наиболее удобное решение. Графическое представление результатов тестирования и некоторые другие дополнительные возможности, делают работу очень комфортной. Есть и недостаток – WLD использует только одно ядро процессора для вычислений, в результате чего скорость тестирования довольно низкая, если сравнивать со скоростью тестирования на TSLab. 

WLD разрабатывался для европейского и американского рынка. Несмотря на большую популярность этой платформы на российском рынке, до сих пор не разработан ни один официальный коннектор от WLD к российским терминалам. Это является существенным недостатком WLD. На момент написания статьи, существует несколько решений от сторонних российских разработчиков, позволяющих подсоединять WLD к российским торговым платформам.

44 Комментария
  • Александр
    05 июня 2016, 17:01
    в заголовке вопрос, а в содержании что-то описываете(очень субъективно и в целом не о чем)… Статья от нечего делать или чтобы рейтинг поднять?
      • Александр
        05 июня 2016, 17:16
        Lightest, «За использование программы TSLab взимается абонентская плата в размере 2600 руб./мес. (Оплата за первый месяц использования программы производится в полном размере не зависимо от дня подключения данной услуги.)

        Тестовый доступ предоставляется бесплатно на 7 календарных дней. ФОРТС доступен только в просмотровом режиме.» Не бесплатно кажется

        • ves2010
          05 июня 2016, 17:42
          Александр, использование тслаба платно только для торговли… а тестить тслабом все бесплатно… т.е очень низкий порог входа
        • Ivor
          05 июня 2016, 19:40
          Александр, платно только если торговать,  а для тестирования и построения роботов тслаб бесплатен. 
      • Евгений Черных
        05 июня 2016, 19:16
        Lightest, Самый главный вопрос вы так и не озвучили? Цель какая?
          • Евгений Черных
            05 июня 2016, 20:21
            Lightest, Я бы остановился на TC лабе. Но если нужно что то сложное- выбирайте сразу луа
  • Investment Manager
    05 июня 2016, 17:02
    C# и S#. Если научится кодить, потом можно будет с использованием .net коннектится к брокерам и биржам по FIX и другим протоколам… но это для трейдинга, для тестов советую питон.
    • Андрей К
      05 июня 2016, 17:10
      I am, а как питон в тестах использовать?
      • Investment Manager
        05 июня 2016, 20:12
        Андрей К, подгружаешь котировки, пишешь стратегию, открываешь на графике эквити… http://tradingwithpython.blogspot.jp
        • Андрей К
          05 июня 2016, 20:38
          I am, там для этого есть какие то средства и инструменты или просто полностью самописный тестер с нуля?
  • Don Constantine
    05 июня 2016, 17:05
    обзор был актуальный три года назад, и очень поверхностый. Многие участники смарт-лаба уже бочку говна съели с TSlab, и сквозь зубы процедили в поисках грааля, не говоря уже про S#. Достаточно попробовать воспльзоваться поиском по сайту, чтобы узнать сколько сюрпризов ожидает в этих платформах.
  • Nemo_2000
    05 июня 2016, 17:10
    Этих роботов на любой помойке целые кучи ))) вы так уверены, что ваш будет чем то лучше и ему необходима ваша платформа с языком С+
    ?

    )))
  • sortarray sortarray
    05 июня 2016, 17:26
    Выбранный язык должен позволить нам реализовать робота любой сложности и при этом быть актуальным для различных платформ. C# как раз является таким языком.

    Он является, как раз, таким языком, на котором них*я сложного вообще написать невозможно, статическая типизация будет бить по рукам при каждом поползновении к чему то сложному:)
    • Don Constantine
      05 июня 2016, 17:34
      sortarray sortarray, вот именно, для кого эта статья написано не понятно. Для новичка, который решил робота написать, так таких обзоров полно. Если бы какие- нибудь свежие тенденции осветили, а то ещё WLD из нафталина достали
    • Андрей К
      05 июня 2016, 17:35
      sortarray sortarray, можете привести пример тех сложных случаев, которые не возможно реализовать?
      • sortarray sortarray
        05 июня 2016, 17:45
        Андрей К, 

        почитайте вот тут об этом

        norvig.com/design-patterns/design-patterns.pdf
        • Андрей К
          05 июня 2016, 17:57
          sortarray sortarray, а актуально читать статью про паттерны проектирования 96 года — она еще вышла до выхода c#?
          То есть там по умолчанию не написано про минусы c# и не возможность создания сложного кода.
          • sortarray sortarray
            05 июня 2016, 18:07
            Андрей К, там разговор идет о семантике языков, это не зависит от времени. Элементарный пример — первоклассные типы, которые живут в рантайме, которыми другие объекты могут манипулировать в рантайме, в динамических языках любой тип по дефолту — первоклассный тип.
    • Изя 3%
      05 июня 2016, 17:59
      sortarray sortarray, статическая типизация возможно спасет от факапов, а возможно и эпик фейлов. ;)
      • Андрей К
        05 июня 2016, 18:07
        Изя Квикович, ну если уже зацикливаться на типизации, то c#  поддерживает и динамическую через dynamic, да и вообще если лень типы писать, можно навтыкать var для простого кода. Только не могу привести примеры, зачем она вообще нужна в сложных задачах.
        Хотел развить диалог, но как то не очень выходит.
        • sortarray sortarray
          05 июня 2016, 18:16
          Андрей К, 
          если лень типы писать

          Вы путаете статическую типизацию с явной. Я про статическую говорил
        • sortarray sortarray
          05 июня 2016, 18:31
          Андрей К, 
          Хотел развить диалог, но как то не очень выходит.

          хз, может я плохо объясняю. Вот есть у Вас класс A, от него наследует другой класс B. Есть экземпляр этого другого класса, например foo, который на сообщение bar отвечает 1.  Этот bar он наследует от A — от суперкласса. Пусть есть некая функция, которая принимает класс в качестве аргумента, и меняет в нем слот: fu = function(theClass, slotName, newSlotValue){theClass[slotName] = newSlotValue}, после того как Ваш класс A прошел через эту ф-цию, вышеупомянутый объект foo будет отвечать на сообщение bar по другому. Вы не сможете это сделать в языке со статической типизацией тривиально. А в динамически типизированном языке Вы сможете это сделать всегда, с любым классом/типом — изменить, удалить, добавить слот, все что угодно, как угодно менять поведение. То есть, эта функция подойдет для любого типа, ничего не будет проверяться, если нет такого слота — он будет добавлен, если есть — изменен.

          В статически типизированных языках и сама концепция наследования отличается. Там используется копирование, а в динамике — делегирование. Поэтому, изменив или добавив в рантайме какой-то слот, это все тут же унаследуется всеми детьми, внуками и тд.
    • Ivor
      05 июня 2016, 19:43
      sortarray sortarray, а в чем проблема статической типизация? Вы встречали какую нибудь задачу, которую можно было бы решить только динамической типизацией? 
      • sortarray sortarray
        05 июня 2016, 20:33
        Ivor, в теории, можно решить любую задачу на любом языке, на крайняк можно написать компилятор, цена вопроса только другая.
      • sortarray sortarray
        05 июня 2016, 20:37
        Ivor, задачи такие встречаются довольно часто, но они довольно сложны для объяснения, для человека, который считает, что языки типа решетки имеют какое то отношение к объектно ориентированному программированию.

        Упрощенный пример: представьте себе реализацию паттерна Observer, где будет в качестве слушателя добавляться произвольный объект, объект любого типа,  и при добавлении сразу навешиваться реакция на событие, а при удалении — удаляться. Вы этого не сможете сделать в статически-типизированном языке.
  • ves2010
    05 июня 2016, 17:40
    я бы сравнил количество пользователей… тслаб и сток шарп...
    велс лаб увы не для российского рынка
  • Nemo_2000
    05 июня 2016, 17:49
    вся деятельность платных платформ если и имеет какую то ценность то только из-за возможности тестирования. Кто бы подсказал как бесплатно потестить робота на клуа? размеры моей благодарности не будут иметь границ…
    • Андрей К
      05 июня 2016, 17:52
      Nemo_2000, в реал тайм торговле в режиме логирования =)
    • Чёрный кот
      05 июня 2016, 18:49
      Nemo_2000, пусть вместо реальных сделок просто отмечает на графике
  • Изя 3%
    05 июня 2016, 18:00
    Сезон дипломов начался? Попер студенческий креатив. )
  • OPEL70
    05 июня 2016, 18:00
    плин… а нет робота что бы на всех телок стоял? очень нужен… пожалуйста…
    • Ярик
      05 июня 2016, 20:19
      OPEL70, бухло и развлечение тебе в помощь.
  • OPEL70
    05 июня 2016, 18:10
    любой счет управление капиталом… ну да с лохов на смарте зарабатываем))) особенно против маркидоновны ставить нравится.
  • finstrateg
    05 июня 2016, 20:55
    «Освоение языка программирования – это один из самых сложных и трудоемких этапов создания торгового робота» — это всего-лишь дело техники.
    Самое сложное, это стратегия и её формализация в коде, даже элементарные вещи, бывает очень сложно описать в алгоритме.
    А вторая сложность, это сами платформы и их код с глюками (про WealthLab не знаю).
  • LogikoMen
    06 июня 2016, 00:44
    Чем WealthLab не угодил? Геморрой с коннектором окупается отсутствием проблем с написанием робота и тестирования.  Два других приложения словно огрызки от одного яблока. Не понимаю, что можно написать при помощи визуального редактора? МАКДи проверить на котировки и тому подобное. Слово робот — от программирования. У StockSharp не дружественный интерфейс, рассчитанный на профессионального программиста.
  • Михаил Пиписькин
    06 июня 2016, 01:52
    c++ не иначе
  • Андрей М
    12 августа 2016, 17:45
    StockSharp — полное сырье ручного допила с отмороженными разработчиками, которые в конце концов удалили форум где пользователи помогали друг другу, хоть как-то запускать простые вещи. 

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

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