Turbo Pascal
Turbo Pascal личный блог
04 июня 2019, 08:45

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

43 Комментария
  • ch5oh
    04 июня 2019, 09:27

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


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


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

     

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

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

      • ch5oh
        04 июня 2019, 09:40

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

          • ch5oh
            04 июня 2019, 09:50
            Turbo Pascal, конечно, не всегда. А только «в среднем». А что у нас работает «всегда»? Даже продажа опционов минусит 2-3 раза из 12. =)
            • Prophetic
              04 июня 2019, 12:32
              ch5oh, Зато КАК!!! минусит  :)
              • ch5oh
                04 июня 2019, 14:36

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

                 

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

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


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


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

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

                    • Dio
                      06 июня 2019, 19:25
                      ch5oh, это все в наличии.
                      и что дальше?
                      мат ожидание положительное, если кратко)
                      • ch5oh
                        07 июня 2019, 00:10

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

                         

                        С уважением.

                        • Dio
                          07 июня 2019, 02:19
                          ch5oh, В смысле не убедили ?)
                          сами дотукиваейтесь, дотестируестесть, проанализируейтесь ...
                          я вам должен что то рассказыкать и не дай Бог убеждать?))
                          ту не богадельня))
                          честно, — вопрос, когда вы купили или продали опцион и что был за актив?)
                           
                          • ch5oh
                            07 июня 2019, 08:25

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

                             

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

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

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


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

                                • Dio
                                  12 июня 2019, 11:29
                                  ch5oh, Вы знаете, чем меньше инвесторов (мелких), тем целее нервы).
                                  инвесторов хватает.
                                  а умное здесь писать как то нет желания, прописные истины, их и так все знают мало мальски работающие на рынке.
                                  Вам тем более объяснять что то умное бесполезно, вы и так умными здесь мыслями делитесь (не сарказм), неоднократно читал ваши баталия про теорвер и так далее!) Респект одним словом.
                                  Не проходил регистрациб, как то все не соберусь, если вы о мамбе)
      • Dio
        06 июня 2019, 15:00
        Turbo Pascal, ))
        да для такой простейшей стратегии нет никакой надобности писать робота, она и так работает прекрасно (руками"), собственноручно проверял, сорри за тавтологию.)) 
        А по постам (как покупать и продавать) зачет и респект! Профи!
        Удачных трейдов, коллега!;)
    • П М
      04 июня 2019, 10:54
      ch5oh, сделать бизнес, на роботах или ещё на чем, это задача не проще чем написать доходного робота, вроде как
      • ch5oh
        04 июня 2019, 11:08
        ПBМ, легких денег нигде не осталось. Точнее, все места где они есть давно и прочно заняты. =)
  • Prophetic
    04 июня 2019, 12:31
    В целом, согласен. Однако утверждение о том, что именно разработчик должен абстрактные мысли заказчика превратить в четкий алгоритм я все же подвергну сомнению. Сразу скажу — за деньги роботов не писал и не планирую, но бесплатно было (ничего сложного, но для собственного развития было полезно). Так вот, когда заказчик в качестве задания пишет фразу «Когда цена достаточно сильно прошла вниз, тогда...», а на вопрос «Что именно мы считаем „достаточно сильным“ движением?» ты получаешь картинку с графиком и комментарием «Ну, вот тут видно как цена низко...», то на мой, сугубо субъективный, взгляд, я не должен считать себя должным превращать такую мысль в конкретный алгоритм своими силами.
    Из нескольких обращений (разных людей), я только один раз столкнулся с ситуацией, когда человек смог более-менее внятно объяснить чего он хочет, и как себе это представляет. Да, в большинстве случаев, путем многократного задавания уточняющих вопросов, мне удалось реализовать то, что мне показалось плавильным алгоритмом задуманного заказчиком. Понять так ли это, или человек ожидал чего-то другого — я так и не смог.
  • Magistr
    04 июня 2019, 12:33
    Вот зачем все усложнять то? В инете полно свободного кода — берем несколько основных команд: 
    1. Узнать свой баланс биржи по выбранному инструменту, например BTC/USD

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

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

    • ch5oh
      04 июня 2019, 14:41

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

       

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

    • Константин
      05 июня 2019, 06:33
      Magistr, пример с лесенкой — это пример низкотехнологичного подобия торговой системы, на которой люди теряют свои деньги, а кодеры из-за своей алчности им в этом способствуют
  • Magistr
    04 июня 2019, 15:43
    молиться все равно придется — например на той же крипте — смотрим сегодняшний день — встряли на 7800, распродали весь депозит и откупились где то на 7850, а что дальше? А дальше  завтрашний день с походом на 6100 и так же лесенкой. Но… А если после 6100 как только мы закончим все распродавать цена резко 8800 ???
    • yurikon
      04 июня 2019, 17:03

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

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

      • Константин
        05 июня 2019, 06:36
        yurikon, он не понимает, что такое нормальная система учета сделок, ордеров и позиций, поэтому ему объяснять это еще рано, подозреваю, что это выходец из МТ4
    • Константин
      05 июня 2019, 06:34
      Magistr, 
      А если после 6100 как только мы закончим все распродавать цена резко 8800 ???
      а если нет ))
      зачем вы изначально строите ТС по принципу рулетки?
  • Сергей Симонов
    04 июня 2019, 23:32
    Каналы есть у каждого))))




  • Magistr
    05 июня 2019, 09:27
    При торговле ручками депозит заканчивается вообще на раз два — я уже с 2005 года в рынке и слил пару депозитов — поэтому сейчас торгуюсь только на криптобиржах и максимум депозита там 5000 рублей 
    • RUSTSK
      05 июня 2019, 12:22
      Magistr, Ну и как там выхлоп? Риски не напрягают?
  • RUSTSK
    05 июня 2019, 12:21
    Ну и гимн алготрейдера в темку...

    • ch5oh
      06 июня 2019, 16:09
      RUSTSK, золотые слова.
      =) Одно время эту мелодию каждое утро ставил.

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

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