Друзья вопрос в чем, хотел что бы после подписки списка инструментов сразу подписаться на текущие данные: предложение, спрос, последняя цена, объем и т.д.
Скорость выполнения этой примитивной операции меня убила. Если сделать по всем инструментом сразу, скрипт мрет вовсе!
Да и что это за работа если визуально вижу как постепенно это всё делается, а не мгновенно как в том же КВИКЕ который на С++.
С чем это связано с медленностью языка C#?
Причем готовый терминал Stock Sharp такой же медленный и не поворотливый.
Скажите, в чем дело может дело в S#, и написав на С# полностью своё будет быстра?
Или на этом языке можно лишь писать под какой та один инструмент ну максимум десяток. Иначе ваш софт просто умрет!
Что хотел получить. Как у КВИКА чтоб, при неведении на инструмент в таблице, перестраивался график, стакан, таблица обезличенных сделок!
У каждого инструмента своя вкладка, удобно. И бот хотел писать чтоб с утра пробегал историю и уходил в онлайн торговлю!
Но чувствую на такие задачи C# вообще не способен. Разочарован пипец. А может у меня подход кривожопый, но тогда что так тупит терминал профессионалов STOCK SHARP?
Там на запуске, когда инициализируется и получаются первые данные, такая гора данных приходит по началу, что кажется, что приложение умерло.
Мы поэтому отказались от получения данных показателей (ои, объемы, спрос и тд) пару лет назад.
Борис Литвинов, квик качает максимум 10 тысяч баров. Они скорее всего вытягивают тики (кстати, зависит от коннектора еще).
Но язык программирования совершенно точно не при чем: неэффективный алгоритм может убить любое железо.
Кучу таблиц синхронизировать — это не котомки шить…
Для робота чем меньше трафик запрашивается, тем лучше. Соединение с брокером идет по одному каналу. Если вы его забиваете ценами, значит будут тормозить ваши заявки.
Пишу на C# много лет. Есть свои тонкости и хитрости при создании. Создании быстрых программ на C# ничуть не легче C++. Но с С++ вы далеко не уедете. Хорошие платформы стоят сотни тысяч долларов месяц. Это недоступно для персональных инвестиций. Поэтому вариант только один на персональном рынке — C#.
Борис Литвинов, перестаньте пожалуйста хаять язык общего назначения C#. Все тормоза прячутся в Вашей библиотеке. Если она по недоразумению называется S# — это не делает ее частью языка.
Если Вам лень переключить раскладку клавы — пишите "стокшарп" тогда. Иначе люди Вас читают и думают совсем про другое.
Планируете снижать цены в связи с выходом DESIGNER?
Sergey, 1.2 на поддержке. Планов закрывать его нет. Там исправляются баги и поддерживаются коннекторы. Если у Вас что-то конкретное — пишите в саппорт. Если это баг — исправим.
Появился вариант лицензии ТСЛаб лайт, он дешевле. Связано ли это с появлением загадочного «дизайнера»? Вряд ли.
PS Анонс TSLab 2.0 Lite
Прошу принять объективно, но красная цена вашему TS LAB в год 5-7 т.р. Конкуренция вполне осязаема. С одной стороны развиваются терминалы QUIK и MT. С другой появляются бесплатные кубики.
Ваше желание увеличивать доход и совершенствовать систему понятна. Но так вы можете потерять весь бизнес. Удержите хотя бы часть клиентов, сделав чек более лояльнее.
Sergey, чтобы не копипастить, отсылаю Вас к достаточно подробному обсуждению этого вопроса:
Дорогой станок
Если Вы хотите что-то добавить содержательное — пишите там в комментах, я увижу и постараюсь ответить.
Вы должны бегать за каждый клиентом и просить хотя бы оставить отзыв. Платформ становится больше из года в год. Вам уже тесно, и вы делите часть клиентуры уже с квотами.
Sergey, возьмем среднее от вашей оценки: 6 тыр/год. Делим на 250 торговых дня. 24 рубля/торговый день. Вы серьезно? Вы собираетесь сколько зарабатывать алготорговлей и опционами? 100 рублей в день?
Если Вы инвестор и Вам нужно 10 сделок в год — Вам, наверное, достаточно SmartX или торгового веб-интерфейса. Тогда действительно TSLab Вам лично не подходит.
Если Вы алготрейдер, балансируете на грани нуля и 4 тырмес для Вас проблема — пройдите по ссылке Выше, осознайте предлагаемые готовые торговые роботы для работы с опционами. При счете 100 тыр уже можно начать осторожно отщипывать по несколько тысяч в месяц пока нет трендов. Когда начнутся тренды — начнет зарабатывать Ваш основной алгопортфель, а опционы, вероятно, нужно будет отключить.
Или почитайте посты Павла Крапчитова — он показывает работу торговых систем как раз для ТСЛаб и даже рассылает их исходники (бесплатно, насколько мне известно).
Пишите новые стратегии, тестируйте на истории (в оффлайне ТСЛаб бесплатный), собирайте рабочий портфель роботов — все в Ваших руках.
ПС Может, Вы управляете счетом в 100 млн, а на стоимость ПО ворчите по старой советской привычке, когда 20 версий винды можно было купить на одном диске?
Я вот за каждую версию Windows 7 Ultimate по 10 тыр в свое время отдал. Но что поделаешь? Инвестиция в трейдинг.
Дело не в том, сколько можно заплатить, а сколько будут платить. И будут ли вообще с учетом появления все большей конкуренции. Постарайтесь понять мою мысль. Я плохо доношу её, не оратор.
Производительность C# довольно хорошая. Что вы не так делаете — вам самому нужно разбираться.
У меня вот ничего не тормозит. Учите язык лучше.
Александр, конечно, только осталось «привязать» С++ к терминалу ))
В квике такая привязка есть, потому что там есть LUA, который, в свою очередь, изначально разрабатывался с возможностью работать с библиотеками .dll, написанными на C++
Какие терминалы (помимо квика) вы знаете с похожими возможностями работы с С++?
Для себя использую Delphi и пишу плагинную систему, на которой можно писать плагины независимо от языка. Важно, чтобы язык поддерживал microsoft interface.
Александр, вы можете подключить ваши плагины к, скажем, NinjaTrader?
Есть нативное api у trasaq, smart com (или что у них теперь), alor, plaza2 и т. д.
Когда я работал в индустрии, то приходилось писать на многих языках. Делал и FAST на C++. И формочки рисовал на WINFORMS.
Нет универсального языка. Сейчас я с битками работаю в основном. Там NODEJS проще для подключения.
C# удобен для фондового рынка. Много инструментов его поддерживают, сделанных для данного рынка.
Александр, сборщик мусора в сишарп очень грамотный. Вы создаете мелкие объекты и кладете их в коллекцию. При этом сборщику не нужно проверять каждую свечу в коллекции пока у него не появились подозрения, что сам список уже никому не нужен.
Грубо говоря, у сборщика не линейный список объектов для анализа по которому он ходит каждый раз, а структурированные данные типа дерева.
Чтобы сборщик мусора начал мешать приложению, это надо как-то совсем неграмотно написать алгоритм. По приходу каждого тика пересоздавать миллион объектов и сразу их выбрасывать к примеру или что-то в таком духе.
И как бы ничего особенного не было. Сколько бы умным сборщик не был, но он только вредит в этом деле. Кстати слушал лекцию, как одна компания писала прогу на Java. Так они отказались от стандартного сборщика и юзали что-то свое.
Сами языки мало несут, скажем прямо, революционные вещи. Есть ряд плюсов и минусов у каждого. Удобно, когда единый язык для разных программ.
стакан (предложение спрос)
таблица текущих данных (предложение спрос, цена последней сделки)
таблица обезличенных сделок (цена последней сделки, направление)
Маркет Дата (Цена последней сделки = CLOSE)
Там все настроено на быстродействие и максимально быстрый доступ к глубокому рыночному окружению из роботов.
Посмотрите вот эти темы, пожалуйста:
— Cравниваем MQL5 и QLUA — почему роботы на MQL5 до 28 раз быстрее?
— Битва за скорость: QLUA vs MQL5 — почему MQL5 быстрее от 50 до 600 раз?
Вообще как-то странно сравнивать MetaTrader 5 с Транзаком, который остановил развитие 10 лет назад.
Для оценки функционала и развития можно посмотреть список релизов: https://www.metatrader5.com/ru/releasenotes
Пытаться прятать засады под неописанным «коннектор HFT» не надо.
Например у меня решена задача потоков на lua
стакан (предложение спрос)
таблица текущих данных (предложение спрос, цена последней сделки)
таблица обезличенных сделок (цена последней сделки, направление)
Маркет Дата — свечи (Цена последней сделки = CLOSE)
Программа выбирает самый быстрый вариант в текущий момент и использует! То же самое нужно сделать с потоками двух коннекторов! Только в этом случае можно будет решать что быстрее, так же с транзакциями! Голословные утверждения, это не аргумент!
— Cравниваем MQL5 и QLUA — почему роботы на MQL5 до 28 раз быстрее?
— Битва за скорость: QLUA vs MQL5 — почему MQL5 быстрее от 50 до 600 раз?
Это чтобы не приходилось говорить о скорости с QLUA или Квиком.
MetaQuotes Software, сравните MQL5 с CGate. Квик — ужасный тормоз. Это известно и не оспаривается. Это дешевое решение, которое в свое время позволило тысячам людей купить свои первые акции. Честь им и хвала за это. Но реальность надо признавать такой, какая она есть.
Вообще, тестирование производительности — это такое болото, где можно легко утонуть. Написать на разные языках полностью алгоритмически-эквивалентные тесты невероятно сложно.
А хуже всего, что в одном из этих языков код может получиться при этом неоптимальным. В этой ситуации его проигрыш ничего не будет говорить оо общей эффективности.
А еще надо учитывать сложность написания кода и время разработки: быстрее всего писать на ассемблере, но вот стоимость разработки станет астрономической.
Мы свою задачу выполнили очень хорошо и дали как раз массовую алгоплатформу трейдерам. Где не нужны костыли и где скорость аналитики и исполнения отличные.
А те, кто пилит коннекторы, остаются не у дел. Так как узок круг их интересов и целевая аудитория не желает это использовать.
Чтобы обоснованно критиковать MetaTrader 5, надо сначала в достаточной степени ознакомиться с https://www.mql5.com
Ну реально, прочтите ссылки и сходите посмотреть, что такое MQL5. Ведь живете в дремучем царстве и не хотите открыть глаза.
В первом случае, не быстрее при использовании lua api.
Во втором случае, нагрузка на сервера и ряд других факторов не учтен.
В реальности все с точностью до наоборот. Кто из массовых платформ сможет победить MetaTrader 5 в скорости операций, алготрейдинге и в функционале?
Второй вариант (менее предпочтительный) — подключение к самому терминалу по TCP/IP. Так некоторые платформы делают. IB к примеру.
В крайнем случае (самый уродский, но самый для Вас дешевый) можно сделать как в Квик: подгрузить в среду бибилотеку с Lua и допилить торговые функции. Остальное люди сами сделают: луа поддерживает сокеты, поэтому вполне реально организовать клиент-серверное взаимодействие.
Все давно и правильно решено в MetaTrader 5, где не нужны костыли. Берете MQL5 и пишете полноценные и быстрые программы.
По всей видимости, вы понятия не имеете ни об MetaTrader 5, ни об его языке программирования.
MetaQuotes Software, а давайте я Вам в таком же духе отвечу?
"Бросайте Вы заниматься фигней и выдумывать на коленке уродский выкидыш от языка СИ. Людям нужно эффективное API для получения рыночных данных и выставления заявок (для языков платформы .NET, конечно). Все."
Вы понятия не имеете, что такое серьезная торговля в серьезных алгокомандах. Верх Вашего понимания торговли — это подключить один тикер, сделать роботом пятьсот сделок в день и искренне считать свою платформу «крутой».
Вы сначала начните транслировать через МТ опционы с FORTS и чтобы один робот мог полноценно ими всеми торговать одновременно. И тогда уже умничайте что трейдерам надо, а что нет и какая платформа «современная», а какая как была в 90-х так и осталась.
Я чуть со стула не упал когда узнал: если подключаешь к ФОРТС метатрейдер, то теряешь возможность со своего счета торговать опционы любым способом — чушь полная.
Это ведь ваше дело и ваш выбор. Как и самобман при полном незнании существующих решений. Вы не знаете возможностей MetaTrader 5 и транслируете чушь.
За опционы скажите спасибо родной бирже.
Всегда приятно видеть, что разработчики других систем (TSLab в данном случае) имеют ограниченный кругозор и зациклены на подстройке к чужим костылям.
MetaQuotes Software, почему Вы думаете, что я не пробовал Ваш терминал? Потому что Вам так хочется думать?
И при чем тут «родная биржа»? Она дает опционы? Дает. Это уже Ваша проблема, как упихать их в свой терминал.
Даже Эксанте в легкую показывает у себя все опционы по всем инструментам. Значит, как-то разобрались.
А у них терминал написан на Джаве между прочим! А не на «супер-быстром С++».
ПС Никогда не наезжал на Ваш терминал — это личное дело каждого в чем работать. Но Вы мне немного нахамили и я не удержался один раз.
Постоянные ссылки на коннекторы и попытки обойти существующие косяки старых терминалов показывают, что вы дальше этих самых коннекторов не продвинулись.
Прошло время независимых аналитических терминалов с гроздью коннекторов и постоянной подстройкой под разной степени корявости API. Топикстартер как раз об этом и пишет.
Выигрывают цельные платформы, которые полностью избавляют от костылей.
MetaQuotes Software, точно! ТСЛаб — прекрасный пример такой платформы. Поддерживает одновременную торговлю всеми опционами сразу. Или сотней акций внутри одного робота.
Написал алгоритм один раз — а дальше только открывай счета у разных брокеров. Хочешь, IB, хочешь Эксанте, хочешь Дукас — и везде зарабатываешь.
Еще раз говорю: если человек хочет обойти терминал — это мое право. Значит, у меня есть определенные мотивы для этого. Ваше дело — предоставить удобный АПИ для .NET. 3 возможных варианта как это сделать озвучил выше. Делайте. И посмотрите, сколько людей очень быстро начнут использовать именно коннектор, а не париться с написанием кривороботов на Вашем встроенном псевдоСи.
Весь мир использует MetaTrader, а не TSLab. И ваше желание бесплатно получить билет(апи) в построенную нами экосистему похвально.
Но неосуществимо, что и приводит к таким вот выпадам с вашей стороны про кривороботов и псевдоси. Как я и утверждал, вы понятия не имеете о нашей платформе и экосистеме.
MetaQuotes Software, в данном случае про необходимость АПИ я писал от имени частных трейдеров, а не от имени ТСЛаб.
Вы этого не понимаете? Окей. Продвинутые алготрейдеры, которые делают сотни сделок в сутки, к Вам никогда не придут.
ПС Если кому-то из наших Пользователей нужен форекс — есть коннекторы к IB, Эксанте, к Дукасу наконец. ТСЛаб нет нужды вымаливать у Вас какие-то «одолжения».
От имени всех частных алготрейдеров высказал Вам мысль, что в современном мире должен быть прямой АПИ для подключения к торговым серверам. Не хотите признать это? Оставайтесь в 90-х. Это Ваше право.
Засим откланиваюсь.
MetaTrader 4 с 4225 торговыми серверами:
MetaTrader 5 с 282 торговыми серверами:
Вы уверены, что именно вы говорите от имени трейдеров? Или может все-таки я ближе к этой роли?
Вы подключились к пятерке серверов российских брокеров и пытаетесь критиковать и конкурировать с теми, у кого 4 500 серверов?
Я трейдер, торгую на FOREX через LMAX, торгую на фондовом рынке через FINAM, торгую на криптовалютных биржах.
Месяц назад я захотел подключится через вашу систему к брокеру. Не смог. Оказалось, что у всех нормальных систем есть API. А у вас нет. У вас только скрипты к терминале тормозящем. Пришлось подключаться через другие системы.
Не смог попробовать вашу экосистему, потому что вы отказываетесь предоставлять ее трейдерам. Дурость ваша без границ. Зачем вы тогда вообще что-то делаете, если не хотите предоставлять трейдерам торговать через ваши сервера?
Не напрягайтесь.
Вы не на FOREX. Здесь легко можно от вашей неадекватности уйти, например, на QUIK. Или сделать робот с прямым подключением к брокеру, не завися от нестабильных прослоек в виде терминалов.
Неадекватность у вас как раз в том, что вы делаете заявления без должных подтверждений.
MetaQuotes Software, у человека, вероятно, был негативный практический опыт. Скорее всего, было потрачено несколько месяцев на разработку решения, которое в итоге оказалось нестабильным и приводило к техническим сбоям.
Кстати, у Вашего терминала есть версия 64-битная? Планируется? Вроде, не было раньше.
64 битная версия у MetaTrader 5 была и есть всегда. Как и десятки других преимуществ.
Вы проиграли с своей 5-ой, но пока еще не поняли это. Будущее за решениями как у TRADINGVIEW. А вы будете делить клиентуру только с устаревшим QUIK, и не более.
Посмотрите на скриншоты повыше. Это отрезвляет.
P.S.: Если отключить обновление данных в таблицы, работать будет быстро.
Есть альтернативы без терминалов в принципе.
Александр, полагаю, топикстартер хочет сэкономить на стоимости коннектора и переделать ушастый запорожец в болид формулы 1.
=) При всем уважении к идее, быстро работать подключение через Квик (или даже через «именной» брокерский коннектор) никогда не будет, но каждый имеет право проверить это сам.