Избранное трейдера Роман Давыдов
Легко и весело дарить чужое… ;-)
Друзья, есть предложение раз в неделю или около того писать что-нибудь прагматичное и практичное, что можно использовать в реальной жизни. Многие интересуются, какие конкретно кнопки нужно нажимать, чтобы стать ближе к торговым роботам.
Давайте возьмем какого-нибудь простого смертного человека и посмотрим, с какими трудностями он будет сталкиваться и как с этими трудностями будет справляться, какие открытия на своем пути будет делать и куда его любопытство заведет.
Пусть этого человека зовут, например, Вася. И пусть этот Вася будет блондином. Эм… Нет, какой-то неправильный сюжет. Пусть это будет девушка Маша. И вот Маша-то как раз и была блондинкой брюнеткой рыженькой самой обычной девушкой, которая вообще не умела программировать, но очень об этом мечтала всю свою жизнь. В общем, Маше твердо пообещали, что, может, как-нибудь даже и без программирования обойдется. Соврали, наверно.
Имея знания и опыт, можно рассчитать инвестиционный риск, и понять финансовое состояние предприятия. Также можно попытаться понять когда конторе придёт дефолт. Расчёты займут много времени и усилий, даже при поверхностном анализе. Поэтому, для оценки финансового состояния предприятия и в знак благодарности подписчикам, я написал бесплатную программу ЛИСП-ИР. Кто ещё не знаком с «предсказателем» дефолтов, прочитайте эту статью.
Здравствуйте, юные инвесторы, начинающие и продвинутые. Для своих подписчиков, которые уже успели оценить преимущества «предсказателя» дефолтов ЛИСП-ИР, спешу сообщить, что я усовершенствовал программу и она теперь более придирчиво и более правильно относится к предприятиям, у которых много долгов.
Привет всем. Чтобы не изобретать велосипеды #софты для просмотра структуры портфеля#.
Скачиваем R, RStduio. В RStudio устанавливаем библиотеки: rusquant, PerformanceAnalytics, PerformanceAnalytics.
Добавляем следующий код в RStudio.
Подключаем библиотеки:
library(rusquant) library(PerformanceAnalytics) library(PortfolioAnalytics)
tickers <- c("FXGD","IRAO") weights <- c(.5,.5) start_data <- "2014-01-01" PortPrices <- NULL
for(curr in tickers) { PortPrices <- cbind(PortPrices, getSymbols(curr, src = 'Finam', auto.assign = FALSE)[,4]) }
benchmark <- getSymbols("MICEX", src = "Finam", auto.assign = FALSE)[,4] benchmarkRet <- na.omit(ROC(benchmark))Тоже самое для портфеля акций, плюс считаем портфель и включаем ребалансировку каждый месяц.
PortReturn <- na.omit(ROC(PortPrices)) PortRet <- Return.portfolio(PortReturn, weights = weights, rebalance_on = "month")
PortCum <- cumsum(PortRet) Micex <- cumsum(benchmarkRet)
Приветствую! Напишу о том, как найти облигации, какие выбрать, как анализировать и купить.
Последний пост про рост инфляции заставил многих задуматься о том, как защитить деньги от обесценения, приумножить их в долгосрочном периоде и в то же время не влезать в переоцененные акции.
Многие просили написать про облигации. Я полностью согласен с тем, что облигации в текущих условиях оптимальный вариант инвестирования свободных денег. Поэтому по этим просьбам решил написать об этом инструменте.
Облигации играют важную роль в портфеле. У меня в портфелях они составляют 45% активов. В первую очередь, это ликвидный запас денег на случай снижения рынка акций. Во-вторых, это инструмент с понятной и стабильной доходностью в отличие от акций. Многие помнят, что я увеличиваю инвестиции в акции, когда рынок падает, поэтому в такие периоды облигационный резерв выступает источником покупки акций.
Проще говоря, когда рынок растет, я увеличиваю резерв из облигаций и покупаю акции на минимум. Когда рынок падает, я увеличиваю покупки акций и сокращаю облигационный резерв.
Для анализа будем использовать данные ETF c базовой валютой USD: FXCN, FXRL, FXIT, FXUS и FXRU. Временной ряд рассмотрим за три года с 2018 по 2020 года. Само исследование проведем в Google Colaboratory.
Как обычно в начале импортируем все необходимые библиотеки для дальнейшей работы.
import pandas as pd import numpy as np import matplotlib.pyplot as plt from google.colab import files import warnings warnings.filterwarnings("ignore")Сначала необходимо получить данные. Есть несколько способов. Мы воспользовались — взяли их с Finam в формате csv. Дальше написал функцию для обработки полученных данных и при помощи concat свел их в один датафрейм.
def changeDF(df): df['date'] = pd.to_datetime(df['<DATE>'].astype(str), dayfirst=True) name =[x for x in globals() if globals()[x] is df][0] df = df.drop(['<DATE>','<TIME>', '<OPEN>', '<HIGH>', '<LOW>'], axis=1) df = df.set_index(['date']) df.columns = [name+'_cl', name + '_vol'] return df fxgd_change = changeDF(fxgd) fxrl_change = changeDF(fxrl) fxit_change = changeDF(fxit) fxus_change = changeDF(fxus) fxru_change = changeDF(fxru) fxcn_change = changeDF(fxcn) etf = pd.concat([fxgd_change, fxrl_change, fxit_change, fxus_change, fxru_change, fxcn_change], axis=1) etf.head()В результате получили:
Если вы используете стратегии в трейдингвью, например чтобы быстро накидать прототип идеи из какого нибудь источника и посмотреть её, то у вас наверняка также появлялся вопрос поиска приемлемых параметров и проверка как они влияют на стратегию. Делать это вручную крайне трудозатратно. Простейшая стратегия двух скользящих средних может давать 400 и более вариантов параметров. А любое увеличение кол-ва параметров и диапазона их значений приводит к необходимости перебора значений растущих в геометрической прогрессии. Например стратегия из 5 параметров по 15 значений дает 15 ^ 5 = 759 375 вариантов. Подобрать их руками, когда один вариант вычисляется пару секунд не реально.
А можно ли автоматизировать этот процесс? Ниже описание решения через расширение для браузера на основе Chrome.
В прошлый раз я публиковал статью, в которой говорил об ассистенте для