Блог им. Replikant_mih
Всем привет).
В процессе углубления знаний языка C# пришла такая мысль, хочется получить обратную связь на предмет незамеченных подводных камней и аналогичного — буду благодарен.
Собственно: богатый арсенал языков программирования, а в частности C# — в т.ч. наследование и прочее, позволяют реализовать торгующий модуль какой угодно архитектуры, структуры, с нужными названиями классов, полей и методов. Посему, предположительно, можно написать такой проторговщик, который будет принимать код стратегий из Wealth-Lab как родной, без необходимости его менять, подгонять, править, дебажить, искать ошибки переноса и прочее. Все что я написал после слов «без необходимости» — как бы известные плюсы использования одного кода для тестов и торговли (наверняка, не все плюсы даже перечислил). Т.е. тут один раз качественно убеждаемся, что код интерпретируется полностью аналогично и всё — дальше Ctrl + C, Ctrl + V.
Или если можешь написать такой проторговщик, то проще и Велс свой написать и не иметь мозг?))
Что думаете? :)
UPD.: как это часто бывает, комментарии достаточно волатильно отходят от непосредственно затрагиваемого вопроса)), но все равно есть интересные мысли.
Андрей К, А кстати, можно ж не реализовывать прям все явным образом, а библиотеку подрубить просто, наверно.
А вообще, наверно можно урезать задейстуемую стратегиями функциональность для простоты реализации интерпретатора стратегий.
Но вот для Кивка я написал себе тестировщик, точнее некий аналог поиска оптимальных параметров алгоритма. Т.к. такого почти нигде нет. Написать алгоритм просто, а вот ответить на вопрос — а какие параметры оптимальны для инструмента, уже сложнее. Надо перебрать все комбинации, посчитать eqiuty, сравнить все это, сделать вывод.
Даже простая стратегия двух скользяшек дает порой удивительные неожиданные параметры, которые самые прибыльные.
А если нужно подускориться, то придется свое городить
Найдите такой алгоритм и такие его «почти инварианты».
Вот это вы замахнулись, однако! Я тут год не могу написать простой интерактивный график с вертикальным, горизонтальным скроллингом, по типу квиковского...
А вы — прям целиком терминал написать! Круто ))
Поэтому с нуля
если вашей стратегии нужна такая скорость то на c++ пишите только логику и выносите её подальше от интерфейса так как тормоза все в нём, а интерфейс хоть на ангуляре пишите.
Просто шок )
у одиночек преимущество в другом их код вылизан и оптимизирован под продукт, так как в команде главное таски быстрей закрыть и что бы тесты проходились, а на реализацию всем плевать.
kbrobot.ru, Ну,
ТСЛАБ — не нравится платностью, не нравится ростом цены (т.е. динамика платности и непредсказуемость). Ну это становится важным только на фоне прочих условий — как бэктестер как-то мне не сильно понравился, особенно в части кубиков, в части API не пробовал — думаю, сложнее в освоении чем Wealth-Lab, с моим типом мышления это критично. Проторговщик — глючный и с ограничениями. В общем накопительно Score не очень большой платформа получает)) — хотя да, один код и торговля и тесты — здесь это, вроде, есть.
StockSharp — бэктестер у них новый продукт, вроде не фонтан пока. А для торговли используем их платформу.
Ну а Wealth-Lab — из того что видел — самая сильная для рисёча платформа + подобрал ключик к расширению функциональности для полного удовлетворения моих рисёч потербностей.
А Дизайнер сыроват. Впрочем как ТСЛАБ 2.0, который я честно мучал несколько месяцев. Удалил обе программы. Кубики не моё. Пишу в основном на C# и понимаю, что на языке писать проще, чем в конструкторе.
Sergey, а бэкстестер и Дизайнер это разное у них?) — ну я, честно, глубоко и не копал).
Да, код много лучше кубиков, и аргументы сторонников кубиков всегда немного неубедительно звучат для меня.
Дмитрий Титков, в одного писали? — я так понимаю, мощный разработческий бэкграунд у вас?)
Как в целом алго-торговля протекает?) — робастность научились обуздывать?)
Там давно все изобретено и реализовано в деталях.
https://www.metatrader5.com/ru/automated-trading/strategy-tester
Там не надо изобретать 99% велосипедов, а просто брать и пользоваться хорошо проработанной системой.
За ним стоят 17 лет последовательного развития языков MQL, MQL2, MQL4 и MQL5, когда язык вшивался вглубь торговой платформы, пока не стал ее ядром.
Это означает, что он сам является платформой, а не прицеплен сбоку. Доступы ко всему рыночному окружению и минимальные задержки — вот над чем мы работали и что оптимизировали.
Странно слышать про слабый тестер, когда он:
— мультивалютный
— потиковый с миллисекундной точностью, даже Sleep в моделировании учитывается и проскальзывания временные моделируются
— без заглядывания в будущее,
— мультипотоковый, с локальными расчетными фермами, с MQL5 Cloud Network
— визуальный тестер
— генетический оптимизатор
Задумайтесь, что и как может вложить за 17 лет профессиональная софтверная компания в свою приоритетную технологию?
MetaQuotes Software, вопрос вконце — не аргумент, если вложить не в том направлении — результаты буду мощные конечно)) — все-таки 17 лет — но не убедительные.
В остальном — по поводу полного аналога C++, кто как — кодеры это делают постоянно, вроде — но я не могу себе позволить взять и за завтраком изучить новый язык программирования, тем более мне не хватит мотивации если я буду знать, что кроме как здесь он мне нигде не пригодится, для меня это важно.
Про тестер — честно говоря, давно это было (в т.ч. не исключаю, что что-то/многое изменилось/улучшилось), не помню детали, но что-то жестко меня в тестере напрягло тогда — деталей не помню, может, невозможность стартануть сразу прогон на портфеле, а не только на одном тикере… — такой есть грешок? — мне это критично.
А так все что вы в пунктах плюсов тестера перечислили это сильные стороны, по крайней мере в теории.
Ну и в целом я ж не агитирую и на последнюю инстанцию не претендую, кому-то понравится, в т.ч. потому что для этого человека особенности тестера будут плюсами именно в рамках его подхода, но юзать не буду, пробовал, оценил, выбор сделал.
Тестер мультипортфельный изначально. Причем идет одновременное моделирование всех выбранных инструментов с миллисекундной точностью.
Кроме того, в тестере есть дополнительный режим оптимизации по портфелю символов из обзора рынка:
Общая мысль в том, что индустрия алготрейдинга продвинулась очень далеко.
Изобретая велосипеды, да еще и с откровенно непригодными коннекторами, люди не понимают сложности реально решаемых задач на текущий момент.
MetaQuotes Software, 1000 брокеров, вы же про форекс, я так полагаю. Не форекса среди них меньше процента, наверное. Не будем поднимать тему того, что считает большинство трейдеров по поводу форекса и в частности связки MetaTrader + форекс. Поэтому да, это тоже не аргумент. Отсылка к авторитетам, мнению большинства и подобному — никогда не были хорошим аргументом в дискуссии.
По остальному, честно, нет большого желания дискутировать, возвращаться в терминал, что-то смотреть, проверять)
Replikant_mih, ну если человек не хочет учиться.
Посмотрите вот сюда, пожалуйста: https://www.metaquotes.net/ru/company/news — это факты.
Если вернуться к поднятой теме, то повторю — сложность алготрейдинга давно выросла за пределы «сваять на коленке в C#».
Поэтому лучше потратить несколько часов или дней на анализ готовых и развивающихся решений, чтобы не расходовать ресурсы впустую.
Wealthlab давно уже не развивается, последний релиз был больше двух лет назад. Авторы понимают, что время одиночных аналитических терминалов ушло и они просто в пассивном режиме продают остатки.
Интерес к платформе на нуле: https://trends.google.com/trends/explore?date=all&q=wealthlab,metatrader
MetaQuotes Software,
>>«ну если человек не хочет учиться.» — что там опять у вас за человек не хочет учиться?))
>>"https://www.metaquotes.net/ru/company/news — это факты" — ну эти ваши «это факты» никак не противоречат написанному мной, я знаю, что софт используется и на биржах, но относительно форекса, их подавляющее меньшинство — я так и написал)).
По поводу C# на коленке)) — у вас слегка искаженное представление об алготрейдинге)) — да, готовая платформа, пусть это будет MT5, лучше чем что-то за 5 минут на коленке на C#. Но — маленький секрет — на C# можно не только на коленке. Если планы скромные — можно довольствоваться MT5, Квиком или чем-то ещё, если планы серьезные, достаточно быстро человек перерастет платформу, потому что платформа предлагает некий усредненный функционал. Да, платформа идет за трендами и чаяниями большинства, но кто сказал, что большинство на рынке решает? — как раз-таки наоборот- толпа проигрывает.
>>«Интерес к платформе на нуле: » — естественно у «metatrader» куча запросов, учитывая что 4-я версия в каждой(!) форекс-кухне стоит, коих бесчисленное количество!
По поводу Велса — не знаю, как вы оцениваете, мне наплевать сколько раз люди его вбивают в поисковике!))) — мне важно, что он конкретно мне дает как платформа, и возможностей он мне дает существенно больше, чем MT5 и точка. Некоторым людям сложно думать своей головой, им нужен поводырь в принятии решений (рекомендации друга, выбор толпы, что-то ещё), мне не нужен.
Человек не в состоянии перерасти современные платформы. Потому что их сложность/комплексность нельзя перебить ничем, кроме сотен человеко-лет кропотливого изобретения велосипедов.
Попытайтесь честно сравнить, что Велслаб дает по сравнению с MetaTrader 5 и вы признаете вывод, что «для меня не важно, я же буду на C# писать свое».
Именно поэтому вы так реагируете на MetaTrader. Вам не важны никакие аргументы, так как вы считаете «да все же ясно, C# рулит!».
MetaQuotes Software,
>>«Человек не в состоянии перерасти современные платформы. Потому что их сложность/комплексность нельзя перебить ничем, кроме сотен человеко-лет кропотливого изобретения велосипедов.» — человеку и не надо перебивать сложность и комплексность), человеку нужна конкретная функциональность, а сложность и комплексность во многом нужна для удовлетворения средних потребностей тысяч средних трейдеров, а какой мне профит от того, что платформа, которую я юзаю, удовлетворяет тысячи трейдеров, если она не удовлетворяет лично мои?! — тут два вариант либо я дурачок и мои потребности странные и неадекватные, либо, как я выше написал, усредняющая платформ не способна удовлетворить лично моим конкретным всем потребностям в алго-сфере.
>>«Попытайтесь честно сравнить, что Велслаб дает по сравнению с MetaTrader 5 и вы признаете вывод» — спасибо, я спсобоен сравнить, способен честно сравнить, более того давно уже все сравнил)), в ближайшее время не планирую)).
«Вам не важны никакие аргументы, так как вы считаете «да все же ясно, C# рулит!»» — «не важны никакие аргумент» — вот прям вообще ни разу не про меня, полностью мимо прям).
Все познается только на собственном опыте. Вдруг получится.
MetaQuotes Software, Согласен, теория-теорией, критерий опыт и прибыли)).
И вам удачи!
Для C# есть довольно много платформ помимо WL. Например OpenQuant\SmartQuant или StockSharp.
На самом деле все достаточно просто. Поехали:
— Чем универсальней должна быть система — тем она сложнее.
— Чем сложнее система — тем больше средств (людей, денег, времени и т.п.) требуется на ее разработку.
— Чем «дороже» система (в том числе в человеко-часах) — тем больше требуется экономических обоснований для ее создания.
— При наличии достаточно большого количества экономических обоснований для создания системы, процесс создания такой системы превращается в отдельный коммерческий проект.
— На одновременное ведение двух и более коммерческих проектов (попытка заработать алготорговлей — это тоже коммерческий проект) обычно не хватает ресурсов (денег, времени, людей).
— Как результат — приходится выбирать что-то одно или страдают результаты всех направлений деятельности.
Вывод (читай «рекомендация»):
Напишите свой узкоспециализированный софт для тестирования Ваших стратегий, который будет заточен исключительно под Ваши потребности и особенности. Такая разработка потребует значительно меньше ресурсов и будет отвечать вашим запросам процентов на 95%.
Для запуска роботов в реальных условиях, также напишите отдельный софт. Также как и с тестером, он будет заточен исключительно под Вас, будет работать быстрее и стабильнее универсальной системы, и позволит переносить код оттестированных стратегий в рабочие алгоритмы достаточно быстро, чтобы не задумываться необходимости иметь универсальную систему.
З.Ы.: У меня перенос оттестированной на истории стратегии в рабочий алгоритм занимает 5-10 минут. Иногда, из-за невнимательности и спешки при переносе возникают ошибки, но очень редко и чаще всего несущественные (во всяком случае, много денег потерять не успеваю).
З.З.Ы:
На самом деле, если бы я сейчас только начинал заниматься этим вопросом, то обратил бы свой взор на OsEngine:
github.com/AlexWan/OsEngine
Попробуйте — вдруг поможет…
Prophetic, >>«У меня перенос оттестированной на истории стратегии в рабочий алгоритм занимает 5-10 минут.»
Круто!
По поводу софта под свои потребности и задачи — полностью согласен! — это как целевая конфигурация. Но так как я согласен и с тем, что вы сказали про оценку эк. целесообразности сложных проектов, то на такое тоже надо решиться и обдуманно и обоснованно решиться, а не то что это маст хэв. Как этап эволюции — да.