Портфельная теория Марковица(далее ПТМ) (Modern portfolio theory) — разработанная Гарри Марковицем методика формирования инвестиционного портфеля, направленная на оптимальный выбор активов, исходя из требуемого соотношения доходность/риск. Сформулированные им в 1950-х годах идеи составляют основу современной портфельной теории.
Основные положения портфельной теории были сформулированы Гарри Марковицем при подготовке им докторской диссертации в 1950—1951 годах.
Рождением же портфельной теории Марковица считается опубликованная в «Финансовом журнале» в 1952 году статья «Выбор портфеля». В ней он впервые предложил математическую модель формирования оптимального портфеля и привёл методы построения портфелей при определённых условиях. Основная заслуга Марковица состояла в предложении вероятностной формализации понятий «доходность» и «риск», что позволило перевести задачу выбора оптимального портфеля на формальный математический язык. Надо отметить, что в годы создания теории Марковиц работал в RAND Corp., вместе с одним из основателей линейной и нелинейной оптимизации — Джорджем Данцигом и сам участвовал в решении указанных задач. Поэтому собственная теория, после необходимой формализации, хорошо ложилась в указанное русло.
Акции с высокой дивидендной доходностью часто являются отличной инвестиционной стратегией для инвесторов, стремящихся получать приток денежных средств каждый год. В данной статье буден создан скрипт на Python для отбора их на бирже NASDAQ.
Что такое дивидендная доходность?Пример
При цене акции ОАО «Лукойл» 1124,37 рублей и дивиденде 28 рублей на акцию дивидендная доходность будет равна:

Как думаете, сколько может принести алгоритмическая торговля? 10% годовых? 100%? Или больше?
Все мы знаем, что machine learning может делать множество крутых вещей. А уж применить его в трейдинге для анализа графиков и прочих цифр — эта идея вообще очевидная. Почему же в публичном пространстве почти не встречается историй успеха? Не знаю, возможно потому что деньги любят тишину.
Однако я точно знаю что machine learning работает! На самом деле очень многие его применяют. Да я сам занимаюсь этим для прогноза движений по индексу S&P 500. Я также общался с человеком, который за год заработал $5млн от стартового депозита в $300 тыс. Буквально вчера общался с другим человеком, который подтвердил, что легко можно делать 300%-500% на американских индексах. Врут? Думаю что нет.
С помощью ML я и сам смог заработать +45.9% к счету только за февраль, а депозит у меня не маленький. Ниже приведены результаты по моим сделкам в феврале на реальном счете. Для сравнения в скобках указано значение тех же метрик за тот же период по самому индексу S&P 500.

if ((AroonDownClose_20_[Bar] >= 75.0)&&(AroonDownClose_20_[Bar] <= 100.0)) //
if ((StochD14_5_[Bar] >= 1.9416)&&(StochD14_5_[Bar] <= 10.3487)) //
Загоняем, считаем:
| Названия строк | Коли | Profit % |
Вернее так: что я увидел, обучая модели. Всякие подобные темы любят поднимать трейдеры, они отлично располагают для пространных рассуждений о рынке и жизни, а я это, можно сказать, увидел наглядно. В общем, наблюдения не что-то гениальное, мной открытое, не грааль, но я это наблюдаю.
Что я делаю:
Играюсь с моделями ML, играюсь гипер-параметрами – параметрами самих моделей непосредственно и моими какими-то входящими параметрами. Смотрю как меняются результаты в зависимости от этих параметров.
Что я увидел:
Начинающие (да и не только) инвесторы часто задаются вопросом о том, как отобрать для себя идеальное соотношение активов входящих в портфель. Часто (или не очень, но знаю про двух точно) у некоторых брокеров эту функцию выполняет торговый робот. Но заложенные в них алгоритмы не раскрываются.
В этом посте будет рассмотрено то, как оптимизировать портфель при помощи Python и симуляции Монте Карло. Под оптимизацией портфеля понимается такое соотношение весов, которое будет удовлетворять одному из условий:
Для расчета возьмем девять акций, которые рекомендовал торговый робот одного из брокеров на начало января 2020 года и так же он устанавливал по ним оптимальные веса в портфеле: 'ATVI','BA','CNP','CMA', 'STZ','GPN','MPC','NEM' и 'PKI'. Для анализа будет взяты данные по акциям за последние три года.
#Загружаем библиотеки import pandas as pd import yfinance as yf import numpy as np import matplotlib.pyplot as plt # Получаем данные по акциям ticker = ['ATVI','BA','CNP','CMA', 'STZ','GPN','MPC','NEM', 'PKI'] stock = yf.download(ticker,'2017-01-01', '2019-01-31')
После всех вычислений, приведенных в этой и этой публикациях, можно углубиться в статистический анализ и рассмотреть метод наименьших квадратов. Для этой цели используется библиотека statsmodels, которая позволяет пользователям исследовать данные, оценивать статистические модели и выполнять статистические тесты. За основу были взяты эта статья и эта статья. Само описание используемой функции на английском доступно по следующей ссылке.
Сначала немного теории:
О линейной регрессии
Линейная регрессия используется в качестве прогнозирующей модели, когда предполагается линейная зависимость между зависимой переменной (переменная, которую мы пытаемся предсказать) и независимой переменной (переменная и/или переменные, используемые для предсказания).