Михаил Понамаренко
Михаил Понамаренко личный блог
20 декабря 2020, 18:25

Итоги года 2020. Программирование

   Год уже заканчивается и пора подводить некоторые итоги. Начну свою ежегодную серию итогов со своего хобби – программирование в области финансовых рынков. Увлёкся этим делом в конце 2005-го года. Тогда начал осваивать MQL4 в MetaTrader 4, но, через пару лет, поняв кухню ДЦ, перешёл в QUIK на реальную биржу. Тогда же, начал монетизировать своё хобби. Моя история прошлых лет, если кому интересно.

   В статье будет, возможно, много не интересного не посвящённым в программирование, поэтому можете смело прокрутить в «Выводы».

Итоги.

   В начале года не было желания что-то программировать. Часто собирался с друзьями. Мой робот в январе ушёл в минус 2% по всему счёту. Робот был настроен только в продажу рынка на деривативах, хеджируя основной портфель акций. В общем-то, это моя основная идея последних двух лет. Звёздный час робота настал в конце февраля. Как раз, когда я уехал из города, робот исправно накапливал продажи на летящем вниз рынке. Тогда я в очередной раз убедился в необходимости автоматизации. На мартовской экспирации часть средств удалось удачно перекинуть в подешевевшие акции.

   Весной пришла печальная новость: переход на 19-тизначные номера заявок, и одновременно, прекращение торговли роботами на QPILE. Данное событие должно было произойти в апреле, поэтому я начал переход с QPILE на QLUA. Разные таблички и индикаторы работали по-прежнему.

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

   К середине мая появилось немного времени и желание что-нибудь покодить. 19-значный «конец света» был перенесён на июнь. С переходом на LUA 5.3, перестали работать библиотеки. Т.к. я не профессиональный программист, сделать новые версии я не мог. На форуме QUIK, создал тему: «Куплю и раздам функции для LUA 5.3 x64». Так я познакомился с Сергеем swerg, который, собственно, делал все предыдущие общедоступные версии библиотек и сделал новые версии. Если нужно какое-нибудь нештатное чудо в QUIK, то это к нему. )

   На радостях была опубликована новая утилита Автозапуск QUIK QLUA, который не работал на новых версиях QUIK.

Ссылки на библиотеки:

w32.dll – функции WinAPI +управление вкладками: описание и скачивание

lfs.dll – функции для работы с файлами LuaFileSystem: описание  скачивание  

qvcl.dll – функции для создания визуального интерфейса описание  скачивание

   В июне шли ожесточённые бои с коллбэками заявок. Оказалось, что они не всегда есть, там, где должны быть обязательно. Но, к середине июня интерес к программированию снова пропал, т.к. на дворе лето, а самоизоляция на исходе. 19-значный «конец света» был перенесён на сентябрь.

   В середине сентября интерес снова проснулся. «Конец света» состоялся, но, роботы на QPILE продолжали работать, хотя и частично парализованы отсутствием возможности снимать и переставлять заявки. Мой робот продолжал работать в полупарализованном состоянии после небольших корректировок. Захотелось добавить несколько «хотелок» в Историю позиций. Некоторые полезные «хотелки» подкинули клиенты. В общем, пожеланий оказалось очень много и их реализация была закончена лишь к середине декабря.

   Самая моя желанная «хотелка» была — привязка таблиц скрипта к определённой вкладке. У меня обычно открыто несколько таблиц на разных вкладках, и при перезапуске QUIK или скрипта, они бессовестно лезли на первую попавшуюся вкладку. В QPILE параметры таблицы сохранялись в файл настроек *.wnd, а QLUA оказался совершенно не приспособленным. Давно просил об этом разработчиков. Но, «если гора не идёт к Магомету, Магомет идёт к горе». Сергей реализовал необходимую возможность через функцию w32.dll. Мечта сбылась. 

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

   Недели две пришлось биться с метками. Идея была в том, чтобы скрипт знал, какую метку он использует. ID метки присваивается QUIK по порядку от «1» (1,2,3…), и нельзя его задать. Это неудобно, т.к., например, при перезапуске QUIK, скрипт теряет номер своей метки, если, присвоенный QUIK’ом номер, не был записан в файл.

Выводы.

В одном из топиков полугодовой давности, я похвастался, что «моё хобби равно 5.5 млн.р. на счёте» и был за это наказан. В этом году, хобби принесло 43 526р. с учётом донатов Сергею. Что в пять раз меньше чем в 2019 году (219 300р.)

И, так, каким должен быть мой счёт с доходностью 4% над инфляцией?

Получаем: 43526 / 0.04 = 1 088 150 р.

В провинции весомая сумма.

Время наш самый ценный ресурс, как говорит Тимофей. Посчитаем в другом ракурсе. Время, затраченное на хобби ровно 300 часов. Сколько стоил мой час?

Считаем: 43526 / 300 = 145.08р./час (в прошлом году было около 300р./час)

Мало ли это? – Конечно, нет. Я живу в провинции, и пока мои некоторые друзья ишачат на складе за 170р./час, я занимаюсь своим хобби в удобном кресле за 145р./час.

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

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

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

Планы.

Переписать с QPILE на QLUA хотя бы 5 своих разработок. Надеюсь, большинство пожеланий было реализовано в почти прошедшем году и можно заняться чистой реализацией алгоритмов. Через год интересно будет сюда вернуться, и проверить насколько был выполнен этот мотивационный посыл.

31 Комментарий
  • forex-light
    20 декабря 2020, 19:16
    сколько всего уже робот слил? ;) 
      • Petr S
        21 декабря 2020, 11:40
        Михаил Понамаренко, за привязки по вкладкам — реальное спасибо! 
      • Petr S
        21 декабря 2020, 11:41
        Михаил Понамаренко, вообще-то час нормального программера — 400-500р. Специфического (как QLUA) -и поболее. так что вы могли бы получать более, работая просто на удаленке
  • FinSerfing
    20 декабря 2020, 19:19

    Есть у меня планы касательно программирования.

    Ближе к началу года перетрём тему.

    • clerk
      20 декабря 2020, 20:44
      FinSerfing, Программу Партии пишите!
      • FinSerfing
        21 декабря 2020, 18:35

        clerk, я беспартийный.

        Не люблю ходьбу стадами.

      • FinSerfing
        21 декабря 2020, 18:33

        Михаил Понамаренко, стоит отметить, что они не совсем мои.

        Идеи систем принадлежат другому человеку.

        Если коротко, то это портфель из довольно специфичных систем, которые не берут длинные движения.

        Но в начале следующего года подобные трендовые системы будут добавлены.

        И станет веселее.

  • Поликарп Брусникин
    20 декабря 2020, 19:24
    143р в час это крайне мало!
    Стоит ли заниматься всем этим программированием ради каких то 200 тыс в год? По-моему нет
    • Дмитрий К
      20 декабря 2020, 20:05
      Биотехнолог, ты не понял. Речь о том, что это хобби. Я знаком с автором,  в качестве эксперимента в 2017 году купил у него робота как раз на qpile. 
      Понял,  что это полный треш. 
      Сам в качестве все того же хобби занялся программированием,  делаю себе роботов сам.
      У меня другой вопрос к автору,  зачем он продолжает жрать кактусы и пытаться родить что то на встроенном языке? 
      А если завтра квик отменят (например перейдешь к другому брокера, с другим терминалом), Михаил,  что ты будешь делать? Опять кому то донатить? 
      Делай платформонезависимых роботов.
      Прокачивайся в своем хобби, вместо того, чтобы донатить

      • Поликарп Брусникин
        20 декабря 2020, 20:40
        Дмитрий К, ну если хобби то другое дело. Если заработок основной, то это шляпа
        • Дмитрий К
          20 декабря 2020, 20:47
          Биотехнолог, он в магазине своем торгует товарами для дома, ему пока некогда заниматься программированием с точки зрения основного заработка. Но насколько я могу судить о нем, он вполне может монетизировать это хобби по 3тр в час. Сейчас все программисты на удаленке нормально могут пахать
      • Kris
        20 декабря 2020, 22:31
        Дмитрий К, а на чем лучше писать универсальных роботов? Пока освоил на базовом уровне только lua и stock sharp
        • Дмитрий К
          20 декабря 2020, 23:09
          Kris, здесь вопрос с порогом входа.  Например с++ ,  на нем написано все что можно придумать, но он сложный. Если не смущает это, то лучше использовать его.
          Я пошёл по самому простому пути,  освоился в питоне,  оказалось, что он настолько популярен,  что на нем тоже все что можно, написано. 
          Я имею в виду, что есть уже готовые библиотеки и на том, и на другом языке, и написание робота по сути сводится к написанию логики по сути простейшими if else с использованием готовых библиотек.
          Просто,  по ощущениям, что то на с ++ написать будет в разы длиннее в плане кода, чем на питоне. И отлаживать на питоне тоже в разы проще по моему
          • Kris
            20 декабря 2020, 23:14
            Дмитрий К, а для python какие библиотеки используете если не секрет? У меня этот язык следующий в списке на изучение.
            Основной C#. C++ очень уж тяжелый :)
            • Дмитрий К
              21 декабря 2020, 00:25
              Kris, а я думал, кому си шарп зашёл,  тому плюсы будет не сложно. 
              Я с сишарпом столкнулся в альфадиректе,  у них там есть конструктор роботов,  и можно дописывать алгоритмы (если в конструкторе не получается реализовать) как раз на сишарпе.  И у них разработчики помогают. А я тогда даже питгн ещё не изучал, только заинтересовался роботами,  и попросил написать простейшего робота,  купи продай,  и написали,  и работал,. Но даже сейчас он мне кажется не логичным в смысле кода, с точки зрения питона какие то не нужные усложнения.

              На питоне чего только не использую, сокеты,  чтобы данными обмениваться с квиком,  коннектор к базе данных, либы,  чтоб историю сделок сразу в эксель писать, перед этим посчитав, что нужно,
              некоторое время активно баловался с пандасом для анализа,  и ещё куча всяких либ,  типа нампай,  скайпай (точно не помню уже как), эти либы поддерживают так называемые векторные вычисления (толком не понимаю,  как это работает), но производительность  вычислений на порядок плюс минус выше, чем обычными циклами по данным бегать.
              Для парсинга много либ. Парсил данные по облигациям с русбондс, в квике и на сайте момбирди нет данных по амортизации, а с этим реальный попадос,  купишь что нибудь по 110, а завтра тебе 30% платят по 100. Пришлось искать выход с помощью парсинга 

      • Поликарп Брусникин
        21 декабря 2020, 09:07
        Михаил Понамаренко, ну не обязательно работать там где родился, можно и по стране переезжать ради зп
        • Тимоха
          21 декабря 2020, 15:46
          Биотехнолог, пять баллов, сам такой, покуралесил по стране. Да и приятели у меня такие же. Нонстоп в переездах.
          • Поликарп Брусникин
            21 декабря 2020, 16:00
            Тимоха, я сам части переезжаю ради зп. Сейчас в Москве дальше вроде уже некуда
  • 𝗙𝗼𝗿𝘁𝘂𝗻𝗮
    20 декабря 2020, 19:28
    я похвастался, что «моё хобби равно 5.5 млн.р. на счёте» и был за это наказан
    Да, есть такое дело: чем похвалишься, без того и останешься. Планами, говорят успешные люди, желательно тоже особо не делиться с посторонними. Я иногда даже близких не посвещаю в какие-то планы, если их реализация для меня очень важна. 
  • Ветерок
    20 декабря 2020, 19:38
    Я не понял, какой дебет/кредит за год?

  • Lookas
    21 декабря 2020, 01:19
    Насчет Доната не понятно. Зачем донатить?
    Написал тз, заплатил за разработку и пусть робот пашет.
  • Виталий
    21 декабря 2020, 14:57
    нравится и делай, что нравится, в этом и кайф
    тем более роботы плюс дают и не просто в диких спекуляциях с риском, а хеджируют, и это классно, что вы умеете хеджировать портфель успешно!
  • swerg
    03 января 2021, 16:39
    Михаил, спасибо за добрые слова!!! С вами очень приятно общаться!
    Успехов вам в наступившем году и не только творческих! ;)

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

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