Ваша оценка СтокШарпу
Решил поизучать СтокШарп. Кое-как поставил, ибо не коннектился он с квиком. Проблема решилась установкой на комп С++ 2015. Сейчас вот новая проблема — в СтокШарп не загружаются инструменты из квика. Гуглил вчера, видео смотрел… так и не нашел решение проблемы. Кто-нибудь уже проходил этот путь? Стоило оно того?
Если вы про Лин, то все в лучших традициях — ни саппорта, ни документации, ни форума, ни установщика. Больше подохит на проект, созданный под сайт и только. Было выбрашено на свалку истории мною.
Про него, да. Доки вроде ж есть и на сайте, и на хабе. Форум тож есть. На нугете есть установщик в проект. Так что не соглашусь, что ничего там нет.) Судя по логам хабы лин вполне себе развивается.)
Скоро планирую начать заново его юзать. В параллель с S#. Посмотрю на простых задачах кто быстрее работает на бэк-тестах и реалтайме.
Лин увы свой шанс пропукал. Квантопиан он никогда не догонит, а деньги, как я понял, идут именно за счет сайта.
Нет историий использования — нет реального применения. А значит коды не апробированы временем.
Я поэтому и против метака в пользу Квика. Метак может хорош на Форексе, но никакущий на фонде. Ничего толком не умеет, и делать им еще лет 10. А я планируют через 10 лет вообще завязать с трейдингом :-)
Считайте, это первое реальное применение ваших трудов на практике.
Standalone люди им продолжают пользоваться, пишут вопросы и отзывы — в последнее время не было очевидных багов. Первое реальное применение моих трудов было мною на моем компьютере и рядом контрибьютеров… То что там происходит в тслаб меня мало волнует (помимо ссылки на проект, не знаю добавили в итоге они ее или нет).
Бобровский Дмитрий, это очень нестандартные вещи. Их можно для ТСЛаб на C# реализовать. Допустим, воспользоваться какой-то из готовых библиотек.
Суть ТСЛаб в чем: Вы можете для себя написать любой кубик (или индикатор) и добавить его в список доступных.
Нужен Вам супер-пупер-мега-цифровой фильтр с использование GPU — пишете кубик на C# — закидываете в папку ТСЛаб — и вуаля! Он становится доступен в Редакторе Скриптов вместе со всеми остальными кубиками.
И чтобы получить этот супер-пупер индикатор не нужно писать свою платформу полностью с нуля.
Что же касается интеграции с R — это вообще больной вопрос. И боль эта вызвана тем, что сам R не предоставляет нормального АПИ для взаимодействия с собой.
Казалось бы чего проще: выставил TCP порт — и перекидывайся командами. Но нет. Нужны какие-то танцы с бубнами.
ПС Кстати, в инете есть внятная инструкция как прикрутить R к ТСЛаб. Гугл знает.
По поводу кубиков — отлично, если так. Но что делать, если в коде стратегии нужно использовать те или иные мат.библиотеки? Ну, чтобы, например, не плодить вызовы примитивов?
Вообще, если реализовано в TSLab'е именно так, через кубики, то это немалый плюс — в своё время в Wealth-Lab была целая проблема с подобного рода вещами. Более того, клиент-серверная составляющая работала через жёсткий пень-колоду, сам Wealth падал через раз-два (это на ранних 6-х версиях было). А уж присобачить к MSVS — это из рода чёрной магии, хотя и заявлялось, что это просто. Профилировать такой код было тоже крайне неудобно.
К тому же вопрос в скорости важен — TSLab умеет параллелиться при бэк-тестах? Велс не умел (на ранних версиях 6.x).
Бобровский Дмитрий, по-моему, умеет параллелить оптимизацию на истории. Это как бы настолько естественно, что Ваше утверждение про велс повергает в шок.
Насчет «кубиков и сторонних библиотек». Да, можно написать на C# простой класс, который будет подготавливать данные и передавать в стороннюю библиотеку. Например, в AlgLib. Или в какую-то платную математическую библиотеку (их есть довольно много причем распараллеливание выпихивается даже на GPU насколько мне известно). Получать из неё ответ и возвращать обратно в ТСЛаб для дальнейшего использования.
Возможно, R.Net за последние годы сильно продвинулся в направлении упрощения интеграции с CLR. В своё время долго бился над этим. В итоге всё было мутное и ненадежное.
Надо будет попробовать на практике. =) Вдруг какой-то пакет анализа временных рядов позволит получить нетривиальное предсказание рынка на один бар в будущее?..
Про класс — да, можно, вопрос в удобстве. Плюс вопрос — какая часть кода доступна в конструкторе для разраба? В велсе это был метод, позволяющий только трейдить. И запихать класс туда было не так просто.
Да, и велс не распараллеливался на истории в оптимизаторе никак от слова совсем. Ну вообще никак, ну вот ни малёха. В один поток шарашил. Можно было сделать финт ушами — разбить пространство параметров на блоки и фигачить. Но это другая история. Если TSLab это исправлено — супер!
Второй вопрос — что с менеджером свечек? Что с профайлером и логированием? Н-р, хочу я свои свечки клепать из тиковых данных — потянет TSLab по функционалу и скорости?
Бобровский Дмитрий, =) это сразу много вопросов. Чтобы не вводить Вас в заблуждение нужно конкретно обсуждать каждый.
Причем делать это или на форуме ТСЛаб или даже лучше уже через их официальную тех.поддержку.
1. "Что с менеджером свечек?"
Что Вас интересует? Свечи хранятся, распаковываются, передаются в скрипт в готовом виде.
Свечи могуть быть эквиобъемными или рейнж цены.
Также есть возможность (в определенных пределах) делать на лету свои свечи. Например, из свечек 2-х инструментов сделать серию свечей корзины инструментов.
2. «Что с профайлером и логированием?
Ваши кубики — это код на C#. Все средства отладки и профилирования применимы.
Логгирование можно делать штатными средствами ТСЛаб (с записью в файл с логом и/или с выводом на экран). Но если Вам очень хочется — никто не мешает открыть FileStream и лить туда свой собственный поток данных в своём собственном формате.
3. „Н-р, хочу я свои свечки клепать из тиковых данных — потянет TSLab по функционалу и скорости?“
Вы можете клепать для себя любые серии данных, какие Вам нужны и использовать их внутри своего кода как угодно.
Но если речь идет о какой-то нестандартной нарезке баров, чтобы потом она естественным образом встроилась во все остальные элементы управления — такого скорее всего не получится.
=) Не думаю, что вообще есть хоть одна стандартная платформа, которая позволяет просто взять и заменить алгоритм формирования свечек. Допустим, вдруг начать рисовать свечки в виде крестиков-ноликов.
Обычно делают 3-5 алгоритмов нарезания в готовом виде.
Всё остальное самому делать можно, но без визуальной поддержки на графике.
Надеюсь, понятно объяснил.
ПС При работе с данными в текстовом виде в формате CSV ТСЛаб доступен бесплатно и без ограничений.
Поставьте, посмотрите примеры, попробуйте в конце концов.
По п.2 — если TSLab позволяет подключать MSVS и профилировать/дебагить код, то это только + в карму TSLab.
п.3 — CandleManager в S# позволяет исполнять любые пассажи с данными в разрезе агрегации в свечки в т.ч. и такие, которые можно в Кама Сутре описывать.))) Плюс скорость работы с данными — н-р, Wealth-Lab вешался при работе с большим объёмом данных. Ну просто пц. И жрал память вагонами. TSLab лишён этой болезни?
Попробую мб через некоторое время — мне сейчас нужно кое-какие алгоритмы под платформу на R переписать на Rcpp из стандартных библиотек. А дальше посмотрим, что как, — может, действительно проще будет разрабатывать на TSlab'е, раз там столько плюшек, уйдя со S#.)))
Бобровский Дмитрий,
2. Разумеется. Кубики пишем в Visual Studio. Настраиваем автоматическое копирование собранной длл в известную папку. Запускаем ТСЛаб, подключаемся отладчиком к процессу. Код своих кубиков полностью доступен и виден в Студии. Можно ставить точки останова и т.д.
3. Не знаю насчет CandleManager. Ничего не могу сказать. У себя в памяти можно исходные данные (допустим, тики) как угодно агрегировать. Но потом их нарисовать на обычном штатном графике скорее всего не получится.
Агрегированные данные можно положить во внутренний кеш (локальный или глобальный). После чего они будут доступны из других кубиков и даже из других роботов.
Например, можно организовать такую историю: один робот подписан на тики и агрегирует их каким-то камасутровым способом. Результат кладет в глобальный кеш.
Другие роботы просто берут готовые данные из этого глобального кеша и пользуются ими.
Что касается памяти, то ТСЛаб рекомендуется запускать как 64-битный процесс. Соответственно, памяти сколько воткнете в машину, столько и будет.
=) ну а дальше все зависит от Ваших задач и степени прямизны рук. Если задача требует 10 гигов памяти — с этим ничего не сделаешь.
А так всякие идеи пытаюсь с точки зрения статистики проверять на питоне.
Поэтому в моем случае такой подход вполне себе оправдан.
Я для себя такой критерий давно поставил. Если с рынка не поднимать в месяц хотя бы тонн 300 физику, то нет смысла заниматься рынком вообще. Есть секторы в финансах, где с парням с головой можно зарабатывать больше, при меньших рисках. Не говоря даже про роботов, где усилий многократно больше и доход должен быть соотвествующий.
Я вам привел обычную сумму и обычную метрику. В банке в 2007 я получал с бонусами эквивалент на текущий день 400 на руки. Обычный трейдер, не директор и не кто-то еще. Это фикс, и не зависело от уровня торговли (хотя я суммарно отторговал в плюс за дологие годы работы). Поэтому я лично не вижу никакого смысла тратить свою жизнь по вечерам после работы, получая крохи. Если достаточно протянуть руку и получить без рисков и стрессов нормальную оплату.
Это какие-то большие деньги? Я в конце недели регулярно встречаюсь с парнями, которые поднимают столько же, только в долларовом эквиваленте. Это да, заоблачные деньги. А тут — обычная зарплата. Если вы к 35-40 не достигли такой суммы — значит что-то в этой жизни сделали не так, и трейдинг тут точно не поможет.