Блог им. Alextrading

Ваша оценка СтокШарпу

Решил поизучать СтокШарп. Кое-как поставил, ибо не коннектился он с квиком. Проблема решилась установкой на комп С++ 2015. Сейчас вот новая проблема — в СтокШарп не загружаются инструменты из квика. Гуглил вчера, видео смотрел… так и не нашел решение проблемы. Кто-нибудь уже проходил этот путь? Стоило оно того?
★4
платная поддержка или  все через жжж 
У них есть справка, если ты в ней не можешь разобраться, то закажи у них обучение, оно кстати весьма неплохое, там тебе все расскажут и покажут… Сам по себе продукт неплохой, помогает сэкономить уйма времени при написании и тесте ботов.
Юрий Елисов, так прежде чем платное обучение заказывать поюзать бы хоть в первом приближении )) Тем более обучение не дешевое.
Alextrading, ну тут видишь как… если ты по справке не смог поюзать, примеры загрузить, по ним собрать свое… то быстрее будет все таки за обучение заплатить и научится… Если все таки разберешься и по справке сможешь собрать что то свое, то тебе уже и не надо обучение… понимаешь о чем я?
Юрий Елисов, конечно понимаю. А под справкой вы что имеете ввиду?
Alextrading, прилагается к библиотеке StockSharp.chm.:)
Юрий Елисов, прям сейчас стокшарп не под рукой. Потому и задал такой глупый вопрос.
нет, хрень полная.
sore, так у нас хороших продуктов почти и нет. Выбор никакущий.
Alextrading, QuantConnect посмотри. По функционалу — несколько обрезанный вариант шарпа (убраны все свистелки и перделки, а так же конный оркестр, цыгане и медведи). Зато разрабы и сапп на контакт идут (по крайней мере, когда я смотрел этот проект, так было). А коннектор к QUIK налабаешь сам, вроде API какое-то было. Ну или сри заявки через файл, скармливай квику, если тебе не HFT нужен.
Бобровский Дмитрий, онлайн сервисы воруют идеи. Это ещё квантопиан начал в своё время. 
Евгений, у них есть и десктопное решение. Так что вполне себе годная должна быть система. Единственный минус на момент, когда их начинал смотреть, это было использование GDI+ вместо WPF.
Бобровский Дмитрий, ключевое слово должна быть.

Если вы про Лин, то все в лучших традициях — ни саппорта, ни документации, ни форума, ни установщика. Больше подохит на проект, созданный под сайт и только. Было выбрашено на свалку истории мною.
Евгений, https://github.com/QuantConnect/Lean 
Про него, да. Доки вроде ж есть и на сайте, и на хабе. Форум тож есть. На нугете есть установщик в проект. Так что не соглашусь, что ничего там нет.) Судя по логам хабы лин вполне себе развивается.)
Бобровский Дмитрий, вы сами применяете на практике? Я ни на элите ни на биг майке не знаю ни одного, кто его использует.
Евгений, я одно время начинал, но тогда проект был сыроват. 
Скоро планирую начать заново его юзать. В параллель с S#. Посмотрю на простых задачах кто быстрее работает на бэк-тестах и реалтайме.
Бобровский Дмитрий, самый главный критерий торговых систем — это не открытость кода или цена. Самый главный критерий — это чтобы систему использовали в реальной торговле живые трейдуны.

Лин увы свой шанс пропукал. Квантопиан он никогда не догонит, а деньги, как я понял, идут именно за счет сайта.

Нет историий использования — нет реального применения. А значит коды не апробированы временем.

Я поэтому и против метака в пользу Квика. Метак может хорош на Форексе, но никакущий на фонде. Ничего толком не умеет, и делать им еще лет 10. А я планируют через 10 лет вообще завязать с трейдингом :-)
Евгений, ну тут на вкус и цвет все фломастеры разные.))))
Бобровский Дмитрий, хм, не понял о чем вы, ну да ладно :-)
Евгений, Lean вполне годная система, я едва не начал с ними работать и едва не прикрутил QuikSharp к ним, но не сложилось по другим причинам. Там довольно неплохие абстракции и главное все полностью открыто, код вполне читабельный.
buybackoff, как ваш проект поживает? Знакомый говорит, что тс лаб плохо работает через новый коннектор, и продолжает использовать старую связку через MFD.

Считайте, это первое реальное применение ваших трудов на практике.
Евгений, ну если плохо работает, пусть обращается в техподдержку тс лаб — они деньги за него берут. Или добро пожаловать на ГитХаб в issues или pull request. Может дело совсем не в Q#.

Standalone люди им продолжают пользоваться, пишут вопросы и отзывы — в последнее время не было очевидных багов. Первое реальное применение моих трудов было мною на моем компьютере и рядом контрибьютеров… То что там происходит в тслаб меня мало волнует (помимо ссылки на проект, не знаю добавили в итоге они ее или нет).
buybackoff, добавили.
Бобровский Дмитрий, спасибо за наводку. Поизучаю.
Alextrading, Да не за что. В своё время смотрел разные системы для трейдинга. Некоторые стоили дофига, но функционал при этом был порой на уровне метастока. Забавные они. А так — Multicharts ещё есть. Это некий компромисс между системами уровня TSLAB/Wealth-Lab и S#/QuantConnect. Насколько жив этот проект — я хз, если честно.

Если боты не HFT, зачем себе жизнь усложнять? В TSLab накидать алгоритм за 30-60 минут можно, и тут же в торговлю запустить. Жаба душит денег разрабам платить?
Антон Иванов, ну, если надо организовать что-то более серьёзное, чем 2 МА, то TSLab или Wealth-Lab не годятся. Именно из-за потрохов. Я в своё время начинал с Wealth-Lab'а и ушёл потому, что присоединить к нему R.NET стоило дичайших усилий ровно как и иные мат.пакеты на том же .NET'е.
Бобровский Дмитрий, я согласен, что TSLab многое не тянет, но если алгоритм не супертяжелый и торгуется на минутках и выше, то практически все можно реализовать. До сих пор не могу понять людей, которые для проверки своих идей сидят и кодят по несколько часов или дней, вместо того чтобы потратить час времени на алгоритм в TSLabe
Антон Иванов, это вы зря. Я в кубиках неделю набирал то, что могу за час написать в МатЛаб или за день на Питоне.
Евгений, спорить не буду, конечно и так бывает. Но если сегодня стоит вопрос как в топике, какой язык изучить для алготовли, то проще начать с TSLab. Это мое мнение и я могу быть не прав. А уже потом, запустив несколько ботов, можно спокойно изучать язык.
Антон Иванов, проще начать с R + quantmod, quantstrat, PerformanceAnalytics и рядом других пакетов. Вопрос в сложности задач. Визуализация через конструктор в GUI-системах типа TSLab'а — да, удобнее. Но кто ж торгует на примитивных системах?)
Бобровский Дмитрий, я торгую на примитивных системах. Даже индикаторы не использую :)
Антон Иванов, хорошо. Допустим, мне нужно реализовать модель на базе шумоподавления через EKF, потом полученные данные через MUSIC прогнать на предмет наличия выраженных гармоник, определить нестационарность по первому моменту и посчитать наивный прогноз среднего на 1 шаг вперёд, экстраполируя сигнал в частотной области. Задачка несложная. Вы её в TSLab'е сколько будете кодить?)))) А прикладные эконометрические задачи много сложнее. ;-) 
Бобровский Дмитрий, ладно, ладно, убедили:) Я такими сложными вещами не занимаюсь, предпочитаю простенькие зарабатывающие алгоритмы :)
Антон Иванов, если зарабатывают и несложные — это ж мечта! Гуд, поздравлямс, что так сумели! И респект!

Бобровский Дмитрий, это очень нестандартные вещи. Их можно для ТСЛаб на C# реализовать. Допустим, воспользоваться какой-то из готовых библиотек.

Суть ТСЛаб в чем: Вы можете для себя написать любой кубик (или индикатор) и добавить его в список доступных.

Нужен Вам супер-пупер-мега-цифровой фильтр с использование GPU — пишете кубик на C# — закидываете в папку ТСЛаб — и вуаля! Он становится доступен в Редакторе Скриптов вместе со всеми остальными кубиками.

И чтобы получить этот супер-пупер индикатор не нужно писать свою платформу полностью с нуля.

 

Что же касается интеграции с R — это вообще больной вопрос. И боль эта вызвана тем, что сам R не предоставляет нормального АПИ для взаимодействия с собой.

Казалось бы чего проще: выставил TCP порт — и перекидывайся командами. Но нет. Нужны какие-то танцы с бубнами.

ПС Кстати, в инете есть внятная инструкция как прикрутить R к ТСЛаб. Гугл знает.

ch5oh, насчёт R — есть R.NET, он нормально позволяет взаимодействовать с R из-под clr. В отношении танцев с бубнами тож не соглашусь — простейший клиент-сервер налабать тоже можно, только зачем при наличии R.NET? )))
По поводу кубиков — отлично, если так. Но что делать, если в коде стратегии нужно использовать те или иные мат.библиотеки? Ну, чтобы, например, не плодить вызовы примитивов? 
Вообще, если реализовано в TSLab'е именно так, через кубики, то это немалый плюс — в своё время в Wealth-Lab была целая проблема с подобного рода вещами. Более того, клиент-серверная составляющая работала через жёсткий пень-колоду, сам Wealth падал через раз-два (это на ранних 6-х версиях было). А уж присобачить к MSVS — это из рода чёрной магии, хотя и заявлялось, что это просто. Профилировать такой код было тоже крайне неудобно.
К тому же вопрос в скорости важен — TSLab умеет параллелиться при бэк-тестах? Велс не умел (на ранних версиях 6.x). 

Бобровский Дмитрий, по-моему, умеет параллелить оптимизацию на истории. Это как бы настолько естественно, что Ваше утверждение про велс повергает в шок.


Насчет «кубиков и сторонних библиотек». Да, можно написать на C# простой класс, который будет подготавливать данные и передавать в стороннюю библиотеку. Например, в AlgLib. Или в какую-то платную математическую библиотеку (их есть довольно много причем распараллеливание выпихивается даже на GPU насколько мне известно). Получать из неё ответ и возвращать обратно в ТСЛаб для дальнейшего использования.

 

Возможно, R.Net за последние годы сильно продвинулся в направлении упрощения интеграции с CLR. В своё время долго бился над этим. В итоге всё было мутное и ненадежное.

Надо будет попробовать на практике. =) Вдруг какой-то пакет анализа временных рядов позволит получить нетривиальное предсказание рынка на один бар в будущее?..

ch5oh, насчёт R.NET — я даже обёртку писал на многопоточность для него. Он очень мощный стал и удобный. 
Про класс — да, можно, вопрос в удобстве. Плюс вопрос — какая часть кода доступна в конструкторе для разраба? В велсе это был метод, позволяющий только трейдить. И запихать класс туда было не так просто. 
Да, и велс не распараллеливался на истории в оптимизаторе никак от слова совсем. Ну вообще никак, ну вот ни малёха. В один поток шарашил. Можно было сделать финт ушами — разбить пространство параметров на блоки и фигачить. Но это другая история. Если TSLab это исправлено — супер!
Второй вопрос — что с менеджером свечек? Что с профайлером и логированием? Н-р, хочу я свои свечки клепать из тиковых данных — потянет TSLab по функционалу и скорости?

Бобровский Дмитрий, =) это сразу много вопросов. Чтобы не вводить Вас в заблуждение нужно конкретно обсуждать каждый.

Причем делать это или на форуме ТСЛаб или даже лучше уже через их официальную тех.поддержку.

 

1. "Что с менеджером свечек?"
Что Вас интересует? Свечи хранятся, распаковываются, передаются в скрипт в готовом виде.

Свечи могуть быть эквиобъемными или рейнж цены.

Также есть возможность (в определенных пределах) делать на лету свои свечи. Например, из свечек 2-х инструментов сделать серию свечей корзины инструментов.


2. «Что с профайлером и логированием?
Ваши кубики — это код на C#. Все средства отладки и профилирования применимы.

Логгирование можно делать штатными средствами ТСЛаб (с записью в файл с логом и/или с выводом на экран). Но если Вам очень хочется — никто не мешает открыть FileStream и лить туда свой собственный поток данных в своём собственном формате.

3. „Н-р, хочу я свои свечки клепать из тиковых данных — потянет TSLab по функционалу и скорости?

Вы можете клепать для себя любые серии данных, какие Вам нужны и использовать их внутри своего кода как угодно.

Но если речь идет о какой-то нестандартной нарезке баров, чтобы потом она естественным образом встроилась во все остальные элементы управления — такого скорее всего не получится.

=) Не думаю, что вообще есть хоть одна стандартная платформа, которая позволяет просто взять и заменить алгоритм формирования свечек. Допустим, вдруг начать рисовать свечки в виде крестиков-ноликов.

Обычно делают 3-5 алгоритмов нарезания в готовом виде.

Всё остальное самому делать можно, но без визуальной поддержки на графике.

Надеюсь, понятно объяснил.

 

ПС При работе с данными в текстовом виде в формате CSV ТСЛаб доступен бесплатно и без ограничений.

Поставьте, посмотрите примеры, попробуйте в конце концов.

ch5oh, 
По п.2 — если TSLab позволяет подключать MSVS и профилировать/дебагить код, то это только + в карму TSLab.
п.3 — CandleManager в S# позволяет исполнять любые пассажи с данными в разрезе агрегации в свечки в т.ч. и такие, которые можно в Кама Сутре описывать.))) Плюс скорость работы с данными — н-р, Wealth-Lab вешался при работе с большим объёмом данных. Ну просто пц. И жрал память вагонами. TSLab лишён этой болезни?
Попробую мб через некоторое время — мне сейчас нужно кое-какие алгоритмы под платформу на R переписать на Rcpp из стандартных библиотек. А дальше посмотрим, что как, — может, действительно проще будет разрабатывать на TSlab'е, раз там столько плюшек, уйдя со S#.))) 

Бобровский Дмитрий,

2. Разумеется. Кубики пишем в Visual Studio. Настраиваем автоматическое копирование собранной длл в известную папку. Запускаем ТСЛаб, подключаемся отладчиком к процессу. Код своих кубиков полностью доступен и виден в Студии. Можно ставить точки останова и т.д.

 

3. Не знаю насчет CandleManager. Ничего не могу сказать. У себя в памяти можно исходные данные (допустим, тики) как угодно агрегировать. Но потом их нарисовать на обычном штатном графике скорее всего не получится.

Агрегированные данные можно положить во внутренний кеш (локальный или глобальный). После чего они будут доступны из других кубиков и даже из других роботов.


Например, можно организовать такую историю: один робот подписан на тики и агрегирует их каким-то камасутровым способом. Результат кладет в глобальный кеш.

Другие роботы просто берут готовые данные из этого глобального кеша и пользуются ими.

 

Что касается памяти, то ТСЛаб рекомендуется запускать как 64-битный процесс. Соответственно, памяти сколько воткнете в машину, столько и будет.

=) ну а дальше все зависит от Ваших задач и степени прямизны рук. Если задача требует 10 гигов памяти — с этим ничего не сделаешь.

ch5oh, ну, само собой x64 вариант. Велс тоже был x64 и тупил с памятью будь здоров.))) Ну да ладно. Вообще, надо будет как-нибудь попробовать запилить 2 вещи — код на S# и TSLab более-менее сложный в вычислительном плане. И посмотреть скорость работы бэк-тестера. Так будет правильнее всего.
Антон Иванов, жабы нет. Нет пока депо, чтобы разрабам платить по несколько косарей.
А мне стокшарп не понравился, сложно как то там все, вроде и разобраться можно, но что то в нем не то.
Denis, на чём остановились?
Denis, и на чем остановились?
Да я не особо алготрейдер, но для своих целей потихонечку пишу свою среду для автоторговли, добавляю что надо как время есть. :)
А так всякие идеи пытаюсь с точки зрения статистики проверять на питоне.
Denis, так вы из трейдера превратились в программиста. А смысл? Если вы частное лицо, вам подойдут почти любые программы. Даже qpile.
Евгений, :) программизм мое основное занятие, а инвесирование и трйдерство скорее хобби.
Поэтому в моем случае такой подход вполне себе оправдан.
Denis, смотря как посмотреть. Вы тратите личное время, которое можно было «инвестировать» в семью, детей, подругу, друзей.

Я для себя такой критерий давно поставил. Если с рынка не поднимать в месяц хотя бы тонн 300 физику, то нет смысла заниматься рынком вообще. Есть секторы в финансах, где с парням с головой можно зарабатывать больше, при меньших рисках. Не говоря даже про роботов, где усилий многократно больше и доход должен быть соотвествующий.
Евгений, каждому свое, тут нет смысла разводить полемику )
Евгений, и как? получается поднимать?
ch5oh, получалось. Сейчас поболее. Расширил область знаний до финансов. Трейдинг слишком узок.
Евгений, http://ranking.moex.com если вас нет здесь, то это просто очередное само бахвальство перед теми у кого нет денег даже на ТСЛАБ. Смысл такого поведения? Самоутверждение? Или глумление? Не пойму вас, падаете в глазах читателей... 
Борис Литвинов, у меня есть читатели?

Я вам привел обычную сумму и обычную метрику. В банке в 2007 я получал с бонусами эквивалент на текущий день 400 на руки. Обычный трейдер, не директор и не кто-то еще. Это фикс, и не зависело от уровня торговли (хотя я суммарно отторговал в плюс за дологие годы работы). Поэтому я лично не вижу никакого смысла тратить свою жизнь по вечерам после работы, получая крохи. Если достаточно протянуть руку и получить без рисков и стрессов нормальную оплату.

Это какие-то большие деньги? Я в конце недели регулярно встречаюсь с парнями, которые поднимают столько же, только в долларовом эквиваленте. Это да, заоблачные деньги. А тут — обычная зарплата. Если вы к 35-40 не достигли такой суммы — значит что-то в этой жизни сделали не так, и трейдинг тут точно не поможет.
Евгений, судя по ответу в годовых 0. Очередной сливатор хуллиордер!
Борис Литвинов, хотелось бы, но хуллиорды не доверяют.
Евгений, чем вы можете подтвердить написанное? давайте проще, ваша доходность в % в год. Эти маневры типа 300к в месяц, могут быть вызваны и при покупке обязательств, в качестве облигаций. 

....все тэги
UPDONW