Блог им. Fazotron

Как создавался торговый советник PIAdviser

Как создавался торговый советник PIAdviser
Зарождение идеи
 
Раздумывая над вопросом, куда вложить свой небольшой первоначальный капитал, я остановился на покупке акций российских предприятий. Впервые это произошло в 1994 году,  и с тех пор инвестирование приносило в основном доходы. Исключением стали печальные 1998 и 2008 годы, когда пострадали практически все инвесторы и трейдеры.
 
На протяжении многих лет у меня постоянно присутствовало желание заниматься трейдингом, но неудачные первые шаги, заставляли повременить с полным переключением на это направление. Надо сказать, что трейдинг сильно отличается от инвестирования, я об этом знал, и поэтому проявлял осторожность в совершении операций, однако эмоциям на осторожность начихать.
 
Начинающие трейдеры считают, что залогом успеха является торговая стратегия, которая представляет собой определенную систему эффективных действий. Точно так же считал и я, когда в 2000 году начал разрабатывать свою собственную программу для ведения трейдинга. Накопленных знаний в области спекулирования акциями, как мне казалось тогда, у меня хватало.


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

Мысли были такие. Для облегчения труда трейдера, для контроля над его действиями, анализа его работы необходимо было найти соответствующую программу. С ее помощью трейдер смог бы планировать свою деятельность, он мог бы опираться на ее расчеты и получать полезные советы. В идеале программа должна была  выполнять три функции: советовать, помогать и контролировать. Особенные надежды возлагались на контролирующую функцию, ибо из своего личного опыта я знал, насколько важно придерживаться правил в торговле ценными бумагами и как сложно удержаться, чтобы их не нарушить. Контроль помог бы соблюдать дисциплину, которая является одним из главных факторов успешного трейдинга на рынке, таком непредсказуемом и в тоже время открывающем большие возможности.

Программирование – сложная наука

 
Поиск программного обеспечения показал, что ничего подобного на отечественном рынке нет. Но желание реализовать свою мечту было настолько сильно, что я решил заняться разработкой абсолютно новой программы, которая бы учитывала специфику российских реалий и была проста в использовании. В силу моей недостаточной осведомленности меня не волновало, с какими трудностями можно при этом столкнуться.
 
Следовало найти талантливых программистов, и только на это ушло прилично времени и сил. В конце концов, за работу решился взяться молодой и способный программист по имени Дмитрий, чуть позже к нему присоединился Алексей, который занимался веб-разработками. Для них требовалось сформулировать техническое задание.
 
Описать все интуитивно понятные вещи с помощью логических формул оказалось очень сложно. С одной стороны, ты имеешь опыт, знаешь, как совершаются операции, а с другой стороны не представляешь, как их можно разбить на отдельные действия, выделить что-то главное, определить последовательность и т.д. Для того чтобы привести мысли в порядок и написать первые 10 страниц технического задания, я потратил целых три месяца. Это были мучительные дни напряженной умственной работы, но торговый советник, как я называл программу, этого стоил. Затем процесс пошел более интенсивно, появлялись новые и новые задания, количество которых сложно было уже сосчитать. Для создания алгоритмов приходилось чертить блок-схемы, научиться записывать логические выражения, придумывать формулы. Насколько трудоемкий это процесс, можно понять, посмотрев на техническую документацию. Она написана на более чем ста листах.
Как создавался торговый советник PIAdviser
Такая работа заняла у меня целый год, во время которого приходилось совершать каждодневные кропотливые действия и надеяться на оправдывающий все это результат.
 
Кто работал с программистами, знает, что прежде чем написать программу, они должны полностью вникнуть в ту сферу, для которой она пишется. Мне пришлось объяснять Дмитрию все нюансы работы трейдера, рассказывать, как работает скользящий стоп, какие виды торговых операций существуют, объяснять специфику реальной торговли акциями. Дмитрий оказался очень способным учеником. У него была великолепная математическая база, поэтому он моментально находил неточности в моих описаниях и предлагал исправить их с учетом тех знаний, которые он только что от меня же и получил. Вскоре он стал самостоятельно составлять многие торговые алгоритмы, взяв на себя значительный объем работы. Меня удивил тот факт, что, не имея никакого опыта в торговле на бирже, он самостоятельно находил способы улучшить сервис. Он помог сделать программы эффективной и понятной даже для неискушенного пользователя, но это позже, а тогда мы еще не знали, каким будет результат. 


Сложный процесс совершенствования
 
По словам одного моего знакомого, программа, которую вы задумываете и затем разрабатываете, может очень сильно отличаться от того, что будет на выходе. Он знал, что говорит, потому что учувствовал в разработке NetInvestor – первой торговой платформы в России.  Насколько верны его слова, я понял, когда наше детище стало приобретать какую-то вполне определенную форму.
 
Программа работала, но представляла собой какую-то нелепицу, не слишком удобную и очень грубую. Дело в том, что мы не имели представления о том, какой должен быть интерфейс, какие обязательные функции должны включаться в работу программы. Все это придумывалось интуитивно. Не хватало опыта в подобных разработках и не существовалонекоего образца, который можно было бы взять за основу. Пришлось многое переделывать, усовершенствовать некоторые торговые параметры. В процессе первого тестирования выявлялись многие недочеты, вылезало наружу все лишнее, что потом приходилось убирать. Но, несмотря на все эти проблемы, в душе присутствовала радость от того, что удалось создать нечто новое, уже показывающее, пусть не идеальные, но весьма убедительные результаты. Идеи, о воплощении которых я когда-то только мечтал, становились все реальнее. Хотелось как можно быстрее причесать наш сервис и применить его на практике. К сожалению, процесс достижения оптимального результата, занял значительно больше времени. О создании идеальной программы не следовало и думать, потому что на некотором этапе начинаешь понимать, что процесс совершенствования бесконечен. Думаю, Дмитрий и Алексей знали это, но для меня данное открытие оказалось неприятным, разочаровывающим сюрпризом. Каждый раз, когда наставали сроки сдачи окончательного варианта, их приходилось отодвигать. Обнаруживались какие-то изъяны, требующие срочного устранения, и думалось, этому не будет конца. Мы стремились к достижению самого лучшего результата, углубляли свои знания, оттачивали навыки, мы досконально изучили все возможности нашей торговой системы, и это способствовало нашему собственному развитию.
 
Медленное продвижение разработки программы было еще и потому, что Дмитрий на тот момент учился в Университете. Это отнимало у него значительную часть времени. Плюс ко всему, ни у кого из нас не было опыта работы в подобных проектах.  Особенно тяжело было, когда усиливался натиск близких людей. Они говорили о бессмысленности всех моих трудов. Они жалели меня за то, что приходилось проводить за работой все выходные, вечера, все свободное время. Порой не удавалось реализовать какую-то опцию в программе.  И наставали моменты, когда усталость и безнадежность валила с ног, хотелось все бросить и обо всем забыть. Главное, что удерживало в данной ситуации, это вера в то, что программа действительно будет работать и приносить пользу не только мне, но и другим трейдерам. 


Последние шаги к достижению цели
 
На основную разработку и реализацию нескольких версий трейдиноговой программы ушло пять долгих лет. За это время был проведен не один десяток экспериментов, подбирались самые разные торговые параметры, рассчитывались коэффициенты, изменялся интерфейс и методология реализации процессов. Все это периодически сопровождалось бурными обсуждениями, спорами, энергичными речами и доказательствами.
 
Для того что бы создать опцию, позволяющую проводить тестирование торговой системыи осуществлять оптимизацию настроек, пришлось приложить немало усилий. Просиживая перед монитором компьютера долгие часы, я снова и снова проверял корректность работы всей торговой системы. Я провел сотни тестов самостоятельно и, привлекал к этому процессу студентов, желающих заработать. Наконец Дмитрий частично реализовал функцию автоматического тестирования, и это привело меня в неописуемый восторг. Сегодня не верится, что все это действительно было, глядя на обычных пользователей, совершающих простые манипуляции. Они могут легко протестировать торговую систему, задав период в несколько лет, они видят все возможные показатели оценки ее работы, и перед ними представляется график с изображением кривой счета. 


Долгожданный результат
 
Самая первая версия нашего творения, программы PIAdviser, – 1.0.0. была выпущена в августе 2005 года, и с тех пор находится в свободном доступе. Все желающие могут ее скачать и абсолютно бесплатно опробовать в течение 4 недель, зайдя на сайт http://www.i-tt.ru/soft/soft.html. После нее появилась еще одна версия WebEdition, и затем еще две ClassicEdition и PremierEdition.
 
Дмитрий помог мне реализовать несколько полезных и достаточно оригинальных функций, к которым относятся торговые тактики, представленные в четырех видах, прогноз прибыли, описания каждого торгового сигнала и комментарии к ним, а также другие функции. Процесс совершенствования продолжается и сейчас, поэтому приблизительно раз в полгода выходят обновленные версии. На данный момент выпущено более 30 версий, и последняя из них имеет номер 2.4.9.
 
Название торгового советника PIAdviser расшифровывается как Personal Investment Adviser, что в переводе означает «личный инвестиционный консультант». Это название придумал Дмитрий, и я очень рад, что такой целеустремленный и талантливый человек встретился мне.
 
Несправедливо будет, если я не скажу еще об одном участнике нашего проекта. Это Алексей, и он занимался решением вопросов, связанных с сервисным обслуживанием пользователей, работающих с программой на сайте. Он так же заботился об актуальности баз данных и поддерживал работу программы на сервере. Без его деятельности не было бы нормального функционирования сервиса.
 
Первоначальные планы создать сервис для личного пользования в 2000 году обернулись тем, что в 2013 году уже более десятка тысяч человек воспользовались программой. Эти люди живут в России, а также в странах СНГ, Европе, Израиле и Канаде. У программы есть ежегодная абонентская плата, многие пользователи продливают ее уже не первый год. Значит, мы не зря потрудились и разработали действительно полезную программу.
★5
4 комментария
Вы можете сами посмотреть показатели любого инструмента за выбранный период, используя опцию тестирование и оптимизация торговой системы. Вот пример Уралкалия за последние 11 мес.: http://www.i-tt.ru/soft/PIAdviser/urka.png
avatar
Stas Ivanov, судя по всему, робот только продаётся, но сам создатель его не использует.
ВАЖНО! PIAdviser - это не робот, это советник. Здесь приведены показатели работы за 6 лет, в том числе в период кризиса 2008 года: www.i-tt.ru/soft/rezault.html
avatar

теги блога Fazotron

....все тэги



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