Блог им. turbo_pascal

Как продавать роботов

В продолжение поста "Как покупать торговых роботов". Теперь о том, как их продавать.

Как продавать роботов

«Ты кто такой, давай техзадание!
Ты кто такой, давай техзадание!
Он все тебе объяснить старается,
Отчет-аудит показать пытается,
Знаещщ, где рэальний дэло начинается?
Только там, где ТЗ появляется!

А теперь, товарищ, внимание!
Нет ТЗ — Давай Досвидания!» ©

Как продавать роботов


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

Вам надо четко выделить 4 этапа, чтобы написать качественный код:

1) Бизнес-анализ. Вы должны получить (часто) абстрактные пожелания клиента о том, что он хочет. И превратить их в четкое техническое задание. Да, это должны сделать именно Вы! А не Заказчик. Вы должны предоставить Заказчику настолько четкий шаблон, чтобы ему пришлось там указать всё, что нам надо.
Это — основа дальнейшей работы, и исключение большого количества конфликтов и отрицательных отзывов о работе.
Хороший исполнитель, с высоты своего опыта, еще и сам может подсказать Заказчику, что именно ему надо, если понятно, что Заказчик хочет что-то бесполезное. Но это уже по желанию.

2) Разработка. Тут углубляться не буду. Ведем аккуратно код, отслеживаем версионность, при фиксации очередной версии (commit) подробно пишем, что и почему поменяли, кто это просил, даты, заказчик, причины. Это все потом очень понадобится, чтобы найти причины проблем. И даже, возможно, предъявить Заказчику претензии.
Отсутствие этих записей — переход от работы над кодом к разборкам «я этого не говорил». А этим Заказчики, бывает, очень грешат.
Зарабатывающих роботов мало, и когда Заказчик осознает что его алгоритм не приносит прибыли, возможно, он захочет найти виноватых. Вот тут все записи и пригодятся.

3) Тестирование. Прогоните робота на собственном счете. Избавьте его хотя бы от детских ошибок. Заказывал я тут у одного «как бы (простигосподи) программиста» код, он не запустился. И началось: «ой, да я вам библиотеку не ту дал, вот другая», «ой, я поправил, попробуйте еще раз», и так далее. Отвратительное ощущение от общения. Человек накидал код «на авось», и бросил Заказчику — «а, пусть запускает, там ошибки и вылезут».
Нет, тестируйте код у себя.
Если это HFT, то нужно будет не только функциональное тестирование, но и нагрузочное, чтобы дать четкие диапазоны параметров работы робота, и сразу сказать — что он может, а что уж нет.

4) Поддержка. Вы должны понимать, что если с нами хорошо отработают, то единовременной сдачей кода дело, скорее всего, не закончится. Обговаривайте заранее поддержку кода, обновления, срок этой поддержки и сколько она будет стоить Заказчику. Нормальная практика — это как минимум месяц-два бесплатной (включенной в начальную стоимость разработки) поддержка, дальше переводим на ежемесячные или ежеквартальные платежи.

Ну и дополнительные комментарии:

1) Цените конфиденциальность клиента и его данных. Малейшее подозрение, что код может слить наружу хоть какие-то данные (пусть даже бесполезные обезличенные логи, по которым Вы хотите посмотреть работу кода для отлова ошибок) — потеряете клиента навсегда, и многих других тоже.
2) Оформите хоть какой-то узнаваемый бренд для своих разработок. Это поможет в будущем лучше, чем «написано Уасей Пупковым в 2015 году».
3) Озаботьтесь механизмом мониторинга работоспособности своего кода. В код желательно встроить модули, которые тем или иным способом будут сигналить Заказчику о свой неработоспособности. Плохая практика — код остановился, клиент об этом узнал через сутки, когда (возможно) уже слил из-за этого кучу бабла. Код не только должен работать как заказывали, но и сигнализировать, если вдруг что-то пошло не так.
4) Нарабатывайте собственную библиотеку кода. Вы должны создавать «конструктор» сами для себя и для последующих доработок. Любый универсальные функции выносите в отдельные библиотеки.
5) Логи и сообщения об ошибках должны быть понятны, а не «Error 459-af, обратитесь к разработчику».
6) Обрабатывайте все exception. Проверяйте диапазоны значений. Не давайте дураку сломать работу. Если дурак сможет вписать ".Й" в поле, где должно быть число и код от этого рухнет, предъявят — Вам. Сделайте проверку «Тут.Й писать нельзя» :)
7) Хоть это и будет звучать как фраза из сраных «книжек по успеху» — делайте для Заказчика чуть больше, чем он ожидает. Нет ничего хуже, когда клиент видит, что работают с ним «на отъе*ись» (ага, опять привет «какбы кодеру»). Такой клиент не вернется.
8) Из предыдущего пункта: не занижайте цену, чтобы можно было спокойно сделать то, что хочет Заказчик, и немного больше, и при этом Вас не отвлекали голодные дети и бесшубная жена :) Для этого, конечно, по началу придется наработать авторитет и базу. Поверьте, многие клиенты готовы платить больше, за гарантию качественного результата.
9) Снабжайте код документацией, но не сложной. Плюс к этому нарабатывайте на своем сайте (а он, коню понятно, должен быть) «базу знаний» с описанием часто встречающихся ошибок.

В общем, вы должны стать миниатюрной софтверной компанией, и тогда роботостроительство пойдет в гору.

Понятно, что абсолютно все вышеперечисленное никто не соблюдает на 100%. Но ...

Как продавать роботов

p.s. Ничего не продаю, семинаров не веду, каналов нет.

★16
43 комментария

В теории звучит замечательно.


На практике садимся считать экономику процесса и получаем необходимость для клиента оплачивать минимум полноценный человекомесяц разработки. На что ясен пень никто идти не хочет. Потому что «дороХо».


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

 

В итоге относительно приемлемая цена может быть только у «массового» продукта. Сам написал робота, сам его продаешь в розницу. А дальше дилемма: либо робот какашка и продавать его позорно, либо робот хорош, но тогда продавать его уже нет желания.

В общем, есть нюансы.

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

Угу, было такое: предлагали закодить какую-то простейшую стратегию (типа пересечения машек) и последующими письмами типа «не отвечаешь — значит выкрал у меня прибыльную стратегию и уже зарабатываешь на ней» :)
avatar

Turbo Pascal, кстати, если верить ves2010, машки действительно работают. =)

avatar
ch5oh, конечно работают. Просто не всегда :)
avatar
Turbo Pascal, конечно, не всегда. А только «в среднем». А что у нас работает «всегда»? Даже продажа опционов минусит 2-3 раза из 12. =)
avatar
ch5oh, Зато КАК!!! минусит  :)
avatar

Prophetic, это зависит от наличия автоматического дельта-хеджа и степени предварительной жадности. А также от наличия других торговых стратегий в портфеле.

 

Есть варианты, когда движение на рынке ого-го! а позиция практически не страдает при этом.

avatar
ch5oh, Это все понятно. Речь не о каком-то конкретном подходе (я ведь не берусь утверждать, что продажа опционов — это порочная практика), а о статистике в целом. А она неоднократно демонстрировала «громкие» результаты большинства продавцов опционов.
avatar
Prophetic, статистика так же неумолимо демонстрирует слив большинства трейдеров вообще. Сколько там? От 90 до 95% сливают?


А вот что касается «неважности подхода», то это неправда. Как раз подход и определяет результат. Продать путы и молиться со словами «туда никогда не дойдет!»??? Да это вообще не торговля опционами, а упражнение в чудодейственности искренней молитвы.


Или как тут недавно новый проект начал пиариться. Для начала сделал позорный каминг-аут: «я слила 40% на фортс за пару месяцев и ТЕПЕРЬ понимаю важность торговой системы». =) тоже недурно для начала.
avatar
Turbo Pascal, что значит не всегда?
когда есть движуха — работают, нет движухи -отдаем рынку, но меньше, чем заработали))
все просто)
avatar
ch5oh, они реально работают, уж поверьте))
avatar
Dio, паршивенько они работают, уж поверьте. =)
avatar
ch5oh, да нет, нормально они работают, можете не верить)))
avatar
Dio, очевидно, у нас есть субъективность в определении слов «нормально» и «работают». =)
avatar
ch5oh, неочевидно, не надо тут лирики, пожалуйста..
только сухие цифры, не более..
протестируйте и сами увидите, в чем проблема то?
вот очевидно можно сказать кто как тестирует, это да, тут можно согласиться))
avatar

Dio, ну, сухие цифры — это скучно. Если Вы хотите аргументировать, что «пересечение машек работает», то давайте Вы сначала: инструмент, таймфрейм, тип машек, интервал тестирования, количество сделок, количество убыточных кварталов, количество убыточных месяцев, средняя сделка, оценка доверительного интервала для матожидания одной сделки, график эквити. Понятно, все с учетом комиссии.

avatar
ch5oh, это все в наличии.
и что дальше?
мат ожидание положительное, если кратко)
avatar

Dio, =) не убедили. Если кратко.

 

С уважением.

avatar
ch5oh, В смысле не убедили ?)
сами дотукиваейтесь, дотестируестесть, проанализируейтесь ...
я вам должен что то рассказыкать и не дай Бог убеждать?))
ту не богадельня))
честно, — вопрос, когда вы купили или продали опцион и что был за актив?)
 
avatar

Dio, я этой ерундой занимался лет 10 назад и для себя все выводы сделал.

 

Ваш вопрос про опцион не понял. Я постоянно что-то делаю с опционами. В основном продаю.

avatar
ch5oh, зачем мне вас убеждать?
я не собираюсь здесь ничего рассказывать и показывать!
я же сразу написал — и что дальше?
у меня все прекрасно работает, чего и вам желаю!
тут не богадельня ..
10 лет назад..)))
я первый опцион купил ещё в 1998 году, на сиплого и что?))потом продал, заработал и дальше что?))
avatar

Dio, Вы же «Управляющий активами». Напишите что-то умное содержательное и аргументированное, глядишь, инвесторов прибавится.


Кстати, уже прошли регистрацию как положено? Сильно там заморочно?

avatar
ch5oh, Вы знаете, чем меньше инвесторов (мелких), тем целее нервы).
инвесторов хватает.
а умное здесь писать как то нет желания, прописные истины, их и так все знают мало мальски работающие на рынке.
Вам тем более объяснять что то умное бесполезно, вы и так умными здесь мыслями делитесь (не сарказм), неоднократно читал ваши баталия про теорвер и так далее!) Респект одним словом.
Не проходил регистрациб, как то все не соберусь, если вы о мамбе)
avatar
Turbo Pascal, ))
да для такой простейшей стратегии нет никакой надобности писать робота, она и так работает прекрасно (руками"), собственноручно проверял, сорри за тавтологию.)) 
А по постам (как покупать и продавать) зачет и респект! Профи!
Удачных трейдов, коллега!;)
avatar
ch5oh, сделать бизнес, на роботах или ещё на чем, это задача не проще чем написать доходного робота, вроде как
avatar
ПBМ, легких денег нигде не осталось. Точнее, все места где они есть давно и прочно заняты. =)
avatar
В целом, согласен. Однако утверждение о том, что именно разработчик должен абстрактные мысли заказчика превратить в четкий алгоритм я все же подвергну сомнению. Сразу скажу — за деньги роботов не писал и не планирую, но бесплатно было (ничего сложного, но для собственного развития было полезно). Так вот, когда заказчик в качестве задания пишет фразу «Когда цена достаточно сильно прошла вниз, тогда...», а на вопрос «Что именно мы считаем „достаточно сильным“ движением?» ты получаешь картинку с графиком и комментарием «Ну, вот тут видно как цена низко...», то на мой, сугубо субъективный, взгляд, я не должен считать себя должным превращать такую мысль в конкретный алгоритм своими силами.
Из нескольких обращений (разных людей), я только один раз столкнулся с ситуацией, когда человек смог более-менее внятно объяснить чего он хочет, и как себе это представляет. Да, в большинстве случаев, путем многократного задавания уточняющих вопросов, мне удалось реализовать то, что мне показалось плавильным алгоритмом задуманного заказчиком. Понять так ли это, или человек ожидал чего-то другого — я так и не смог.
avatar
Вот зачем все усложнять то? В инете полно свободного кода — берем несколько основных команд: 
1. Узнать свой баланс биржи по выбранному инструменту, например BTC/USD

2. создать Ордер на продажу
3. создать ордер на покупку
4. удалить ордер на продажу
5. удалить ордер на покупку
6. Прочесть текущую цену по инструменту.
— Все, больше вам ничего не нужно, далее придумываем свою стратегию торговли  Лесенка, чудесенка и прочее дерьмо и пишем алгоритм используя только этот набор команд.
avatar
Magistr, не смешите, потом люди на подобном коде сливают свои депозиты из-за отсутствия должного учета сделок, ордеров и позиций
 как будет выглядеть алгоритм сегодняшней торговли Лесенкой используя эти 6 команд на падении крипты с 8600 до 7800? Сейчас напишу:

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

avatar

Magistr, уважаемый ТС уже выкладывал этот алгоритм в одном из предыдущих постов. В исходниках. Правда, для QLua, но пытливый ум мартингальщика без труда перепишет его под МТ или любую другую торговую платформу.

 

ПС Кстати, мартингейл — всего лишь продажа синтетических опционов. И имеет ровно те же самые проблемы, что и стратегия «продай опционы и молись». Депозит заканчивается намного раньше, чем рынок достигает разворотной точки.

avatar
Magistr, пример с лесенкой — это пример низкотехнологичного подобия торговой системы, на которой люди теряют свои деньги, а кодеры из-за своей алчности им в этом способствуют
молиться все равно придется — например на той же крипте — смотрим сегодняшний день — встряли на 7800, распродали весь депозит и откупились где то на 7850, а что дальше? А дальше  завтрашний день с походом на 6100 и так же лесенкой. Но… А если после 6100 как только мы закончим все распродавать цена резко 8800 ???
avatar

Magistr, русскими буквами в коментах этот код выглядит просто. По факту: биржа может не прислать ответ на «выставить ордер», биржа может исполнить ордер, но вы только что отправили снять этот ордер, биржа может перестать транслировать данные (а вы только завтра об этом узнаете), биржа может сделать вашему ордеру reject либо вы превысите кол-во попыток для отправки ордеров,… продолжать?

После криптобирж я еще больше полюбил квик :-)))

avatar
yurikon, он не понимает, что такое нормальная система учета сделок, ордеров и позиций, поэтому ему объяснять это еще рано, подозреваю, что это выходец из МТ4
Magistr, 
А если после 6100 как только мы закончим все распродавать цена резко 8800 ???
а если нет ))
зачем вы изначально строите ТС по принципу рулетки?
Каналы есть у каждого))))




При торговле ручками депозит заканчивается вообще на раз два — я уже с 2005 года в рынке и слил пару депозитов — поэтому сейчас торгуюсь только на криптобиржах и максимум депозита там 5000 рублей 
avatar
Magistr, Ну и как там выхлоп? Риски не напрягают?
avatar
Ну и гимн алготрейдера в темку...

avatar
RUSTSK, золотые слова.
=) Одно время эту мелодию каждое утро ставил.
avatar
Андрей Михалыч, это распространенное заблуждение. Человек придумывает ворох индикаторов плюс кучу трейлинг-стопов, делает мысленно бешеный курвафитинг — и искренне думает, что это будет работать. И что за право выслушать этот бред программист обязан впрячься на месяц-другой работы. Потом это все не работает и человек искренне уверен, что это программист неверно реализовал его гениальную идею. Поэтому тем более его труд не должен оплачиваться.
avatar

теги блога Turbo Pascal

....все тэги



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