liquid_sun
liquid_sun личный блог
12 февраля 2015, 13:35

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

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

      Понятно, что с++ с нативным кодом выдает более высокую производительность, но хотелось бы услышать ваше мнение по поводу использования C# и обоснование того, почему он так стал популярен среди разработчиков торговых платформ (недавно тут какая-то контора писала тоже про open source проект, + ещё платформа IT-Invest). И почему например не Java. По быстродействию точно не уступает c#, либо Cython (Python + C).
85 Комментариев
  • дохтор
    12 февраля 2015, 14:05
    Прагматичный вопрос: а зачем?
    • Ilya-S
      12 февраля 2015, 14:08
      vovam, наверное, чтобы было))
    • Sergio Fedosoni
      12 февраля 2015, 14:08
      vovam, во-во, тем более «на общественных началах» — самое дорогое — это бесплатное
  • nfc
    12 февраля 2015, 14:07
    чем stocksharp opensource не нравится? (http://smart-lab.ru/company/stocksharp/blog/236117.php)
  • xxx
    12 февраля 2015, 14:09
    да да даёшь краудфандинг!
  • jk555
    12 февраля 2015, 14:09
    а не забацать ли нам собственную биржу смарт-лаба сразу?
    • дохтор
      12 февраля 2015, 14:17
      liquid_sun, занятие не из благодарных. Путь от начала, до первых нормальных (конкурентных) релизов, в компании 2-4х программистов — годы.
      Если есть потенция и рвение, рекомендую сосредоточится на какой-нибудь plugin-нише. В общем взять кусочек от всего ландшафта и попытаться его вскопать.
      Не знаю. Какую-нибудь рисовалку легковесную к квику или еще что то типа того. Тогда шансы подрастут из зоны «анриал» в область «наверно возможно».
    • дохтор
      12 февраля 2015, 14:24
      liquid_sun,… ну и конечно не питон. Питон это скорее язык прототипирования, анализа данных, быстрых набросков, скриптов, верхних модулей, web, в крайнем случае — легких фреймворков (см. quantopian). Но ядра на нём всё же не пишут.
      C# пока всё же не кросс-платформенный, хотя всё ближе после раскрытия исходников (моно сыроват).
      Для вашей гипотетической задумки — Java и C++ остаются.
      Но это утопия...
        • Данила
          12 февраля 2015, 17:11
          liquid_sun, вы хотя бы примерно представляете сколько человеко-часов требуется чтоб получился продукт которым хоть как то можно пользоваться? Причем качество продукта также зависит от степени профессионализма тех разработчиков, которые будут составлять эти самые «человеко-часы»
  • Марат Казакбаев
    12 февраля 2015, 14:13
    Это очень дорого
  • (Антон) dasistthomas
    12 февраля 2015, 14:26
    вы забыли упомянуть о собственной пропкомпании. с этогт и начните.

    а терминал есть хороший — метатрейдер 4 называется
  • Alexandr Mo
    12 февраля 2015, 14:38
    Как кодер говорю, действительно глупо и не нужно.
    Сложно и долго.
    очень дельный совет сделать надстройки\модули, большинство нормальных терминалов это позволяют сделать\использовать.
    + Данная разработка введет в курс писанины под торговлю, там и сами поймете.
    а разрабатывать примитивный терминал, ни кому не надо.
    С# он да наравне прыгает с джавой, то тот прыгает выше, то этот)
    питон для таких целей вообще не рассматривать)
    • Machez_fewtasks.ru
      12 февраля 2015, 14:55
      Alexandr Mo, на терминал времени уйдет столько, что на трейдинг и индикаторы не останится. Кодить терминал, Imho, задача сложная и неэффективная.
  • Том Сойер
    12 февраля 2015, 14:41
    Никакого C++! Очень вольный язык, в котором легко наделать тучу не очевидных ошибок. Ещё не хватало потерять бабосики мз-за какого-нибудь дурацкого бага. Либо C#, либо Java. Тяготею более к первому
      • SergeyEgorov
        12 февраля 2015, 14:56
        liquid_sun, Вы правда полагаете что если напишите на C++ оконное приложение для Windows, то потом сможете без особых усилий сделать из него сборку под Линукс?
    • SergeyEgorov
      12 февраля 2015, 14:55
      Том Сойер, Первый раз слышу что C++ «вольный язык». С++ совершенно себе строго типизированный язык. Компилятор ни в какую не даст вам присвоить целочисленной переменной строковое значение, если вы будете явно использовать таковые. А чтобы не было очевидных ошибок давно уже придумано TDD и как минимум модульные тесты.
      • poseydon
        12 февраля 2015, 15:13
        SergeyEgorov, речь скорее про память.
        • SergeyEgorov
          12 февраля 2015, 15:41
          poseydon, Ну если уж записался в программисты то неплохо бы понять как все это безобразие в памяти происходит. :-) На C# же тоже можно так написать что сборщик мусора захлебнется.
      • Том Сойер
        12 февраля 2015, 15:40
        SergeyEgorov, во многих учебниках по C# и Java есть оговорки в духе «а вот в C++ эта небезопасная конструкция работает». И таких «а вот в C++» воз и маленькая тележка
          • poseydon
            12 февраля 2015, 16:26
            liquid_sun, я знаю.
    • Machez_fewtasks.ru
      12 февраля 2015, 14:50
      liquid_sun, а какая платформа нужна? Тестить можно в большом кол-ве софта — хоть в Метатрейдере, только решить что-то в Метатрейдере это хммм… dll в Метатрейдер и готово.
    • Quant Developer
      12 февраля 2015, 14:58
      liquid_sun, Omni Pro
  • searcher769
    12 февраля 2015, 14:56
    студент, иди курсач пиши
  • Просто Константин
    12 февраля 2015, 14:56
    Простите, наверное я вас огорчу, но могу уверить вас в том, что ваша идея, заранее обречена на провал.
    Не хочу показаться невежественным, но видимо у вас нет опыта в этой сфере. В свою очередь я имею обширный опыт. Вот немного конкретики:
    У вас нет идеи, что конкретно вы собираетесь, реализовать.
    Такой подход — студенческий. Вы хотите что-то сделать но не знаете что, а уже выбираете платформы, среду разработки и.т.д.
    Когда у вас будет сформированно «Техническое задание», в котором будут перечислены поддерживаемые платформы, нагрузка, интеграция с площадками и/или готовыми системами — вот тогда круг выбора сократится или вообще останется только один вариант. Возможно вам придется разрабатывать комбинированную архитектуру перенося часть функционала в облако. В любом случае не с этого начинают.

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

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

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

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

    — на жабе 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

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

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

    вообще не надо делать то, что уже есть. если только нет желания сделать что-то лучше и готовности потратить на это лет 5 жизни и кучу времени и сил с неизвестным результатом.
      • Machez_fewtasks.ru
        12 февраля 2015, 15:26
        liquid_sun, есть FIX протокол, есть API разных брокеров, получать можно хоть в Паскаль или Бэйсик v. 6.0/
      • П М
        12 февраля 2015, 15:32
        liquid_sun, как в анекдоте, съисть-то он их съисть, да кто ж ему их дасть?
        котировки через JMS не слышал. да и не заморачивался.
        могу пропиарить свою разработку: «On-Line получение данных из Quik в Java и не только» — smart-lab.ru/blog/216370.php
  • StockChart.ru
    12 февраля 2015, 15:18
    так есть уже
    ruticker.com
  • Machez_fewtasks.ru
    12 февраля 2015, 15:23
    All, Ну так чего, сделаем группу? :-)
      • Machez_fewtasks.ru
        12 февраля 2015, 15:28
        liquid_sun, специализированно учится плюсам, imho, не надо, надо проблеммно ориентированно учится, есть солвер такого-то уравнения берешь и подаешь котировки в C++ и учишь C++ только в той части которая относится к задаче. Программирование «необъятно», даже если рассматривать только C++ Все imho.
          • Machez_fewtasks.ru
            12 февраля 2015, 15:59
            liquid_sun, еще интересный платный компилятор, называется PGI compiler, который при компиляции автоматически распарралелривает код, и делает выполнение кода в GPU, стоит 200 баксов с небольшим, поддерживает он как обычно C++ и Fortrun… C# скорее всего не поддерживает, и наверное, врятле будет поддерживать. GPU интересен не для HFT, а что-бы считалось не час или два, а несколько минут или секунд.
  • Rookie
    12 февраля 2015, 17:03
    Торговую платформу — не знаю надо ли? Там очень много надо писать.

    Для себя потихоньку пишу платформу для написания роботов (пока на начальном этапе).
  • Александр
    12 февраля 2015, 19:09
    C#, Java — надо переписывать сборщик мусора и менеджер памяти. Иначе при больших нагрузках будут реальные тормоза. Если не хочется этим заниматься, то получается C++ и Object Pascal. Если не нужна большая скорость, то можно использовать Pyton. Сам пишу на Delphi. Программу для анализа тиков написал где-то за полгода активной работы.
  • StockChart.ru
    12 февраля 2015, 19:21
    хорошая основа для онлайн платформы:

    ruticker.com

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн