Введение


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



Сущность стратегии: с помощью простейшего технического анализа в виде слежения за простыми скользящими средними вы находите точку смены тренда и продаете или покупаете актив. Я ни в коем случае не агитирую за то, чтобы вы сразу бросались и начинали торговать на бирже, потому что это 100% работает. Это работает только(!) в комплексе с пониманием фундаментальных процессов происходящих в компании.

Два варианта применения стратегии


Первый вариант

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



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

Второй вариант

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

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

Пример 1: Enel



Пример 2: Аэрофлот



Красными кружками отмечены точки пересечения двух скользящих средних с разными периодами, что является сигналом к тому, что тренд достаточно крепкий и можно принимать решение о действии(покупки\продажи), в соответствии с фундаментальной обстановкой. Например, аэрофлот можно было бы продать на квартал, именно из за его последнего квартального отчета. Многим спекулянтам достаточно этого фактора, чтобы начать продажу. Для долгосрочного же инвестора это является сигналом к тому, что можно хорошо усреднить среднюю стоимость покупки(докупить бумагу по меньшей цене) или сделать ребалансировку.

Техническая часть


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

Для начала был написан небольшой класс:

Код класса
class emitent {
    public $name;
    public $cost; //текущая цена
    public $trand; //направление тренда
    public $closeCost; //цена закрытия
    public $average50; //значение скользящей средней 50 дней
    public $average15; //значение скользящей средней 15 дней
    
    public function getPrice($emitent,$format){
        $uri = 'https://iss.moex.com/iss/engines/stock/markets/shares/securities/'.$emitent.$format;
        $result = file_get_contents($uri);
        $resultObject = json_decode($result,true);
        /* @var $resultObject type */
        $this->cost = $resultObject['marketdata']['data'][2][12];
        return $this->cost;
    }
 public function getAverage50($emitent,$format){
        $historyPrice = [];
        $historydata = [];
        $date1 = date("y-m-d",strtotime("-1 days"));
        $date2 = date("y-m-d",strtotime("-100 days"));
        $uri = 'https://iss.moex.com/iss/history/engines/stock/markets/shares/boards/TQBR/securities/'.$emitent.$format.'?from='.$date2.'&till='.$date1;
        $result = file_get_contents($uri);
        $resultObject = json_decode($result,true);
        $historydata = $resultObject['history']['data'];
        $historydata_reverse = array_reverse($historydata);
        for ($i=0;$i<50;$i++){
                array_push($historyPrice,$historydata_reverse[$i][11]);
        }
        $average50 = array_sum($historyPrice)/count($historyPrice);
        return $average50;
    }
    public function getAverage15($emitent,$format){
        $historyPrice = [];
        $historydata = [];
        $date1 = date("y-m-d",strtotime("-1 days"));
        $date2 = date("y-m-d",strtotime("-50 days"));
        $uri = 'https://iss.moex.com/iss/history/engines/stock/markets/shares/boards/TQBR/securities/'.$emitent.$format.'?from='.$date2.'&till='.$date1;
        $result = file_get_contents($uri);
        $resultObject = json_decode($result,true);
        $historydata = $resultObject['history']['data'];
        $historydata_reverse = array_reverse($historydata);
        for ($i=0;$i<15;$i++){
                array_push($historyPrice,$historydata_reverse[$i][11]);
        }
        $average15 = array_sum($historyPrice)/count($historyPrice);
        return $average15;  
    }
 }


Из тонких моментов, которые я взял из справочника:

https://iss.moex.com/iss/history/engines/stock/markets/shares/boards/TQBR/securities/

History — запрос цен из нужного периода времени
Stock — торговая система(engines) «Фондовый рынок и рынок депозитов»
Shares — конкретный рынок(markets) «Рынок акций»
TQBR — конкретный режим торгов(boards) «Т+ Акции и ДР»

Ответ сервера или json или xml. Вы получаете массив с данными. Данные в массиве могут варьироваться в зависимости от запроса, который вы посылаете. Описание полей массивов хранятся в тех же данных в блоке «COLUMNS». Значения — в блоке «DATA».

Полное описание всех полей, относящимся, например, к рынку акций, можно посмотреть на этой странице.(Кстати, нашел я это описание только при подготовке статьи).
Замечание. Если вы берете промежуток больше 100 дней, то там надо делать несколько запросов, перемещая указатель массива. Ситуация описана на последней странице Руководства Moex API

После этого был написан сам скрипт (за качество кода палками прошу не бить):

Код скрипта
require_once ($_SERVER["DOCUMENT_ROOT"].'/classes.php');
$file = 'portfolio.json'; //Сохраненные данные по прошлым трендам
$portfolio = json_decode(file_get_contents($file), true);
foreach ($portfolio as &$emitent) {
    $sending_mail = false;
    $emitentMoex = new emitent();
    $emitentMoex->name = $emitent[0];
    $emitentMoex->trand = $emitent[1];
    $format = '.json';
    $price     = $emitentMoex ->getPrice($emitentMoex->name, $format);
    $history15 = $emitentMoex ->getAverage15($emitentMoex->name, $format);
    $history50 = $emitentMoex ->getAverage50($emitentMoex->name, $format);
        if ($history15<$history50){
            $trend_course = "Тренд вниз";
            $trand_course_bool = false;
        } else {
            $trend_course = "Тренд вверх";
            $trand_course_bool = true;
        }
        if ($trand_course_bool != $emitentMoex->trand){
            $sending_mail = true;
            $trend_course .='. Тренд изменился';
            (boolean)$emitent[1] = $trand_course_bool; 
        }

        if ($sending_mail){
            $date = date("y-m-d");
            $headers  = "Content-type: text/html; charset=UTF-8 \r\n"; 
            $headers .= "From: Change trands alert <yourmail@box.com>\r\n"; 
            $message = "Эмитент: ".$emitentMoex->name."<br>"."Цена сейчас: ".$price. "<br>"."Средняя на 15: ".$history15."<br>"."Средняя на 50: ".$history50."<br>".$trend_course;
            mail("yourmail@box.com", 'test'.$date , $message,$headers);
            }
}
file_put_contents($file, json_encode($portfolio,true));
?>


Он получает из массива json, лежащим в той же папке список тикеров и метку направления тренда. Запрашивает цены за указанные промежутки времени и высчитывает значения простых скользящих средних по формуле:

$\frac{\sum\limits_{i=1}^n P_i}{n}$


Где P — цена закрытия, а n — количество промежутков времени, за которые берутся значения цен.

пример массива
[
    ["GAZP",true],
    ["MTSS",true],
    ["FEES",false],
    ["ENRU",true],
    ["IRAO",0],
    .
    .
    .
    ["AFLT",0],
    ["LKOH",true],
    ["GMKN",true]
]


Далее определяет текущее направление в зависимости больше или меньше значение меньшей средней(15-тидневной) чем значение большой(50-тидневной). Сравнивает текущее направление с сохраненным и при изменении значения присылает оповещение на почтовый ящик.
Далее я открываю новости по тикеру и анализирую ситуацию.

Итог


Биржа предоставляет доступ к информации бесплатно, с условием задержки в 20 минут. Для спекуляций внутри дня данные не подходят, но вот написать какие-либо инструменты, которые помогут принимать решения в среднесрочном периоде времени очень даже подойдут. С ходу, например, индикатор достижения целевой цены. Многие брокеры и консультанты выкладывают рекомендации по целевым ценам в открытый доступ и вы спокойно можете написать скрипт, который будет отслеживать цену. У yahoo.finance, например, этот инструмент сначала сломался, а потом его и вовсе убрали. Также, публичные зарубежные сервисы криво получают информацию о ценах наших эмитентов.

Надеюсь, эта информация поможет вам в дальнейшем удобнее контролировать свой портфель, как она помогла мне.

Полезные ссылки для долгосрочных инвесторов:

ВокругДаОколо
Записки инвестора
Путь к богатству

P.S. Хочу отметить, что наблюдения за трендами относится к техническому анализу акций. Многие фундаментальные инвесторы отрицательно относятся к ТА, считая его гаданием, предсказанием и т.д. Но моя точка зрения такова, что ТА — скорее помощник инвестора в принятии решений, только подтверждающий какую-либо гипотезу. Но ни в коем случае не инструмент для безапелляционного утверждения. Как любят повторять в среде непрофессиональных фин.консультантов, все написанное выше не является руководством к действию и рекомендацией к совершению сделок.

Комментарии (20)


  1. Chugumoto
    04.12.2017 15:06

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


    1. Jeisooo Автор
      04.12.2017 15:20

      Могу вам привести пример новости, которую не предскажет никогда никакая автоматизированная система. Фундаментальные же факторы позволяют крупному инвестору не обращать внимания на такие новости вовсе, смотря на горизонт событий от 5 лет.
      Конечно, все выкладывается в цифрах и есть системы помощи принятия решений, есть консультанты и информационные порталы. В сфере финансовых рынков это все стоит бешеных денег и, конечно, вам решать платить их или нет(можете обратить внимание на стоимость подписок bloomberg или reuters).
      Жмут руки в кабинетах не компьютеры:)


      1. Chugumoto
        04.12.2017 21:53

        а где я говорил про предсказание? :-)
        я про анализ именно таких новостей и после него соответствующие автоматически корректировки в поведении алгоритма


        1. Jeisooo Автор
          04.12.2017 22:56

          К сожалению, такие системы придется достаточно часто корректировать, потому что анализ фин.отчетности проводится в соответствии с уставом компании, в котором прописаны все нюансы интерпритации тех или иных статей. И меняться это может достаточно динамически. Конкретно в моем примере система должна была знать, что бумажная прибыль влияет на размер дивидендов. Да, как инвестор, вы можете нанять команду программистов и платить ей(причем система будет давать ошибки, а ошибка ценой в миллионы никому не нужна), но вам проще хорошо понимать финансы и просто ориентироваться в ситуации.


    1. Jeisooo Автор
      04.12.2017 15:23

      Обычно отчетность выкладывается в файлах pdf, которые трудновато парсить автоматизированно. Есть сервисы, где уже все скомпоновано, но даже там я не нашел требуемой функции. А у меня лишь один из тех примеров, которые хоть чуть-чуть помогают.


      1. Chugumoto
        04.12.2017 21:58

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


  1. lostpassword
    04.12.2017 15:23

    Какой у вас получился доход по счёту (в процентах годовых), если не секрет?


    1. Jeisooo Автор
      04.12.2017 15:25

      Средний больше банковского депозита в 1,5 раза. В 2014 было совсем красиво, но сейчас эффект размазался.


      1. lostpassword
        04.12.2017 15:30

        Неплохо)


        1. Jeisooo Автор
          04.12.2017 15:41

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


          1. lostpassword
            04.12.2017 15:42
            +1

            Да, понятно, вы же это указали в статье. Меня результаты в целом интересовали.)


      1. dbax
        06.12.2017 09:45

        Это ведь не очень много. Около 10% сейчас?
        В то время как готовые инвест продукты(ПИФы облигаций например) дают около 13%, не взирая на все кризисы.
        И после 2008 и после 2014 очень быстро возвращаются на прежний тренд.


        1. Jeisooo Автор
          06.12.2017 09:53

          Спасибо! Ваш вопрос можно разбить на два. В чем преимущество и недостатки ПИФа? И доходность различных инвестиционных инструментов.
          1. Преимущества: Если(!) вы его правильно выберете, то доходность может быть большой, но зависеть она будет не всегда от состава ПИФа, но и от действий управляющего.
          2. Недостатки: Вы не контролируете свои деньги, вы принимаете на себя риски организации, эмитирующей ПИФ и полностью полагаетесь на человека, которого им управляет. Вы не получаете дивы напрямую, вы получаете прирост стоимости пая.

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


  1. Jeisooo Автор
    05.12.2017 13:22

    image
    Собственно, вот как выглядит сегодняшний алерт.


  1. Closius
    06.12.2017 09:25

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


    1. Jeisooo Автор
      06.12.2017 09:44

      Если вы прочтете Wiki про MACD, то увидите, что принципы анализа те же самые:) Еще раз повторюсь, что это не торговая стратегия, а один из факторов принятия решения, который я для себя реализовал.
      В торговые стратегии, основанные полностью на ТА, я не верю.


  1. scor2k
    06.12.2017 14:31

    Не хочу что бы показалось рекламой, но, как мне кажется, все то же самое (накладывать инструменты на график котировок) можно на ресурсе ru.investing.com или я упустил какую-то важную составляющую?

    image


    1. Jeisooo Автор
      06.12.2017 14:35

      Да я уже приводил ссылку на этот ресурс вот в этом комментарии. Важная составляющая — сообщение на почту при пересечении графиков. А так, для визуального анализа там конечно все есть.


      1. scor2k
        06.12.2017 15:03

        Да, спасибо, не кликнул по ссылке из того комментария )))


  1. GRMZK
    06.12.2017 16:23

    Отличная статья, спасибо!