Блог им. Ho_Chu

у кого-нибудь есть рабочий робот на Lua?

    • 19 ноября 2022, 09:51
    • |
    • Ho_Chu
  • Еще
лучше бы конечно профитный, но можно и с любым алгоритмом, даже на стохастике или скользящих средних, при этом сам алгоритм значения не имеет

суть вопроса в чем?
надо, «чтобы это работало не только на бумаге, но и в продакшене — с лагами, сбоями связи, отвалами брокера и прочим» — так написал один собеседник

т.е. есть у кого-нибудь робот, который мог бы справляться с максимально известным числом приколов, устраиваемых биржей/брокером/оператором связи/лиз_трасс и прочими людьми, задачей которых является сравнительно честный отъем наших с Вами денег?

есть ли те, кто почти доволен своим роботом на Lua?
★3
137 комментариев
Ага, чтоб он включался автоматом вместе с биржей и то не решаемая проблема.
avatar
the Rolling Stones, 

простите тупому крестьянину его дремучесть, но почему нерешаемая?
avatar
нет, таких роботов нет. Всегда нужен пригляд со стороны человека. Робот может проинформировать о нестандартной ситуации и послать уведомление оператору. Как робот разберется с потерей связи? Никак. Поэтому любой нестандарт это проблема оператора, а не робота. А вот отлавливать ситуации это робот может. Готовое решение стоит денег, бесплатно вряд ли найдете.
Счастливый Конец, 
Как робот разберется с потерей связи? 
речь наверное про кратковременную потерю связи. Тут уже потом целый пласт задач, что делать, когда алго заново подключился с потерей котировок.
avatar

Андрей К, 

но это ведь решаемые задачи? если у тебя все сделки сохраняются в файле, то восстановить историю котировок разве сильно сложно? и даже если её не восстанавливать, то разве нельзя просто проверить «пора открываться/закрываться или не пора»?

 

и разве все эти проблемы не решаются установкой/покупкой сервера на бирже

avatar
Ho_Chu, решаемо наверное практически все ) Другой вопрос, обладают ли разрабы и сопутствующие люди всем тем багажом знаний и кейсами ситуаций. А оно знаете как, вроде уже думаешь, что все знаешь, а оно ба-бац и через пару лет еще что то подкидывает. И так всю алго жизнь робота. То есть тут все зависит от опыта пережитого.

Установка сервера в коло (на бирже) решаем многое, но и порождает тоже многое ). Если вы все так же планируете qlua, то возможно целесообразней покупать виртуалку у брока на коло. Это действительно снимает часть инфраструктурных рисков типа электричества, обрывов связи по вине провайдеров и тд. Но обрыв связи по вине сервера брока это не решит. Как то так.

Один вот брок любит в квике, например, резетить поток трейдов и заявок, иногда графиков. Бот должен уметь это переваривать, что вдруг у него заново поток его трейдов с нуля идет.
avatar
Андрей К, 

Вы снова правы и я это понимаю прекрасно
сервер на бирже не нужен под Lua, там другие протоколы и решения необходимы и допустимы

но лезть в ДМА, не пройдя испытание Квиком, я считаю, — верх самонадеянности
avatar
Ho_Chu, имхо, ДМА даже проще, чем в квике. Естественно, речь про сравнимые торговые системы, а не про HFT против скользящих средних.
avatar
Jame Bonds, 

Вы правы, квик — это тормоз, но необходимый на пути развития
если научиться не сливать в квике, то в дма будет лучше


avatar
Счастливый Конец, 

пригляд есс-но нужен, куда ж без него
бесплатного решения никто не просит

интересно, есть ли те, кто почти доволен своим роботом на Lua?
avatar
На Lua — не знаю. На MQL4 — есть.
Василий Федорович, 

на МТ4 не надо, надо на Lua))
avatar
Ho_Chu, зачем ехать на рыбалку на Феррари, если можно дойти пешком?
Василий Федорович, 

простите, не уловил всей глубины Вашей мысли
если у меня есть феррари, то:
1. зачем мне рыбалка, на которую нужно ходить пешком?
2. зачем мне вообще ходить пешком?
avatar
робот это красиво и удобно когда «одним контрактом» торгуешь

задайте себе вопрос, даже при наличии строго формализованного алгоритма (например арбитраж сишка/спот, нефть Moex/ice) готовы ли вы доверить роботу управлять конструкцией, серьезный косяк в которой приведёт к потере всех ваших активов и еще скорее всего загонит вас в банкротство,???

ЭТО ОДНА ИЗ ПРИЧИН ПОЧЕМУ РУКАМИ ПРИХОДИТСЯ МНОГОЕ ДЕЛАТЬ
avatar

Sergio Fedosoni, 

не надо делать так, чтобы приводить к потере активов
разумная просадка баланса или контроль должны быть предусмотрены, есс-но

но вопрос не о том

судя по Вашему посту, у Вас такого робота нет

ЗЫ никто не может совершать несколько сделок подряд руками

avatar
Ho_Chu, контанговая торговля предполагает млн 20 ГО на сишке + млн 60-80 на споте из которых 3/4 заемные (чужие) + плечи в обоих местах
при форсмажоре в виде остановки торгов — риск попадалова на 100 лямов неопределенного зависа 
avatar
Sergio Fedosoni, 

ну риск приостановки торгов «завтра» должен быть учтен в хорошей модели
риск приостановки торгов «через 5 минут» должен быть учтен в хорошей модели
риск остановки торгов из-за подрыва ЯО ни в одной модели не учитывается из-за пренебрежения к последующим событиям


avatar
Ho_Chu, как модель на аномальную бэквордацию вообще можно написать???
avatar
Sergio Fedosoni, 

простите, я не занимался вопросами аномальной бэквордации
от слова «совсем»
если хотите, подумаю над этим вопросом
думаю, что существует модель, которая знает, что делать в такой ситуации… скорее даже уверен в этом

если можете, пришлите минутки и названия инструментов, я посмотрю, можно ли что-то было сделать
если не можете — просто сообщите названия, я скачаю котиры сам

что же касается того «как вообще можно написать?» могу ответить лишь философски — «жизнь намного шире нашего представления о ней» ))
avatar
Sergio Fedosoni, 

напомните параметры характерного спреда для Си-шки и валюты и комиссии брокера и биржи для них
avatar
Ho_Chu,
Риски — это произведение вероятности события на объем денежных средств. X ($)  = P (100%) x V ($).
Вероятность определяется на основе статистики.
У Вас есть статистика по остановке торгов из-за подрыва ЯО?

Василий Федорович, 

есть ощущение, что при подрыве ЯО на торги всем будет пофиг, как и на их результаты
в тренде будут соль, спички, тушенка и патроны

собственно их лонговать никогда не вредно

avatar
Sergio Fedosoni, а есть смысл такое торговать, если на длинной дистанции обнулиться можно? Или просто время от времени выводишь и более консервативные вещи торгуешь?
avatar

Sergio Fedosoni, 

а можно ещё глупый вопрос: а зачем так жадничать? 100 лямов из которых 3/4 чужих + плечи, которые, как известно — зло?

зачем такие приколы?

avatar
Ho_Chu, потому что это такая модель (х5-10 ожидаемой доходности с х2-х3 уровнем рисков зависания и потерь), в т.ч. и для тех людей чьи 3/4
и ожидаемая доходность х3 к депозиту (так да 10 летнем горизонте и выходит)
так называемая модель «серых околобанковских пассивов»

avatar
Sergio Fedosoni, 

ну так нечего на зеркало пенять, коли… так )))
скачал Ваши котиры, сейчас гляну, есть ли для них модели

upd Вы знаете, есть такие модельки… не уверен, что они стойкие на истории, ибо это отдельно проверять надо, но они есть
и Вы не дали мне параметров по спреду и комиссиям, так что увы
avatar
Ho_Chu, на истории точно не стойкие
фьючерс моеск лимитка пассивная 0 (и брокерская тоже)
рыночная (активная) +25% к биржевой

валютная секция usd_tom- 1 коп с долл на круг брокерская, урегулирование биржей 0 — 0.005%
avatar
Sergio Fedosoni, а то делать? приходится создавать так, чтобы минимизировать попадалово, через шишки и залеты
avatar
Ho_Chu, самый простой случай — как вы боту пропишите такую вот задачу (без истории и каких-то параметров вообще)
smart-lab.ru/blog/845169.php


руками ее прекрасно удалось реализовать
avatar
Sergio Fedosoni, 

а в чем проблема вообще? Если Ваш робот торгует Си-шкой, то он должен знать что делать… или должен позвать кого-то умнее себя если встретился с задачей, не описанной ранее
avatar
Sergio Fedosoni, 10 брокеров по 10 мини-счетов по 10 инструментов (= 1000) — в ручную такое не осилить, только робот.
Василий Федорович, так-то да, а 2-3 брокера, 1 базовый актив (3-4 инструмента в нем максимум)
avatar

Sergio Fedosoni, не очень понятно как арбитраж Si/USD может загнать вас в банкротство. Использую робота и как раз потому, что торгую нечто посложнее, чем «арбитраж» и далеко не одним контрактом. Одним контрактом можно и руками торговать.

Самые большие влеты пока были на тесте новых версий. И да, это стремно, оставить робота без присмотра, но с числом учтенных багов и проблем доверие к роботам растет.

avatar
Kot_Begemot, 

а Вы не могли бы сказать, сколько строк в коде Вашего робота?
avatar
Ho_Chu, тысячи четыре -  2000 алгоритм и 2000 библиотека. Но это длинный робот. Самые короткие где-то 1000 строк или 1500 строк. Меньше, вероятно, и не получится.  
avatar
Kot_Begemot, 

спасибо за ответ.
долго писали?
avatar
Ho_Chu, не знаю как ответить. Робот пишется неделю, потом баги убираются поверхностные за месяц, потом всякая мелочь… и где-то через год уже почти не правлю. Но это я с нуля совсем, луа не знал, квиком не пользовался, алгоритмами не занимался. С++/Матлаб знал что делать понимал. Сейчас больше по скорости принятия решений напрягаюсь и всякое такое. Исполнение не трогаю уже давно.
avatar
Kot_Begemot, 

и Вы им довольны, я правильно понимаю?
можно только поздравить и по-доброму позавидовать!!!
avatar
Ho_Chu, я всю основную сессию сплю, вечером встаю посмотреть сколько денег. Наверное доволен... 
avatar
Kot_Begemot, 

ну так это же здорово!
avatar
Kot_Begemot, 

Вы пишете, что «робот пишется неделю», но это же 4000 строк!!! — это в каком режиме? 24/7 или вечерами под пивко на диване?
а «баги поверхностные за месяц» в каком режиме? 24/7 или тоже час-два вечерами?
avatar
Ho_Chu, 24/7 пишется, баги ловятся в режиме «на диване». Вообще допил идет в режиме на диване. Но первый месяц все таки 24/7, потому что с первого раза точно проблем много будет.  
avatar
Kot_Begemot, 

спасибо за разъяснения, жаль, не могу связаться с Вами… харизмы не хватает (((
avatar

Kot_Begemot, 

а подскажите ещё, если сможете...
вот в МТ4 на одном счете могут жить разные роботы, ордера которых отличаются друг от друга магиками… и 18-ый робот не полезет закрывать ордер, открытый 23-им…

 

а как обстоят дела в квике?

если у нас 1-ый робот открыл лонг и помнит про него, рассчитывая в будущем когда-нибудь закрыть его, а, например 12-ый робот решит, что нужно открыть шорт… ну решит и решит, но тогда, вероятно, он просто закроет ордер 1-го робота и 1-ый в будущем внезапно обнаружит, что закрывать то ему нечего… или не обнаружит, а просто откроет шорт

avatar

Ho_Chu, здесь на заявке ставится trns_id, по нему все различия. Так что сделки различаются. А вообще под каждого робота свой счет у меня, те роботы которые портфелируются сидят на одном счете, другие на другом. Да и, в большинстве случаев, разные роботы торгуют разные рынки, а значит и разные счета.

 

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

Не думаю, что вам понадобиться сильно больше, чем пересчитывать желаемую позицию по всем инструментам (хоть на миллионе роботов), а потом стараться одним торговым алгоритмом ее выдерживать. В этом случае можно даже не запоминать ничего и никакие мэджики не ставить — просто грузить текущую позицию и сравнивать ее с расчетной.А вот ХФТ к портфелю фьючерсов и акций сложно будет подмешать, да и не нужно это вовсе.

avatar
Kot_Begemot, 

ну вот я сегодня пообщался с одним опытным человеком и, в результате пошёл думать о взаимодействии роботов — это было полезное общение
avatar
Kot_Begemot, 

а баги «на диване» ловятся на тестовом счете? или на реальном? если на тестовом, то и пусть ловятся… надо только приветствовать!
avatar
Ho_Chu, тестовых у нас нет, только реал. Реал может быть большим и «реальным», а может быть маленьким и «тестовым». Первичная отладка на маленьком счете, вторичная — на большом (когда баг раз в год вылезает чего время терять?). Но в этом году и первичная на большом была, так получилось. Потерял много денег и больше так делать никогда не буду! 
avatar
Kot_Begemot, 

поделитесь, если не секрет, что за баг такой вылез не предусмотренный?
avatar

Ho_Chu, самое страшное, это когда брокер виснет а робот шлет и шлет заявки одну за другой, потому что ответов от сервера совсем не получает. А потом вся эта пачка, вдруг, неожиданно исполняется и выходит совершенно неадекватная позиция, набранная по совершенно неадекватной цене. 

 

Всё остальное это мелочевка, которая почти ни на что не влияет. То есть в первую очередь нужно проверять связь — обновление цен, обновление портфеля, обновление заявок, ордеров и т.д. 

Желательно помнить какое-то время что вы отправляете на биржу и исходя из этого предотвращать повторные отправления и проверять все обновления через функции обратного вызова или путем опроса соответсвующих таблиц. Это основное. 

МТ, вроде бы, в синхронном режиме работает — там этой проблемы нет.

avatar
Kot_Begemot, 

спасибо за советы!!!

но скажите, разве может быть такое? если я послал ордер «по рынку», то я же не должен слать 2-ой или 11-ый, пока не пойму судьбу 1-го? или я чего-то недопонимаю?

в принципе у нас стоит блок, который при неисполнении заявки в течении 10-15 секунд прекращает попытки открытия, но как робот может слать подряд ордера???

ММВБ же не Росреестр ))) я так думаю
avatar

Ho_Chu, вы же не начали с того, что у вас есть блок))) У меня его не было. По-хорошему да — вся последующая торговля осуществляется только после прихода ответов на ордера предыдущей торговли. Ставится блок и чем грамотнее этот блок, тем лучше. Может же такое случиться, что ордер потеряется на пути от терминала к бирже и вся торговля встанет, а это ещё хуже, чем повторное исполнение ордера (не закроет стоп и т.п.). 

Может и портфель зависнуть, а ордера придти. Многое зависит от скорости. Если торговать малым лотом на большом ТФ — там вообще все просто. Если высокочастотное что-то, то уже куча проблем.

У меня, например, даже сейчас часто случаются задваивания из-за «зависаний» портфеля позиций FORTS, а закрутка гаек на блокирующем алгоритме приведет к частым подвисаниям торговли, что тоже критично, другие решения проблемы приведут к другим проблемам. Замкнутый круг. 

 

 

avatar

Kot_Begemot, 

ну мы хоть и крестьяне, но не совсем от сохи ))
но Вы тоже ставите очень правильные вопросы, спасибо Вам за них

ведь действительно, ордер может тупо «потеряться» и ладно если это ордер на открытие позиции, а если наоборот?
Надо подумать!!!

 

Спасибо ещё раз!

avatar
Kot_Begemot, очень блин просто (см выкладки контанговых стратегий тут) — утрирую:
у нас есть своих 20 млн руб, + 500 тыс долл заемные + 500 тыс долл партнерские (раздел рисков) + 3 плечо по валюте (КПУР)
допустим в состоянии контанго сильно выше ставки привлечения (как летом)
мы продаем 2400 Сишек, задействуем валютное ГО (тогда еще можно было) и откупаем 2.4 млн долл — это максимум что можно было на таких параметрах сделать....

риски санкций на НКЦ, приостановка торгов, аномальный курс, ТЯО и все такое сильно не нулевые — ну и подобную конструкцию запросто разорвать могло к ебеням.

Про ситуацию с Бэквордацией в 5000 пунктов я вообще молчу, тут только за счет субордов можно было плечи брать

много все на этут тему в оглавлений
smart-lab.ru/my/sfbankir/tree/#category_2928
avatar
ну так-то да, когда заемных средств в 5 раз больше собственных… Я не знаю как такое сделать просто)
avatar
надо понимать, lua он тормознутый Поэтому робот это связка lua и внешняя программа, где lua скрипт это прокладка между «мозгами» и терминалом quik. Основные вычисления у меня делаются на программе C#, а lua скрипт поставляет данные (ккотировки, ответ по транзакциям) и принимает заявки. Раньше можно было обойтись без lua вообще, используя trans2quik.dll, но из-за чехарды с версиями квика уже было трудно найти рабочую версию dll, из-за чего откзался от нее в пользу скрипта lua. Все что вам нужно это отслеживать, что котировки идут а зявки выполняются и проверять это внешней программой, которая и сообщит о проблеме. Чисто на lua робота сделать можно, но оно того не стоит в плане потраченного времени.
Счастливый Конец, 

в рамках этой темы не интересно вообще, как работает именно Ваша программа, ибо этот вопрос может заслуживать отдельного обсуждения и споров о скорости выполнения ордеров

вопрос был в том, довольны ли Вы её работой, предусматривает ли она описанные выше приколы и готова ли сама их разрешать в рамках предоставленных ей полномочий?

ЗЫ тормознутый не Луа, а сам Квик и пока с этим ничего не поделать ((
avatar
Да, есть у меня такой, в начале дня выставляет стоп-заявки со скользящим тейком в обе стороны. Дальше квик не нужен, все делает брокер.
avatar
Допустим, есть.
avatar
Turbo Pascal, вы же когда то публиковали пример скрипта в назидание «какбыробот», он живой?)
avatar
NikGood, да, это те пару роботов и есть, только эволюционно уже пошли дальше, конечно.
avatar
Turbo Pascal, 

спасибо за ответ
Вы довольны своим роботом?

он предусматривает снятие торговых и неторговых рисков типа тех, что описаны в теме топика?
avatar

Ho_Chu, нет, много ручного.

Но, поскольку я всегда физически рядом, для меня лично это не проблема.

avatar
Turbo Pascal, 

позвольте поинтересоваться, а что Вам остается ручного и зачем Вам тогда вообще робот?
avatar
Ho_Chu, для заявок. Если проблемы инфраструктуры, то руками чиню.

1512 строк, включая комментарии, если Вам это чем то поможет :)
avatar
Turbo Pascal, 

спасибо, Ваш ответ был познавателен!
avatar
Turbo Pascal, 

если не секрет, скажите, пожалуйста, сколько строк в коде Вашего робота?
avatar
Прибыльный — эт не знаю, но рабочие есть. Кажется, я видел что-то вроде на форуме Arqa.Если нет, то в инете по любому есть.
avatar
У меня есть на QPILE
avatar
ipisarev, 

скажите, пожалуйста, Вы им полностью довольны?
и если да, то сколько строк кода в нём?
avatar
Ho_Chu, доволен, чуть меньше 1000
avatar
ipisarev, 

спасибо за Ваш ответ.

Если сможете, ответьте ещё на 1 вопрос: сильно ли сложен Ваш алгоритм?
Если не хотите — не отвечайте. Меня интересовало лишь Ваше отношение к роботу и его объем.
avatar
Ho_Chu, для меня не сложен вообще, для постороннего, наверно, да
avatar
ipisarev, 

спасибо за ответы!
avatar
Все роботы сливают.
avatar
Volahub, 

может это от того, что ими обычно занимаются женечки криворучко?
avatar
Ho_Chu, та хоть кто, иначе бы банки и фонды уже бы обзавелись такими несливающими роботами.
avatar
Volahub, 

так они у них и есть
только нам с Вами они их не показывают ))
avatar
Ho_Chu, нет у них ничего, руками торгуют.
avatar
Volahub, 

ну если какой-нибудь трах-тибидох-банк, то да
весь крупняк работает алгоритмами
avatar
Ho_Chu, всё ровно наоборот)
avatar
Volahub, 

ну Вам лучше знать, конечно ))
avatar
Ho_Chu, да, я в курсе.
avatar
Volahub, 

значит они не настолько умны

кадры, Карл, кадры!!!
avatar
Ho_Chu, в банках тоже беда с кадрами, поэтому с алго там не айс. Только не знаю, как в Сбере дела
avatar
Ho_Chu, дело не в кадрах, а в успешных алгоритмах которые нельзя перевести с языка человека на язык машин, потому что машины не обладают ИИ, который допускает эволюцию закономерностей в неопределенной среде — то есть интуицию. Роботы проигрывают человеку в трейдинге, крупные капиталы это знают в отличие от некрупных романтиков )
avatar
Volahub, 

ну не зна… Вам надо поспорить с собеседником ниже по тексту
его точка зрения сводится к тому, что роботы живут среди нас и вполне успешно лишают капиталов как некрупных романтиков, так и крупных капиталистов ))
avatar
Ho_Chu, с романтиками не спорю, просто прошу их показать стейтмент за несколько лет где доходность хотя бы выше банковского депозита.
avatar

конечно есть. 

т.е. есть у кого-нибудь робот, который мог бы справляться с максимально известным числом приколов, устраиваемых биржей/брокером/оператором связи/лиз_трасс и прочими людьми, задачей которых является сравнительно честный отъем наших с Вами денег?

Но он занят. Занят как раз отъемом денег биржи, банков, и других желающих заработать на бирже. Но он не принимает посетителей. Так уж он устроен. Подожди, ты с ним познакомишься. Рано или поздно.

avatar
Crogall, 

надеюсь, что нет ))
«зачем нам кузнец? что я, — лошадь?»
avatar
Ho_Chu, увы, по статистике, с ним знакомятся 99% на бирже. За последние года три немногие смогли дальше торговать после знакомства. Не любит он людей, но любит их деньги. 
avatar
Crogall, 

прямо заинтриговали
расскажите поподробнее
avatar
Ho_Chu, увы, друг мой. Могу лишь тебе пожелать удачи и дойти своим умом что такое биржа. Дойдешь, выживешь. Не дойдешь, помрешь. Финансово. Медлить будешь, на мыску всех уже тащат. Времени у тебя мало. 
avatar
Crogall, 

заинтриговали — 2

ещё вчера мне казалось, что биржа — это инструмент для перекачивания активов из множества мелких болот в одно или несколько очень крупных озер

разве это что-то другое?

ну могу предположить, что биржа — это ещё и место средоточения некоторой стационарности

у Вас есть другие данные?
не сочтете зазорным поделиться знанием с отсталым крестьянством?
avatar
Ho_Chu, нет, увы. Вариантов есть масса, здесь также множество людей умнее меня многократно. Ищи свой вариант. Я лишь сказал тебе, что индустрию можно поиметь. Тропа есть, ищи и ступай по ней. 
avatar
Crogall, 

я знаю что есть ))
avatar
Crogall, у меня  тоже есть 1 вопрос. Этот робот так же успешно отнимает деньги во втором полугодии этого года как и в первом полугодии или стал похуже?

avatar

Хочется поинтересоваться в ответ — с какой целью интересуетесь таким вопросом?

   Что касается робота. Не важно на lua или нет — со всеми возможными сюрпризами не справится ни один робот. Но отсекать (или ограничивать) последствия таких сюрпризов можно как за счет риск-менеджмента, так и фильтрами алгоритма. 

   Некоторые проблемы из названных вами (кратковременные потери связи, задержка данных о своих заявках или сделках например) решаются независимо от языка программирования. Поскольку для их решения важен не язык кодирования, а логика алгоритма.  

Владимиров Владимир, 

да ответ прост… тут в одной теме, человек, ставший моим личным героем, попросил за простенького робота на стохастике на Луа 1,5 ляма рублей и полгода срока

и данная тема заведена исключительно для сбора сведений о той, потенциально гигантской работе, которую предположительно собрался выполнить мой герой

но оказалось, что средний размер робота здесь — это около 1250 строк
и значит мой герой просит в среднем по 1200 рублей за строку и собирается в среднем в день писать по 9 строк (включая кавычки)

вот я и думаю, то ли лыжи не едут, то ли ещё что...? )))

avatar

Ho_Chu, Понятно.

   1,5 ляма за стохастика — эта фраза может стать крылатой, или как минимум — фразой дня ))) Конечно, это неадекватная сумма. Только вы уверены, что вам нужен робот на стохастике? Ни на чем не настаиваю, просто предложение задуматься об этом.

   Средний размер кода — понятие относительное. Кто-то может использовать библиотеки, к примеру. Их размер не считают. У меня вот под 5000 строк на lua.

   По поводу «в истории уже было — значит можно закодить». Не все так просто, как на словах. Не столько сложно программировать, сколько сложно формализовать некоторые вещи в пригодный вид для кодирования.    

Владимиров Владимир, 

«видите ли Ватсон» )) сам алгоритм, по моему глубокому убеждению, большого значения не имеет, если его реализацию можно описать в паре-тройке абзацев. Равно как и алгоритм стохастика. Весь цимус любого робота, опять же по моему глубокому убеждению, состоит в блоке исполнения и контроля, который, говоря словами моей молодости, должен быть монопенисуален к расчетному алгоритму...
или же говоря другими словами, робот на стоахастике, МА-шке или фазах луны примерно одинаков по сложности реализации ибо сложность не в алгоритме ни разу

 

приведу пример: у меня есть задание, в котором формулам отведено от силы 4 абзаца, а остальные 17 листов — это прыжки и ужимки, которые надо предусмотреть в ходе торгов… и пофиг при этом, чем торгует робот — по ма-шке или по фазам луны...

могли бы привести пример чего-нибудь полезного для такого робота, что сложно было бы закодить?

avatar

Ho_Chu, Под алгоритмом я понимаю ТС. Это не только формулы, но и множество логических разветвлений (если это, то так, иначе ...). Пара абзацев «на словах» при кодировании легко может превратиться в пару сотен строк. Вопрос в сложности логики анализа, риска или принятия решений. 

   Я бы не стал разделять ценность самого алгоритма (ТС) и «технической» части кода (заявки, контроль и проч.). И они в общем случае не всегда независимы полностью.  

   Насчет примера. Ограничусь общеизвестным. На словах — всем понятно что такое тренд, особенно когда смотришь на левую часть графика. Формализовать тренд в моменте его возникновения, существования и момент его прекращения — абсолютно не тривиальная задача. Одних High и Low не хватает.  

Владимиров Владимир, 

и опять я почти соглашусь с Вами )))
за одним исключением: Вы можете почти произвольно поменять алгоритм со стохастика на ма-шку и обратно, при этом исполнительный и/или технический блок может оставаться одинаковым

ЗЫ я как-то брался за формализацию определения тренда, соглашусь — задача нетривиальная, но решаемая… емнип, я даже как то в экселе её решал ))
avatar
Владимиров Владимир, 

и все-таки, что такого важного в исполнительном/техническом блоке (кроме тренда) Вы могли бы сообщить, как полезное умение любому роботу?
avatar
Ho_Chu, вот такой простой математический вопрос. Есть одна дверь. В сколько приемов можно ее открыть? Толкнуть от себя. Толкнуть к себе. А если двери две — то мы имеем 4 приема, что бы открыть две двери. Замечу, что  объединение — это оптимизация. Пока не рассматриваем. 17 листов — это  и есть ваши двери. И задач растет в прогрессивном размере. Вам кажет — какая разница два индикатора или 17?  Тем не менее у робота состоится событие. Которое вы не предусмотрели в своих 17 листах. А программист не стал прописывать столько (17!) решений.  И у робота есть два решения. Ничего не делать, или сдохнуть. Проблема в том. Что ничего не делая робот тоже падает в некоторых случаях. 
Если же говорить об оптимизации — т.е объединении — то либо эту работу совершаете вы. Либо программист. Во втором случае это его деньги. Сеньор не зря получает 500 000, в отличии от начинающего. Потому что он изначально знает как написать то. Что начинающий будет писать пол года. Переписав свой код 10 раз.
avatar

LogikoMen, 

боюсь, что Вы не до конца представляете себе количество способов открывания двери… То, что Вы пишете о 2-х способах лишь доказывает ограниченность Вашего кругозора…

Если кодер не прописал все 17 решений, предусмотренных в ТЗ, то он спит на скамейке в парке рядом с табличкой «подайте бездарю»

Я вот серьезно не понимаю, почему почти каждый здесь считает себя умнее других?

Конечно, здесь есть адекватные люди, с которыми я уже общаюсь и получаю ответы на некоторые неизвестные для меня вопросы — спасибо им за это

но подавляющее большинство с непомерным ЧСВ

avatar
Ho_Chu, не уловили смысл. Не 17 решений и 17 строк. а 2^17, т.е.131072 или 17! что 3х10^14

avatar
Владимиров Владимир, 

если Вы думаете, что я Вас обманываю с полутора лямами, могу прислать ссылку ))
avatar
Ho_Chu, причем «техническая» часть кода (заявки, контроль и проч.) наверняка у него давно готова и универсальна под любой алгоритм.


avatar
Vkt, 

про это я говорю
что у хорошего специалиста, который не является новичком ни в кодерстве, ни в трейдинге, все давно готово и отлажено
и будя такой найден, уверен, мы смогли бы договориться о том, чтобы поменять его ма-шку на мой стохастик дешевле, чем за полтора ляма ))) и за полгода )))

причем я не исключаю того, что и наши решения по обеспечению непрерывности торгов, показались бы ему интересными и необходимыми к внедрению
avatar
Ho_Chu, 

>> человек, ставший моим личным героем, попросил за простенького робота на стохастике на Луа 1,5 ляма рублей и полгода срока

Это говнокодер черкашныш тебя разводит что ли? )))
avatar
Turbo Pascal, 

нет, сам Матфизик…

потом потер свой пост, но копии и каменты остались

потом нахамил, потом испугался за свои зубы, потер мат, внес меня в ЧС и гордо удалился, не найдя ответ на вопрос «что такое интеграл?»

а кого Вы имеете в виду?
avatar
Ho_Chu, когда вам предложили metatrader — вы отказались. Но проблему то вы озвучили — безотказная работа. Нужно понимать, что безотказную работу вам никто и не гарантировал среди всех опрашиваемых.
Что будет, если виндовс перезагрузится (сервер)? Квик не подключится, робот ваш спит. Метатрейдер подключится, соединится с брокером, запустит робота. Тоже самое под квик реализуют через утилиты. Т.е. по сути через стороннее приложение. Сколько стоит написать утилиту под что угодно? Меньше чем 200 000 никто не возьмется. Есть написанная в интернете — но работает ли она с новой версией квик? Вот тут все и упирается. Что не написать проблема. А поддерживать работу робота. Выявить все проблемы и на реальных деньгах. Чьи это будут деньги, ваши?
Написать под квик стоит от 20 000 рублей. Все проблемы с ним — это ваши проблемы. Всю работа после вы оплачиваете, или никто не будет работать с вами. Миллионы озвучивают те. Кто не понимает задачу. А задачи у вас нет. Потому что вы сами не понимаете. Что хотите. Нет стабильно работающих роботов под квик. Потому что сами создатели не адаптировало свое детище под это. И нет недорогих решений. У каждого свое, и на него были потрачены месяцы — вам озвучили. При стоимости работы программиста в 100 000 рублей. Вот вам и ценник. Для начала. 
Но если нужно что бы работало 2 дня — от 20 000 вы найдете исполнителя.
avatar

LogikoMen, 

спасибо за Ваше мнение, но даже здесь присутствующие коллеги вполне довольны своими роботами, на написание которых потрачена неделя + месяц на допиливание…

а 1,5 ляма за стохастик — это уже мем ))

те кто просят невесть сколько за невесть что — не понимают, что они будут делать — отсюда оверпрайс и оверсрок

те, кто уже делали, понимают, что «глаза боятся, а руки делают»… вот с ними мне по пути, их труд я уважаю потому, что ОНИ СМОГЛИ СДЕЛАТЬ… не поговорить, не потешить своё эго, а СДЕЛАТЬ!

 

им респект и уважуха! с ними я готов обсуждать что угодно

все остальные — слышали звон, да не знают где он

ЗЫ ну и, разумеется, Вы невнимательно читали… робот нужен для того, чтобы не делать ручками то, на что нужна реакция и однотипные операции… никто не будет оставлять его на произвол судьбы, есс-но… и все возможные баги уже предусмотрены… ну зачем приходить и кричать «а вдруг винда у тя перегрузится?» — эврика! про винду то я и не подумал ))) если я предлагаю решения «как показывать роботу на приостановку торгов», то уж про винду, будьте уверены, мы подумали ))

ферштеен?

avatar
Ho_Chu, у меня работающий робот безотказно на старой версии квика умер на новой по всем вариантам — и квик зависал, и робот останавливался, и просто выгружался. Три разные причины — и я понял. Мне это не нужно. Про перезагрузку виндовс я написал на вскидку. Ваши задачи мне не ясны. Абстрактно выражаетесь. В программирование одно слово — это огромная задача. Меньше слов и дешевле вам выйдет. 
avatar
LogikoMen, 

Вы привели бы пару примеров, которые хорошо бы учесть (кроме винды, разрывов связи, приостановки торгов, дефолта кипра и пр.), по которым можно было бы понять, что «Вы в теме, а не просто понтуетесь», а я обязуюсь честно рассказать, предусмотрено ли это в ТЗ или нет
avatar
Ho_Chu, в программировании нужно учесть сколько в итоге обойдется решение и что вы в итоге хотите. Можете и сами алгоритмы поставлять под tslab. Бесплатно. 
По моим же представлениям вы хотите учесть рыночные риски. На то они и рыночные. Что к программе никак не относится. Самый большой рыночный ваш риск — перенос через ночь позиции. Но выход на вечерке и вход утром может оказаться для вас более дорогим хенджем. А для этого нужны тесты. В квике их не провести.
Второй страшный риск — ликвидность и доход. Если вы понимаете о чем речь.
Не пытайтесь все воткнуть в ТЗ. Дешевле попробовать на малых деньгах. Все учесть невозможно. И стоит ли это свеч?

avatar

LogikoMen, 

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

ликвидность — не риск, это данность

у Вас есть ещё предложения по учету рисков?

пока Вы меня ничем не удивили

avatar
Ho_Chu, разрыв связи — и перенос через ночь — это одно и тоже. Что там что там будет гэп. Но в отличии от разрыва связи на выходных часто бывают новости. И мало вам не покажется. Большинство трендовых роботов село на войне в феврале этого года. И убытки там очень хорошие. Все остальное по сравнению с этим мелочи жизни.
  Приостановка торгов — вы боитесь что на планке робот сядет и как с нефтью по отрицательным ценам убыток покажет? Или как вас спасет отсутствие связей с евроклир? Или банкротство брокера? Или как криптобиржи посыпались? Робот тут совсем ни причем. Вас же интересует, что будет при разрыве связи? Да ничего сверх обычного. Может вас беспокоит вынос стопов? По сравнению с потерей всего капитала — тоже мелочь.
Риск ликвидности — это не данность. Отсутствие продавца или покупателя — это то. Что разорило очень многих крупных участников торгов. К примеру, как толпа чуть не разорила американские фонды на гейм компании. Но речь не об этом. Львиная роботов может зарабатывать достойно только мельтиша создавая тысячи сделок в год. В этом случае и эквити плавное и красивое. И доход трендово растет. Но прибыль на сделку там чрезмерно мал. И запускают их только на si и еще подобных парочку только по этой причине (в некоторых  случаю только на нем). А у всех остальных проблема другая — 40% годовых. А просадка там больше и не позволяет брать плечи. Волатильности то не хватает постоянно. И не данность это — некая не определенная величина. Которую вы не знаете — на пробое уровня вы только на тестах будете думать. Что просадка у вас одинаковая. Изменение ликвидности и есть важный фактор. Кода объемы растут на какой то котировке — это не крупный заходит. А толпа алгоритмов включает.
Всего два риска. И ничему удивлять вас не собирался. Без них все остальное как дождь средь бела дня. Можно и промокнуть пару раз, высохните.

avatar

LogikoMen, 

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

 

приостановка торгов из-за вылета за границы коридора — вообще не риск, предполагаемая беспричинная приостановка торгов отмена торгов, аналогичная той, что была недавно по валюте и золоту — это да, но её нужно уметь идентифицировать на уровне алгоритмов робота… ну а вдруг следом за приостановкой объявили бы о запрете хождения валюты?

так что спасибо за то, что такая штука была в истории


сейчас меня больше беспокоят приколы на моменте передачи и исполнения ордеров

тысячи сделок в год? делайте па пицот в день )) и Вы легко выйдете на сотни тысяч сделок в год

что за проблема 40% годовых? не слышал о такой

avatar
Ho_Chu, 1.5 лимона за ваш робот — это мало. Я бы и 100 назвал бы. 
Вы хотите что бы нажали кнопку. А далее робот увидел запрет на хождение валюты. Как? Новости в интернете читал, сайты взламывал, искал инсайдерскую информацию )) 
avatar

LogikoMen, 

будь ты прокурором — век свободы не видать )))

нет, подобные приколы (приостановки торгов) на уровне биржи можно увидеть путем анализа сообщений
у нас есть к этому подготовленное описание, вопрос — в его реализации

ЗЫ вот не поверите, но — хочу!
и если я до сих пор помню, чем отличается интеграл от регрессии, то, поверьте, очень постараюсь сделать это ))

я уже задавал тут вопрос одному умнику: тебе вообще стационарность нужна?

можно и усложнить вопрос: а зачем?
но можно и понтануться: типа ты тест Дики-Фуллера делать умеешь?

поэтому, если Вы хотите хотя бы полторушку, то я Вам её дам, но пусть уж тогда Ваш робот тоже приносит мне полторушку в месяц хотя п ))

avatar
LogikoMen, 

но в чем Вы, безусловно правы, — это в том, что мало просто написать, надо ещё и поддерживать
avatar
Владимиров Владимир, 

ну а по сути Вашего вопроса — со всем согласен, все приколы предусмотреть невозможно, ибо «жизнь гораздо шире нашего представления о ней», но уже встречавшиеся в истории приколы предусмотреть в будущем просто обязаны...
согласитесь, дефолт кипра мы теперь вряд ли забудем, равно как и дивы газпрома, не так ли? а раз мы о них уже знаем, то и описать можем )) а раз мы их можем описать словами, то и в код их перевести — посильная задача для пытливого ума
avatar
Ho_Chu, вы видели как Газпром за 1 минуту -15% сделал в день объявления дивидендов 30 сентября? А причина там была одна — отмена первый раз дивов привела к хорошему падению. Поэтому и шортов наставили и стопов и продавили рынок ни на чем. А потом все это отрасло за несколько минут назад. Кто заработал? Тот кто это предчувствовал, а не видел будущее глазами прошлого. А все остальные, что думали о первых дивах наградили их очень щедро. Вы бы с вашими знаниями и роботами были бы в их числе.
avatar
LogikoMen, 

конечно видел и риск дивов газпрома, сбера и пр. отдельно описан, спасибо им за это… вообще этот год очень продуктивный на приколы

что касается нас, то мы не гонимся за такими заработками,
есть четкие правила, надо им следовать, а будут дивы или не будут — дело десятое
avatar
О, моя цитата :) Да, конечно есть. Сам ведёт заявки от выставления до исполнения (по кодам подтверждения), проверяет деньги, ведёт обособленные счета каждого бота, смотрит за связью, пишет в чатик, может управляться из чата, умеет вводить в квик смс-коды сбера. Для алгоритма со стаканами использует специальные буферы, чтобы можно было читать-писать котировки в многопоточном режиме без блокировок.

Меня устраивало, пока торги не стали несколько тухлыми :) В этом году плотно на бизнес переключился, не до роботов.
avatar
Денис Г., 

а много ли строк в Вашем роботе?
avatar
Ho_Chu, Ну давайте уже код луа, для того, чтоб робот включался с домашнего компа за 15 минут до открытия биржи,. Или хотябы алгоритм этого. Ситуация когда утром на работу и обратно к компу только вечером.
avatar
the Rolling Stones, 

Вы, наверное, плохо читали
как раз мне кодер и нужен ))

ЗЫ а у Вас что, все ресурсы домашним компом ограничиваются?
ну тогда «не нужна тебе такая машина, Вовка!» ©
avatar
Не могу сказать, сколько строк :) Там 400-500кб кода на с++, навскидку 5000-6000 строк без внешних библиотек.
avatar
Денис Г., 

о, это серьезный труд! респект! долго писали?
avatar
Ho_Chu, никогда не считал, это ж хобби по сути. По гитхабу 2 месяца в одном году и примерно столько же в следующем (уже писал), но тут скорее всего неделя вечерами непосредственно работа, остальное — испытание в бою с правками на лету.

Ну и с++ — это не луа, много кода «обеспечения» типа объявлений классов, конструкторов и т.п., это раздувает код.
avatar
Денис Г., 
использует специальные буферы, чтобы можно было читать-писать котировки в многопоточном режиме без блокировок
спрашиваю для расширения кругозора. Это все из qlua? Или пришлось вывалиться в другой язык с коннектом в qlua
avatar
Андрей К, на луа там только вызов dll :) Сам код на с++ весь.

Я пробовал на луа писать, что-то сложное выливается в конструкции с костылями и подпорками, слишком просто ошибаться.
avatar

теги блога Ho_Chu

....все тэги



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