Блог им. YonkO

А не забацать ли нам собственную торговую платформу Смартлаба?

Только не нужно сразу кусаться. Есть идея разрабатывать платформу, либо какую-нибудь примочку, как продукт смартлаба(естественно всё на общественных началах)
Начну уже сегодня в эту сторону копать (после работы:)).

      Понятно, что с++ с нативным кодом выдает более высокую производительность, но хотелось бы услышать ваше мнение по поводу использования C# и обоснование того, почему он так стал популярен среди разработчиков торговых платформ (недавно тут какая-то контора писала тоже про open source проект, + ещё платформа IT-Invest). И почему например не Java. По быстродействию точно не уступает c#, либо Cython (Python + C).
★4
85 комментариев
Прагматичный вопрос: а зачем?
avatar
vovam, наверное, чтобы было))
avatar
vovam, во-во, тем более «на общественных началах» — самое дорогое — это бесплатное
avatar
чем stocksharp opensource не нравится? (http://smart-lab.ru/company/stocksharp/blog/236117.php)
avatar
да да даёшь краудфандинг!
avatar
а не забацать ли нам собственную биржу смарт-лаба сразу?
avatar
Не, никакого краудфандинга!)
avatar
Я приследую сугубу личный интерес приобретения опыта. + Хотелось бы быть полезным
avatar
liquid_sun, занятие не из благодарных. Путь от начала, до первых нормальных (конкурентных) релизов, в компании 2-4х программистов — годы.
Если есть потенция и рвение, рекомендую сосредоточится на какой-нибудь plugin-нише. В общем взять кусочек от всего ландшафта и попытаться его вскопать.
Не знаю. Какую-нибудь рисовалку легковесную к квику или еще что то типа того. Тогда шансы подрастут из зоны «анриал» в область «наверно возможно».
avatar
vovam, спасибо, что-то из этого разряда и имел ввиду под «примочкой»
avatar
liquid_sun,… ну и конечно не питон. Питон это скорее язык прототипирования, анализа данных, быстрых набросков, скриптов, верхних модулей, web, в крайнем случае — легких фреймворков (см. quantopian). Но ядра на нём всё же не пишут.
C# пока всё же не кросс-платформенный, хотя всё ближе после раскрытия исходников (моно сыроват).
Для вашей гипотетической задумки — Java и C++ остаются.
Но это утопия...
avatar
vovam, да я бы на Java хотел) я на ней ынтырпрайсы пишу)
avatar
liquid_sun, вы хотя бы примерно представляете сколько человеко-часов требуется чтоб получился продукт которым хоть как то можно пользоваться? Причем качество продукта также зависит от степени профессионализма тех разработчиков, которые будут составлять эти самые «человеко-часы»
avatar
Это очень дорого
вы забыли упомянуть о собственной пропкомпании. с этогт и начните.

а терминал есть хороший — метатрейдер 4 называется
avatar
Machez, нужно для начала выйти на такой уровень опыта c++ при котором он бы позволял нам реализовать идеи)
avatar
liquid_sun, есть готовые коды и известные постановки задач, опыт программирования — в процессе опыт наберется.
avatar
Как кодер говорю, действительно глупо и не нужно.
Сложно и долго.
очень дельный совет сделать надстройки\модули, большинство нормальных терминалов это позволяют сделать\использовать.
+ Данная разработка введет в курс писанины под торговлю, там и сами поймете.
а разрабатывать примитивный терминал, ни кому не надо.
С# он да наравне прыгает с джавой, то тот прыгает выше, то этот)
питон для таких целей вообще не рассматривать)
avatar
Alexandr Mo, всё никак питон ни куда не пристрою)
avatar
Alexandr Mo, на терминал времени уйдет столько, что на трейдинг и индикаторы не останится. Кодить терминал, Imho, задача сложная и неэффективная.
avatar
Никакого C++! Очень вольный язык, в котором легко наделать тучу не очевидных ошибок. Ещё не хватало потерять бабосики мз-за какого-нибудь дурацкого бага. Либо C#, либо Java. Тяготею более к первому
avatar
Том Сойер, проблема в том, что он не кроссплатформенный
avatar
liquid_sun, Вы правда полагаете что если напишите на C++ оконное приложение для Windows, то потом сможете без особых усилий сделать из него сборку под Линукс?
avatar
Том Сойер, Первый раз слышу что C++ «вольный язык». С++ совершенно себе строго типизированный язык. Компилятор ни в какую не даст вам присвоить целочисленной переменной строковое значение, если вы будете явно использовать таковые. А чтобы не было очевидных ошибок давно уже придумано TDD и как минимум модульные тесты.
avatar
SergeyEgorov, речь скорее про память.
avatar
poseydon, Ну если уж записался в программисты то неплохо бы понять как все это безобразие в памяти происходит. :-) На C# же тоже можно так написать что сборщик мусора захлебнется.
avatar
SergeyEgorov, во многих учебниках по C# и Java есть оговорки в духе «а вот в C++ эта небезопасная конструкция работает». И таких «а вот в C++» воз и маленькая тележка
avatar
poseydon, там нужно следить за уничтожением объектов из память, в джаве и шарпе сборщик мусора сам это делает
avatar
liquid_sun, я знаю.
avatar
А кто-нибудь знает про платформы написанные на джаве?
avatar
liquid_sun, а какая платформа нужна? Тестить можно в большом кол-ве софта — хоть в Метатрейдере, только решить что-то в Метатрейдере это хммм… dll в Метатрейдер и готово.
avatar
liquid_sun, Omni Pro
avatar
Machez, был бы опыт в с++ был бы обеими руками за
avatar
Machez, да)
avatar
SECRET, Давай! Только кто будет кроме тебя ликвидность поставлять и узкий спред?
avatar
студент, иди курсач пиши
avatar
Простите, наверное я вас огорчу, но могу уверить вас в том, что ваша идея, заранее обречена на провал.
Не хочу показаться невежественным, но видимо у вас нет опыта в этой сфере. В свою очередь я имею обширный опыт. Вот немного конкретики:
У вас нет идеи, что конкретно вы собираетесь, реализовать.
Такой подход — студенческий. Вы хотите что-то сделать но не знаете что, а уже выбираете платформы, среду разработки и.т.д.
Когда у вас будет сформированно «Техническое задание», в котором будут перечислены поддерживаемые платформы, нагрузка, интеграция с площадками и/или готовыми системами — вот тогда круг выбора сократится или вообще останется только один вариант. Возможно вам придется разрабатывать комбинированную архитектуру перенося часть функционала в облако. В любом случае не с этого начинают.

А начинать вам нужно с «потребности», потребности в чем-то, спросе. А не придумывать «какую-нибудь примочку». Вы должны проанализировать спрос, количество возможных пользователей, монетизацию. И самое главное ваше решение должно быть монопольном, а не дай бог «Есть идея разрабатывать платформу,». Т.к. все байки о том что должна быть на рынке конкуренция, верны только применительно к потребителям, и не в коем случае не для производителя. Чем больше конкуренция, тем меньше (или стремится к 0) прибыль. Не буду расписывать этот момент. Скажу просто найдите статью (или перевод) и вам все станет ясно
читать:
«Питер Тиль: конкуренция – удел проигравших».

После определения потребностей, идеи продукта, монетизации нужен бизнес план. Да, без него вам никак. Или вы хотите рассмешить нас и заверить что вы «волшебная пони» и сможете найти команду альтруистов и мотивировать их идеей «все во благо»?.. Бросьте, бесплатная мотивация — живет неделю максимум две.
Для реализации проекта в сфере связанно с финансами — требуется много ресурсов. И очень грамотные специалисты, поэтому уровень дохода разработчика, архитектора, тестировщика и т.д. тут гораздо выше чем в к примеру в вебстудии или т.п. А такие специалисты знают цену своему времени и на альтруизме работать не будут. А ведь продукт дожен быть надежным, очень… Вы сможете обеспечить это? думаю нет.

Я мог бы продолжать… но пожалуй остановлюсь. Одного только первого пункта достаточно для вердикта.

Представьте что вы сам бизнес-ангел (но крохотный) и у вас есть деньги на новенький reno logan, вы копили их 5лет. Но готовы вложить в проект чтобы через какое то время заработать на BMW. Как вы будете относится к человеку который придет к вам с идеей «хочу что-то замутить, дай денег, и вот… еще на чем писать как думаешь java или C#»?
Просто Константин, согласен во многом, только о5 про какие-то деньги добавили, о них речи не идет
avatar
liquid_sun, Вы один не потянете, это даже не обсуждается. Нужны ресурсы => команда, возможно ПО, абонентка к платформам, возможна закупка серверов и.т.д => деньги — это априори, если вы с этим не согласны, то даже то время которое я потратил на написанное потрачено зря.
Просто Константин, ну пост был в том числе для сбора информации, Machez дал полезную инфу, мне интересно это дело, поэтому хотел услышать комментарии от людей, которые в этом разбираются, в отличии от меня) а вы все верно пишите, прямо жизненный цикл ПО)
avatar
liquid_sun, напиши сначала робота, который будет зарабатывать 100500%, а потом как деньги поднимешь подумаешь, нужна тебе платформа для смартлаба или нет)
avatar
Karmanoff Fedya, ну с таким ботом получу все деньги мира, тогда на платформу точно времени будет много:)
avatar
Просто Константин, мне кажется, что Вы чрезвычайно серьёзно отнеслись к записи:) Полагаю, это романтичные мечтания и ностальгические воспоминания о тех временах, когда популярные программы писали в одиночку)
Подумать страшно сколько необходимо человеко-часов для написания простейшего глючного терминала
avatar
Machez, а какие именно функции в тех библиотеках, я просто не знаю, мне интересно
avatar
Machez, спасибо
avatar
если ты к трейдерам обращаешься, то:

— на жабе TWS и TOS
www.thinkorswim.com/t/trading.html

institutions.interactivebrokers.com/en/index.php?f=1537&ib_entity=inst

— питон и так хорош, сделай обертку для плазы например, хотя это будет медленно, но удобно
ftp://ftp.moex.com/pub/ClientsAPI/Spectra/CGateCurr/

хфт-шники сами на плюсах себе напишут

— плюсы в масс-трейдинге уже есть, сделай коннектор
www.sierrachart.com/index.php?page=doc/doc_Contents.php#AdvancedCustomStudySystemInterfaceandLanguage

www.sierrachart.com/index.php?page=doc/doc_DTCProtocol.php

— шарп текуч, жорок и некроссплатформенен, хотя не так и плох на практике для многих мелких задач, он просто не оптимален в принципе, а завязка на одну фирму не вдупляет нынче народ в бизнесе

велосипеды не нужны. жаль времени.
avatar
crazyFakir, спасибо
avatar
мне лично Java очень нравится.
хотя платформу для трейдинга серверную я бы наверное делал на C++
но надо понимать, что по навыкам, imho, гораздо сложнее найти сейчас C++ ника. Плюс в моё время всё дело было не в языках, а в библиотеках и рантайме. C# и JavaEE дают мощнейший стек и по работе с БД и с сообщениями, для C++ это, кмк, посложнее (но я уже не в теме).

вообще не надо делать то, что уже есть. если только нет желания сделать что-то лучше и готовности потратить на это лет 5 жизни и кучу времени и сил с неизвестным результатом.
avatar
ПBМ, спасибо, просто решил в этом направлении работать, понимаю, что далеко не самое простое. И ещё по Java: через JMS есть возможность получать котировки вообще?
avatar
liquid_sun, есть FIX протокол, есть API разных брокеров, получать можно хоть в Паскаль или Бэйсик v. 6.0/
avatar
liquid_sun, как в анекдоте, съисть-то он их съисть, да кто ж ему их дасть?
котировки через JMS не слышал. да и не заморачивался.
могу пропиарить свою разработку: «On-Line получение данных из Quik в Java и не только» — smart-lab.ru/blog/216370.php
avatar
ПBМ, круто, и исходники расшарил, посмотрю обязательно)
avatar
так есть уже
ruticker.com
avatar
All, Ну так чего, сделаем группу? :-)
avatar
Machez, можно, но вы же понимаете, что мне нужно время для обучения плюсам:)
avatar
liquid_sun, специализированно учится плюсам, imho, не надо, надо проблеммно ориентированно учится, есть солвер такого-то уравнения берешь и подаешь котировки в C++ и учишь C++ только в той части которая относится к задаче. Программирование «необъятно», даже если рассматривать только C++ Все imho.
avatar
Machez, к фреймворкам все равно нужно спеку почитать имхо
avatar
liquid_sun, еще интересный платный компилятор, называется PGI compiler, который при компиляции автоматически распарралелривает код, и делает выполнение кода в GPU, стоит 200 баксов с небольшим, поддерживает он как обычно C++ и Fortrun… C# скорее всего не поддерживает, и наверное, врятле будет поддерживать. GPU интересен не для HFT, а что-бы считалось не час или два, а несколько минут или секунд.
avatar
Machez, а что за группа, где стаканы и тиковые данные раздают?
avatar
asteroid, раздают вот тут www.itinvest.ru/software/spo/qscalp/history/ стакан за день после распаковки из формата .qsh по РТС занимает около 250 мегабайт, т.е. база за год это в райне 80 гигов по только по фьючу на РТС! Группу предлагатеся сделать (т.е. определится с платформой(язык программирования, БД, котировками (это необходимая база) и обсуждать методы и считать… Есть желание кодить в C++ и заниматься научными методами?
avatar
Machez, а, qscalp, слыхал. есть интерес к обработке рыночных данных. датамайнинг и чтото подобное. и чем группа будет заниматься? какие цели/идея? кто идеолог?
avatar
Machez, где нажать кнопку «вступить»?
avatar
Торговую платформу — не знаю надо ли? Там очень много надо писать.

Для себя потихоньку пишу платформу для написания роботов (пока на начальном этапе).
avatar
Machez, так данные надо он-лайн качать, заявки выставлять, бактестинг еще делать и т.д.
avatar
Rookie, для этого две программы — одна принимает котировки в реалтайм и торгует, другая загружает котировки из бд, обрабатывает аналитическим кодом данные, и бэктестит с выводом результатов. Платформа одна, проги две. Если без автоторговли, то проще. Писать программу в которой можно кодить роботов, это imho, слишком сложно и бесполезно если нет аналитической длл, причем вероятность что прибыльной длл не будет совсем не маленькая и в основном не по субъективеым причинам.
avatar
Machez, вы тестили?) автоматическое распараллеливание компилятором vs распараллеливание руками. Показатели производительности многопоточного кода на выходе какие?
avatar
liquid_sun, циклы любого кода отлично распарралеливаются. Если речь не о коде GUI.
avatar
Machez, у Вас есть опыт программирования нейронных сетей?
avatar
C#, Java — надо переписывать сборщик мусора и менеджер памяти. Иначе при больших нагрузках будут реальные тормоза. Если не хочется этим заниматься, то получается C++ и Object Pascal. Если не нужна большая скорость, то можно использовать Pyton. Сам пишу на Delphi. Программу для анализа тиков написал где-то за полгода активной работы.
avatar
хорошая основа для онлайн платформы:

ruticker.com
avatar
Всем спасибо за полезные комменты, видите как много информации!
avatar
SECRET, если лот будет 100000 контрактов?
avatar

теги блога liquid_sun

....все тэги



UPDONW
Новый дизайн