Понятно, что варианты ответов могут не совсем правильно передавать суть. Т.к., например, StockSharp может использовать коннектор для QUIK.
Поэтому, если решите принять участие в опросе, по возможности указывайте ту платформу, API которой служит основой для разработки роботов.
В вариантах ответов не указал SmartCom (возможно, зря), поскольку, по-моему мнению, использование этой библиотеки ближе к варианту самописной платформы.
Как новичек написал Amibroker, т.к.:
1. Программа простая для понимания
2. Внутренний язык простой. Тысячи примеров программ на официльном сайте. Я как не программист смог достаточно бысто изучить его и написать первого робота.
3. Хорошее русское сообщество на Amisite, где всегда помогут советом. Так, например, мне там помогли найти коннектор к R, чтобы в Amibroker использовать весь функционал R.
4. С помощью AmiSharp коннектится к Quik и работает стабильно. Из Quik можно получать тики. Пробовал запускать типа hft: если три последовательных тика увеличиваются, то покупаем на 4-м по рынку. Продаем также. В целом работает, но из-за скорости Quik имеется большое проскальзование. Так, что лучше реализовывать идеи на минутках и выше.
В целом. При использовании Amibroker проблема не в программировании, а в поиске идеи для системы.
Вы бы объединили все пункты про самописную. Потому что споры какой язык программирования лучше — это из «другой оперы». Тут «на вкус и цвет...». Ответ то в этом случае простой: на каком лучше получается, на том и пиши. Вот я, например, С# взял только потому, что имел опыт программирования на С++ под MS-DOS в конце 80-х-начале 90-х. Но сказать, что-то использовал из его новомодной объектной ориентированности, не могу. Единственное, что я освоил в нем новое — это закачку данных из базы данных.
Присоединяюсь к мнению уважаемого А.Г.
Лучшая платформа для алготрейдинга та, с которой трейдер умеет эффективно работать.
Сам пока пишу на QLua, но активно изучаю C# (опять же в связке с квиком). Что будет через 5-10 лет? Доживем — увидим…
Коробочные решения — более универсальны. И, возможно, будут удобны для большинства алгоритмов. Вы сразу решаете проблему с тестированием и отладкой ядра.
Но универсальность иногда урезает необходмый функционал и скорость работы. Писать что-то свое нужно на этапе, когда есть четкое понимание что писать, как и для чего.
Alex Hurko, судя по картинке из профиля, на Python программируешь :) Причём используется какой-то локальный сервер с котировками, работающий по REST. В чём смысл? Почему взаимодейтвие не напрямую с БД происходит?
professor facepalm, на python только тестирую. Набросать алго там намного быстрее, нежели на C#. Ну во всяком случае мне:) На локалхост котировки отдает API датафида (ActiveTick), по многим причинам мне удобнее юзать HTTP запросы для закачки котировок в MongoDB. Дальше я работаю уже с БД. То, что торгуется в основном работает на C#. Меньше проблем с интерфейсом + API терминала на C#. Но кое-что есть торгующее из питона и экселя. Все зависит от задач.Нет смысла писать нечто громоздкое ради 5 сделок в неделю.
Игорь, и сейчас пользуюсь. В любой связке есть тонкие моменты, ограниченные функционалом платформы. Увы, есть стратегии которые проще полностью переписать.
professor facepalm, можно. Но это костыль. Iron Python не очень удачное решение из-за скорости и отсутствия поддержки многих питоновских либ. А связка питон + либа + сишарп имеет ряд недостатков. Например, проблема с ивентами. и тд.
Alex Hurko, «А связка питон + либа + сишарп имеет ряд недостатков. Например, проблема с ивентами. и тд.»
Ну это скорее не проблема, а задача. Решается она без особых сложностей. Вариантов много. Один из самых простых — это использовать redis (in-memory key-value database). Если конкретнее, то: redis.io/topics/pubsub
Суть в том, что из python можно подписаться на сообщения в БД по определённому адресу. И когда C# будет отправлять туда данные, то на стороне python'а они будут автоматически появляться. Нужно лишь поверх этого спроектировать простенький протокол (например, на основе json'а).
Есть и другие варианты: zeromq, grpc (точно не уверен), rest-сервер с вебсокетами.
professor facepalm, это собственно позволеят также перенести разработку всего того, что связано непосредственно с торговлей, на линукс. Оставив на винде только часть, взаимодействующую с redis и api терминала. Если, конечно, разработка на линуксе имеет какое-то занчение.
professor facepalm, да, это все возможно. Просто зачем извращаться, когда есть полноценное АПИ терминала на C# и АПИ датафида на C#? )) Если работать без терминала под FIX, тогда и потребности в C# не будет как-таковой. Там уже выбор больше и в плане языков и плане ОС. Универсального решения я думаю что нет. Все зависит от потребностей, скоростей, функционала и тд. Если оно работает в вба, то пускай работает в вба, усложнять не нужно:)
Alex Hurko, «да, это все возможно. Просто зачем извращаться»
Затем, чтобы робота надо было только один раз писать и с тестов можно было сразу запускать на реальной торговле. Без переписывания с python на другой язык и привязывания к api терминала/брокера.
professor facepalm, в идеале звучит хорошо. Но у меня так не получается. Практически под каждый алго приходится писать свой движок. Алгоритмы очень специфичны, увы. Проблема одного движка в том, что поменяв одно — начинает сыпаться другое. Больше времени уходит на отладку и тд. Но у меня опять же очень специфичные алго, там нет buy on the next bar и тд. В каждом есть своя проблема, свой прсчет, свои данные… Поэтому я и начал с того, что нужно сначала коробочные решения поюзать. Но увы я не видел ни одного универсального решения, которое могло бы сразу покрыть хотя бы 60% моих потребностей. И сам я тоже вряд ли смогу запихать все в одну коробку. Как-то так.
Всем привет! Вылезло сейчас предложение Black Friday, вот не могу по прошлому году вспомнить была ли еще распродажа перед НГ? Или надо сейчас брать, чтобы съэкономить?
Установленные на 2024 год сбытовые надбавки для ПАО «Ставропольэнергосбыт»:
staves.ru/subekty-elektroenergetiki/razmer-reguliruemoy-sbytovoy-nadbavki-pao-stavropolenergosbyt/2024/
Такого сер...
Купил, буду читать этот форум. Есть облигации в портфеле аналогов АйДиКоллект, ПКБюро. Не то чтобы цветут и пахнут, но бизнес развивается, второй год читаю их квартальные отчёты. Почему Займер понрави...
Чистая прибыль ПАО «Красноярскэнергосбыт» за 9 месяцев 2024г. упала на -4,3 %
Чистая прибыль ПАО «Ставропольэнергосбыт» за 9 месяцев 2024г. выросла на +55,8 %
С уважением,
Pinkin 🏴☠️
1. Программа простая для понимания
2. Внутренний язык простой. Тысячи примеров программ на официльном сайте. Я как не программист смог достаточно бысто изучить его и написать первого робота.
3. Хорошее русское сообщество на Amisite, где всегда помогут советом. Так, например, мне там помогли найти коннектор к R, чтобы в Amibroker использовать весь функционал R.
4. С помощью AmiSharp коннектится к Quik и работает стабильно. Из Quik можно получать тики. Пробовал запускать типа hft: если три последовательных тика увеличиваются, то покупаем на 4-м по рынку. Продаем также. В целом работает, но из-за скорости Quik имеется большое проскальзование. Так, что лучше реализовывать идеи на минутках и выше.
В целом. При использовании Amibroker проблема не в программировании, а в поиске идеи для системы.
Сейчас смотрю в сторону C# и S#.
Нет никаких споров.
Дело не в этом. Как уже написал, я использую С#, но не поручусь, что это лучше, чем самописная, например на R.
Лучшая платформа для алготрейдинга та, с которой трейдер умеет эффективно работать.
Сам пока пишу на QLua, но активно изучаю C# (опять же в связке с квиком). Что будет через 5-10 лет? Доживем — увидим…
Но универсальность иногда урезает необходмый функционал и скорость работы. Писать что-то свое нужно на этапе, когда есть четкое понимание что писать, как и для чего.
Можно ведь коннектор написать. Тогда сразу после тестирования стратегии можно будет запускать python-робота на реальной торговле.
Ну это скорее не проблема, а задача. Решается она без особых сложностей. Вариантов много. Один из самых простых — это использовать redis (in-memory key-value database). Если конкретнее, то: redis.io/topics/pubsub
Суть в том, что из python можно подписаться на сообщения в БД по определённому адресу. И когда C# будет отправлять туда данные, то на стороне python'а они будут автоматически появляться. Нужно лишь поверх этого спроектировать простенький протокол (например, на основе json'а).
Есть и другие варианты: zeromq, grpc (точно не уверен), rest-сервер с вебсокетами.
Затем, чтобы робота надо было только один раз писать и с тестов можно было сразу запускать на реальной торговле. Без переписывания с python на другой язык и привязывания к api терминала/брокера.