Блог им. Svips

Дело было вечером, делать было нечего. Или торгуем из под Linux

    • 14 октября 2016, 16:51
    • |
    • Svips
  • Еще
dirextrade
Всем привет.

Рынок сейчас скучный для нас. Ручная торговля стала  настолько медленной, что в голову стали лесть всякие дурные мысли )))
Если вы помните, то с начала года мы запустили проект по пересадки наших роботов на ARM процессоры и работу их под операционной системой Linux. Эта миссия завершилась успешно.

И вот, сидя очередной день и смотря на то, как РТС пилит в коридоре 500пп мы стали мечтать и вспоминать как хотелось бы изначально торговать из под Linux. Ну гики мы, что поделать ))) Помнится, как многие юзвери на каждом форуме брокера задают один и тот же вопрос. Есть ли терминал под Linux? Да и шеф тут недавно озадачился тем, что оси наши winXP как бы уже устарели. А пересаживаться на десятку или что то другое из мира виндовс уже ну совсем не хочется...

Прикинув палец к носу, и поняв, что 60% для осуществления этой мечты у нас уже готово, стали думать. Считать. Сравнивать. Оказалось, что в офисе всего две машины под виндой. Это непосредственно сервер рискменеджера с квиком. И одна машина с приводом на которой совершаются сделки руками. Хм…

Рискменеджер это собственно связка квик + программа на дотнете.
Торговый терминал это связка квик + привод на дотнете.

Как то не шибко все… Но пересесть на Linux уже захотелось принципиально. Конечно, можно запустить квик под Wine и радоваться жизни. И это была первая идея. И даже опробована на ноутбуке. Все работает отлично, и это радует. Но дело не в квике, а в программе рискменеджера и привода.

Что делать? Все запустить под вайном? Слишком просто и не по гиковски )) Решили так:
  — Оставляем Квик под вайном.
  — Правим на питоне сервер который сейчас готовый для роботов, что бы мог работать и с приводом и с чартом.
  — Пишем Lua скрипт TCP клиент к серверу, который будет давать и получать все нужные биржевые данные и размещать заявки
  — Пишем консольный привод на питоне. Да да, именно консольный ) что бы по полной жести. Что бы можно было по ssh залезть на сервер с мобилки и торговать без всяких там андроидквиков.

Ну и конечно это не было бы полным *****, если бы мы не попытались запустить это все на малинке! Так и сделаем. Квик на малинке под вайном и сервер на питоне! Консольный привод на рабочей машине под Linux. Ибо 4 моника надо )) а к малинке напряхно их цеплять.

Цель — К концу года 100% осей в офисе Linux.

Если интересно, что получится, ставьте плюсы, будем постить ход дел )
Всем профитов!
★19
81 комментарий
слово дотнет прозвучало. имелось ввиду шарп? или новое направление шарпа для линуха?
avatar
Андрей К, Да шарп. Все написано было еще в 2011 году.
Новое направление дотнет коре смотрели. Даже ставили студию под линухой новую. Потыкали. Но не стали углубляться. Так как цель как раз уйти от продуктов фирмы, которая так яро борется за монополию и закрытый код. Да и вообще уже надоели эти мелкомягкие ( Гибкости с ними мало. Если уж уходить на Linux то полный натив или интерпретаторы. Так как натив долго писать и отлаживать. Решили взять второе. Все па питоне. Да и написано на нем уже достаточно под наши нужды. И править удобно ) Был случай, что обнаружилась ошибка в одном роботе. Так я прямо из дома с мобилки по ssh залез, открыл в редакторе код, поправил, сохранил и перезапустил робота. Красота. Об этом можно целую отдельную историю написать.
avatar
Svips, на коре теперь тоже открыто все =)) тоже можно по ssh за коннектиться и поменять. gui у меня нет. Но если открыть список запущенных процессов и сверить ресурсы процессов шарпа против ресурсов си, это просто провал =))
зато всякие рюшечки фреймворков доступны =). 
avatar
Андрей К, Ну это да… За рюшечками мы как таковыми не гонимся. Наобород фанатеем от консоли )) Сегодня закончил наброски привода. Заглядение )
Вобщем копаем в сторону простоты. Код питона можно запускать почти на всем, видна, мак, линукс, арм процы… это сейчас вжно. Так как мы плотно подсели на малики. Очень зачетные девайсы. Боюсь дот нет для них тяжеловат, если вообще взлетит.
avatar
авантюристы. в хорошем смысле )
avatar
kotmatroskin, Чего не сделаешь от скуки ;)
avatar
Как linux-админ с 16-тилетным стажем — плюсану!
avatar
Lev, + + + )
avatar
абалдеть — трейдеры под линуксом! Они существуют))
AlexStringer, Еще пока нет )) Пока только роботы. Но этим никого не удивишь. Но надеюсь через месяц, другой к НГ и мы пересядем и вот тогда… )) Скриншотами поделимся, может видео запишем. А может и еще чего )))
avatar
Svips, Переодически торгую на втором компе с линуха) Правда использую не квик) В свое время так и не получилось его прикрутить в вайне, скок не старался.
AlexStringer, Странно, у нас с первого раза взлетел. Аж сами удивились. А что за софт на котором торгуете из под линухи? Мы сколько не искали, ничего не нашли внятного — живого.
avatar
Svips, изискальп использую вместе со смартиксом, торговым терминалом. Под вайном конечно. Квик пытался давно прикрутить, года четыре назад, демку для ознакомления с самим терминалом. Не помню уже в чем была проблема. Знаю еще что есть форексовский терминал под названием РУМУС, писаный спецом под линь. От какой то русской кухни.
AlexStringer, Да, про Румус слышали. Если не ошибаюсь, то он благополучно и загнулся… А возможно жаль. По поводу смартХ, ясненько. Мы, кстати, именно из-за смартТрейда и смарткома, так долго и не переходили на линуху. Но как только брокер сказал что сервера смартТрейда и смарткома2 глушит мы уже и решились окончательно. Сначала за пару недель полностью пересели на Квик. А теперь и на линуху. Ибо переходить на смартХ вообще не хотелось, совсем он не для нас (((( Да и сервера у них одно падают, одно слово — матрица )))
avatar
Svips, может быть и загнулся, не следил) честно говоря, в те времена накатывалось на линь все маломальски связанное с торговлей. На тему заработает не заработает. Ради эксперемента)) МТ какой то вроде был еще под линь кстати.
AlexStringer, Хм, про МТ только под вайном слышали. Интересно.
avatar
AlexStringer, МТ5 вообще никак не хочет под Линукс идти. Из за ssh и сертификатов. Буду благодарен, если эту проблему кто решил.
avatar
Андрей К, http://smart-lab.ru/blog/241756.php

Единственное что худо бедное нашел на тему МТ5 и линукс. Можт хоть как то поможет)
AlexStringer, у меня quik в wine сразу  заработал, но надо правильно ему кодировку передать (там внутри какой-то говнокод, кусками на юникоде, кусками на 1251). Ну и очень сильно жрёт проц, все 100%.
К счастью нет нужды больше использовать quik
avatar
Lev, да я уже понял, что дело было в моем недостатке желания) 
Lev, Да, кодировку решили скриптом запуска *.sh который сразу ему прописывает кодировку. А по поводу 100% проца. Это да, почему то иногда, не стабильно возспроизводится, один из процессов winros уходит в разнос и утягивает за собой одно ядро. Решается тупым убийством этого процесса. На работу квика никак не сказывается. Коньки на рабочий стол с загрузкой ЦП и как только видим 100% ядра, то грохаем его и все.
avatar
Svips, дада, вы всё точно описали, у меня аналогичная картина
avatar
Lev, А на что ушли с квика? Если не секрет.
avatar
Svips, да какие там секреты! Я торгую в SaxoBank, использую веб-терминал, так что нативно под linux
avatar
Lev, А, ясно. Да, тоже решение.
avatar
AlexStringer, даёшь трейдинг из консоли Free BSD!
avatar
kotmatroskin, если там есть питон, то без вопросов )

avatar
kotmatroskin, Только Юникс — Только Хардкор!!!
Звучит оно хорошо… только вот питон, скрипты, связки, как то все это не тру… :)
avatar
Denis, Да, от части так оно и есть. Но у нас временем проверено на роботах. Вроде стабильно. Благо в квике появился Lua, он очень выручил.
avatar
что за птичий язык? Ничего не понятно
avatar
Goreloff, Вы про наш русский? Сорри )
avatar
tradernet.ru и торгуй с чего угодно)
avatar
Алексей Курт, Спасибо, но вебплатформы не рассматриваем. TradingView предлагали уже ) Они круче )
avatar
 i78.fastpic.ru/big/2016/1014/7e/7e1ba50821291ed40fe7e6061143257e.png

рабочий стол с ярлыками приводов. год 2013 вроде.
Ну я так понимаю, вам просто удобнее под Линуксом. Но я слабо представляю, зачем прочим роботописателям линукс. Неужели прога на плюсах под Линуксом даст выигрыш хотя бы  100 микросекунд по сравнению с виндой? что-то сомневаюсь
avatar
broker25, Да, дело именно в удобстве. Выигрыша никакого нет, уже темболее в микросекундах ))) Ну и плюс более защищена сама ось. В остальном кому как.
avatar
broker25, смотря какая архитектура, если на машине только роботы крутятся, то можно :) сервер замутить на распбери пи запустить %)
avatar
Denis, Уже работает ;)
avatar
broker25, общаюсь с компьютерами со времен доса. Видел много осей. естессно, как и любой ламер на линь пришел с винды. С хрюши. лет 10 проработал в линуксе. После чего пересев однажды на семерку понял, что я не могу в ней нормально разобраться. И по сути познавал все заново.
AlexStringer, Такая же проблема. Поэтому и сидим на ХП, ни семерка и уж тем более 8 или 10 винда ну вообще никак не идет нам (
avatar
Svips, ну семерку я поборол, худо-бедно. пришлось, некрософт заставил)) 

8ку как увидел так плохо стало) всем знакомым устанавливаю 7ку где эт возможно. Где нет, там хозяев посылаю лесом ибо ничто не заставит меня прикоснуться к этому исчадию ада) 

10ку даж не видел, и не хочу)))

Svips, семерка нормальная система ничем не хуже xp.
avatar
Анатолий И., Не спорю. Просто привыкнуть надо.
avatar

Анатолий И. Хоть и линуксоид, но соглашусь)

10ка винды меня тут расстроила внезапным перезагрузом.
оказывается он теперь принудительный при обновлениях и просто так его не отключить.
а когда я стал спрашивать об этом на форуме винды и сказал что у меня винда стоит на компьютере куда я подключаюсь только удалённо
мне заявили что я пират, потому что лицензионное соглашение для 10ки содержит строки
1. безусловное согласие пользователя на установку любых обновлений windows
2. безусловный запрет пользователю на использование windows только из под удалённых подключений (remote desktop)
так что windows 10, даже Pro — теперь это просто для ноутбуков и всё. причём я бы сказал что для корпоративных, которые веерами обновления устанавливают.

тоже задумался о Wine, Docker и прочих штуках.
а TCP сервер под Lua я уже сделал. и даже переписал его с Lua на С++ чтоб избавиться от накладных расходов интерпретатора.
заявки правда пока отправляю по старинке, через trans2quik.dll

но это не главное сейчас.

 

из всего этого перехода концептуально интересно
а) будет ли квик хоть чуточку быстрее или всё-таки ещё медленнее
б) как нормально работать с линуксом удалённо из под винды, а ля RDP, хотя кажется я так делал, через X-Server, но тыщу лет назад
в) чёрная тема квика под Wine нифига не работает. а без неё грустно

avatar

ПBМ, да, подключение к Linux чтобы была нормальная граф. оболочка — это основной гемор сейчас.

 

Если найдете толковый хауту — скиньте линк плиз.

avatar
ПBМ, playonlinux можно вместо вайна еще попробовать =)
RDP там много разных приложений, можно на свой вкус выбрать.
avatar
ПBМ, +100500
avatar
ПBМ, б) как нормально работать с линуксом удалённо из под винды, а ля RDP, хотя кажется я так делал, через X-Server, но тыщу лет назад

на линухе поднимаете vnc сервер, на винде ставите vnc клиент. И впуть.
avatar
Svips, VNC тормозит ужасно. Увы, не вариант.
avatar
ch5oh, Есть такое. Видно потому что, все картинками шлет. Мы поэтому и пишем отдельно привод и чарт, что бы могли сами по TCP забирать все что нужно. ЧТо бы не нужно было получать доступ к рабочему столу линукс.
avatar
ch5oh, Как вариант может еще попробовать линуху как терминальный сервер… Но хз, это уже в полубреде пишу. Наверное не пойдет.
avatar
ПBМ, в) чёрная тема квика под Wine нифига не работает. а без неё грустно

нам с этим проще. Квик используем непосредственно как датафид. Чарт свой написанный для анализа, привод свой для ввода заявок и отслеживания позиций. Квик стоит на рискменеджер сервере. На рабочей машине даже видеть его небудем.
avatar
круто чё!  молодцы!
Алексей Никитин, Спасибо. )
avatar
Хотел сперва плюс поставить, но рука дрогнула когда дочитал до конца.
avatar

Если у Вас всего две утилиты под дотнетом, Вы можете переписать интерфейс взаимодействия с Квиком на TCP и потом попробовать запустить их под Mono.

 

По моему опыту Mono очень прилично работает даже в таких извращенных сценариях, про какие я бы ни в жизнь не подумал.

Кроме WPF, конечно.

avatar
ch5oh, Да, и такие мысли были. Но желание переписывать под моно отвалилось когда узнали, что моно вроде как еще не поддерживает GDI. А также, что наши прилаги отлично работают и под вайном, как оказалось. Поэтому чарт мы оставим дотнетовский под вайном. А привод перепишем, чтобы можно было им пользоваться по ssh. Ну и риск перепишем тоже под консоль. Ибо нефиг ему ))
avatar
а мы с сыном уже сделали ботов (гоняю пока на демо, ищу фокусы) под линуксом (моно, си шарп) в Алоре. На Атентисе.
Разумеется консольных!!! (не жрут НИЧЕГО!!!)
ЮЮЮЮха!!!
avatar
baron_samedi, Зачет! )
avatar
:), Зачет! ))))
avatar
 Линуксоида встретить в России — возможно. Но встретить трейдера-линуксоида, это как слона на Красной площади в Москве))

Ребят, вы молодцы, успехов вам и не сдаваться!   
AlexStringer, Спасибо! Будем стараться. Кто знает, возможно народ подтянется и на нашем опыте и движение какое сформируется. Да брокеры наконец возьмутся за нормальный нативный терминал под линукс. Кстати, мы не однократно писали некоторым, которые свое апи предоставляют, что мы готовы взяться за натив под линукс. Но в ответ тишина ((
avatar
Svips, А если попробовать выйти на создателей того же Румуса?) И на его основе, изобразить чтото стоящее. Для чего то же они его написали)
На самом деле понятно почему мало подобных людей как вы. Уж больно многие считают, что есть только одна операционная система) И этот самокат им не нужен.
Шрифты на линуксе как были говенного качества так и остались.
Багатенький Буратина, Мы это решаем просто. Просто берем папку fonts из winXP и копируем ее в папку юзверя линукса .fonts и вуаля… Так как наш чарт юзает шрифты винды, и мы тоже к ним привыкли, то таким простым способом для нас визуально ничего не изменилось.
avatar
Если прям по серьезному, подключитесь по нативным интерфейсам плаза, астс. под линукс есть сейчас все библиотеки. от винды даже духа в виде вайна не останется. :)
avatar
Изя Квикович, Да, смотрели в эту сторону еще в 2014 году, когда серьезно встал вопрос об использовании квика. Но тут как это часто бывает, перевесила финансовая составляющая вопроса. Для нашей целей скоростя, которые дает плаза, не важны. Роботы и уже темболее ручная торговля справляется нормально и с квиком. А платить от 4000 до 7000р в месяц только за полный натив на линуксе, ну как то не хочется. Возможно вбудущем, когда квик сделает очередное обновление, после чего поломается все… Так и поступим. Это действительно хорошее, профессиональное решение.
avatar
Svips, вдохновился полным переездом на Linux в контексте трейдинга: просто респект!
Сам планировал заняться похожей задачей, только хотел забирать данные из Quik'а через библиотечку на C, которая бы данные передавала моему серверу черерз shared memory.
Поэтому стало интересно как клиентом на QLua, который работает через http, получает заявки от сервера? Клиент периодически опрашивает сервер на наличие торговых комманд или используется COMET?
avatar
Cheshire Cat, Ответил ниже )
avatar
Клиент на луа шлет кучу данных серверу, начиная с ленты и заканчивая стаканом. В этом плане, получается достаточно плотно пингует сервер. После кажой транзакции смотрит что ему ответил сервер. Если ничего то переходит к следующей транзакции. Если что-то есть, то обрабатывает. На данный момент так. Дальше посмотрим, возможно что то поменяем, если не будет устраивать. Клинет не совсем через http работает. Даже скорее совсем  не через http. Сервер на питоне, клиент налуа поднимает свой сокет и конектится к серверу на питоне прямо из под квика.
avatar
Svips, интересное решение — вместо периодических запросов к серверу получать команды в ответ на постоянно передаваемые данные ;-) Плюсую! Да, http тут не нужен, соглашусь.
avatar
Торговля — консоль CentOS, C++, onload — все чтобы выжать минимум latency и обезопасить себя от фризов.
Разработка в Visual Studio.
avatar
ELab, а как данные передаются из события onLoad к «серверу», который выполняет вычисления? Тоже через сетевой интерфейс?
avatar
Cheshire Cat, onload это команда для карт Solarflare, которая загружает Solarflare карту и позволяет максимально снизить задержки
avatar
ELab, Робот или ручная торговля? Если ручная, и не секрет «графического интерфейса», то рады были бы взглянуть на скриншот. Свои тоже выложим в следующей статье.

И я так понимаю, пишете в студии а потом просто компилите отлаженный код под линухой?
avatar
Svips, да. графического интерфейса на сервере нет — только командная строка. кнчно, не ручная — какой смысл так заморачиваться?
avatar
Я думал цель у трейдера — прибыль а не подрочить в Линукс и кончить в малинку…
avatar

теги блога Svips

....все тэги



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