Избранное трейдера Виктор Бавин

по

Доходность крупнейших ETF, инвестирующих в индустриальные металлы

Доходность крупнейших ETF, инвестирующих в индустриальные металлы

• Invesco DB Base Metals Fund (DBB): Инвестирует в корзину металлов, включающую медь, цинк, алюминий
• United States Copper Index Fund (CPER): Инвестирует 100% средств в медь
• iPath Series B Bloomberg Copper Subindex Total Return ETN (JJC): Инвестирует 100% средств в медь
• iPath Series B Bloomberg Nickel Subindex Total Return ETN (JJN): Инвестирует 100% средств в никель
• iPath Series B Bloomberg Industrial Metals Subindex Total Return ETN (JJM): Инвестирует в корзину металлов, включающую медь, цинк, алюминий

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

Доходность (годовая волатильность) ETF с начала 2020 года:

• DBB +33.25% (18.61%)
• CPER +56.39% (25.03%)
• JJC +55.00% (27.12%)
• JJN +15.02% (28.37%)
• JJM +33.53% (19.55%)

Доходность ETF с начала 2021 года:

• DBB 16.76%
• CPER 25.80%
• JJC 25.84%
• JJN -0.58%
• JJM 15.58%


InterActiveBrokers, дивиденды: готовим данные для налоговой декларации 3НДФЛ

Осталось всего несколько дней, чтобы подать налоговую декларацию.
Для тех счастливчиков, кто получал дивиденды через InterActiveBrokers и немного знаком с Python, выкладываю несколько строк кода, который приведет (почти) данные из Activity-Annual этого брокера в вид, дружелюбный для переноса в российскую декларацию.
# -*- coding: utf-16 -*-
import os
import pandas as pd
import xml.etree.ElementTree as et
import lxml.html as lh
import numpy as np
#%%
path_curencies_rates = os.path.join('..//', 'Market_Data')# folder where data is kept

# RUB against USD and EUR
rub_USD_2020 = 'USD_RUB_exchange_rate_20200101-20201231.xlsx'
rub_EUR_2020 = 'EUR_RUB_exchange_rate_20200101-20201231.xlsx'
# dataframe where indicies are dates of 2020 and columns are rates RUB_USD and RUB_EUR
# all dates of 2020
dates = pd.date_range(start='1/1/2020', end='12/31/2020')
rub_currencies_rates = pd.DataFrame(index=dates, columns=['EUR', 'USD'])
# USD
df_rub_USD_CBRF = pd.read_excel(os.path.join(path_curencies_rates, rub_USD_2020), index_col=1)
df_rub_USD_CBRF = df_rub_USD_CBRF[['curs']]
# EUR
df_rub_EUR_CBRF = pd.read_excel(os.path.join(path_curencies_rates, rub_EUR_2020), index_col=1)
df_rub_EUR_CBRF = df_rub_EUR_CBRF[['curs']]

rub_currencies_rates.USD = df_rub_USD_CBRF.curs
rub_currencies_rates.EUR = df_rub_EUR_CBRF.curs

# fill empty dates
rub_currencies_rates.EUR = pd.DataFrame.ffill(rub_currencies_rates.EUR)
rub_currencies_rates.USD = pd.DataFrame.ffill(rub_currencies_rates.USD)
<br /><br />#%%
annual_activity_statement = 'Activity-Annual_2020_2020.htm' 
table_name = 'Dividends' # table that contains dividends only
report_full = lh.parse(annual_activity_statement)
parent = report_full.xpath(".//div[contains(text(), '{}')]".format(table_name))[0].getnext()
element = parent.getchildren()[0].getchildren()[0]
html = et.tostring(element)
div_df = pd.read_html(html)[0]
div_df.Amount = pd.to_numeric(div_df.Amount, errors='coerce')
div_df.Date = pd.to_datetime(div_df.Date, errors='coerce').dt.date
div_df = div_df.dropna(subset=['Date'])
div_df = div_df[div_df.Amount.notnull()]

# If nominated in EUR, taxation was NOT applyed 
div_df['Currency'] = np.where(div_df.Description.str.contains('EUR'), 'EUR', 'USD')

div_df['Taxes_paid'] = np.where(div_df.Description.str.contains('EUR'), 0, (div_df.Amount*0.1).round(decimals=2))

eur_rub_dict = rub_currencies_rates.EUR.to_dict()
usd_rub_dict = rub_currencies_rates.USD.to_dict()
# eur_rub_dict
div_EUR = div_df[div_df.Currency=='EUR']
div_EUR['rate_RUB'] = div_EUR['Date'].map(eur_rub_dict)

div_USD = div_df[div_df.Currency=='USD']
div_USD['rate_RUB'] = 0
div_USD['rate_RUB'] = div_USD['Date'].map(usd_rub_dict)#rub_currencies_rates.USD

div_total = pd.concat([div_EUR, div_USD], axis=0)

div_total['RUS_tax'] = div_total.Amount * 0.13
div_total['Taxes_TO_pay'] = ((div_total.RUS_tax - div_total.Taxes_paid) * div_total.rate_RUB).round(decimals=2)

div_total.Taxes_TO_pay.sum().round(decimals=1)

div_total.Description = div_total.Description.str.split(' Cash').str[0]

for i, d in div_total.Date.iteritems():
    ds = d.strftime('%d.%m.%Y')
    div_total.at[i, 'Date'] = ds

#%%
# To fill in field `'ОКСМ'` of Rus Tax Form ISIN will be used, 
# it consists of two alphabetic characters, which are the ISO 3166-1 alpha-2 code for the issuing country. 
# DataBase is `'country_ISO_codes.csv'`
country_codes = pd.read_csv('country_ISO_codes.csv')
country_codes = dict(zip(country_codes['alpha-2'], country_codes['country-code']))

def assign_country_code(name, country_codes):
    '''
    Returns a country numeric ICO code.
    Two first symbols of ISIN represent Country ISO-3166 Alpha Code.
    Parameters:
        name : string, field Description from IBKR report;
        country_codes : dictionary, keys are ISO Alpha Codes, values are corresponding ISO Num Codes.
        
    '''
    if '(' and ')' in name:
        start = name.find('(') + 1
        end = name.find(')')
        isin = name[start : end]
        country_Alpha_code = isin[0:2]
        try:
            country_Num_code = country_codes[country_Alpha_code]
        except Exception as e:
            country_Num_code = name
        
        return country_Num_code
    
    return name

div_total['Country_Num_Code'] = div_total['Description'].apply(assign_country_code, country_codes=country_codes)

#%%
# get all attributes of Rus Tax Form as a list
path_to_form = 'Tax_form_2020_draft_20210419.xml'
tree = et.parse(path_to_form)
root = tree.getroot()
for el in root.iter('ДоходИстИно'):
    for child in el[0:1]:
        attributes_Rus_Tax_Form = list(child.attrib.keys())

# DataFrame Rus Tax Form with indices from div_total
df_rus_tax_form = pd.DataFrame(index=div_total.index, columns=attributes_Rus_Tax_Form)
# fill all fields in with data from corresponing columns
# do some calculations as well
df_rus_tax_form['ОКСМ'] = div_total.Country_Num_Code
df_rus_tax_form['НаимИстДох'] = div_total.Description
df_rus_tax_form['КодВалют'] = np.where(div_total.Currency=='EUR', '978', '840')
df_rus_tax_form['КодВидДох'] = '22' # check it out
df_rus_tax_form['КурсВалютДох'] = div_total.rate_RUB
df_rus_tax_form['ДатаДох'] = div_total.Date
df_rus_tax_form['ДатаУплНал'] = div_total.Date
df_rus_tax_form['ДоходИноВал'] = div_total.Amount
df_rus_tax_form['ДоходИноРуб'] = (df_rus_tax_form['ДоходИноВал'] * df_rus_tax_form['КурсВалютДох']).round(decimals=2)
df_rus_tax_form['КурсВалютНал'] = div_total.rate_RUB
df_rus_tax_form['НалУплИноВал'] = div_total.Taxes_paid
df_rus_tax_form['НалУплИноРуб'] = (df_rus_tax_form['НалУплИноВал'] * df_rus_tax_form['КурсВалютДох']).round(decimals=2)
df_rus_tax_form['НалЗачРФОбщ'] = (df_rus_tax_form['ДоходИноРуб'] * 0.13).astype(int)
df_rus_tax_form['НалогЗачРФОбщ'] = df_rus_tax_form['НалУплИноРуб'].astype(int)

# all data in a xml-object should be str
form_to_export = df_rus_tax_form.applymap(str)

# create a root
income_abroad = et.Element('ДоходИстИно')
tree = et.ElementTree(income_abroad)

# add children with a relevant tag 
# each child has attributes that is a dict representing a row from DataFrame
for i, r in form_to_export.iterrows():
    d = r.to_dict()
    et.SubElement(income_abroad, tag='РасчДохНалИно', attrib=d)    

tree.write('rus_tax_form_experiment.xml', encoding='WINDOWS-1251')


Файлы 
USD_RUB_exchange_rate_20200101-20201231.xlsx
EUR_RUB_exchange_rate_20200101-20201231.xlsx
можно скачать с сайта ЦБ.
Tax_form_2020_draft_20210419.xml — моя 3-НДФЛ, сохраненная из налогового личного кабинета. 
country_ISO_codes.csv — коды стран, файлом могу поделиться.

За критику и правки буду благодарен.

Где живёт Уоррен Баффетт - миллиардер, #6 списка Forbes с состоянием $102 млрд. "Дворец" миллиардера

Как вы себе представляете жильё одного из богатейших людей планеты, занимающего шестую строчку богатейших людей планеты, состояние которого превышает сегодня 100 миллиардов долларов?
Где живёт Уоррен Баффетт - миллиардер, #6 списка Forbes с состоянием $102 млрд. "Дворец" миллиардера

Уоррен Баффетт является основателем и бессменным (хоть и с недавних пор только номинальным) лидером промышленно-страхового гиганта Berkshire Hathaway.

Его корпорация похожа на лоскутное одеяло: она состоит из сотен компаний, которые были присоединены к Berkshire на протяжении длинной истории. Компании, являющиеся «лоскутами» этого одеяла занимаются примерно всем, что вы можете себе представить: страхованием авто, промышленных объектов и недвижимости, производством химических жидкостей (Lubrizol), самолетных турбин (Precision Castparts), батареек (Duracell), домов на колесах (Forest River), шоколадных конфет (See's Candies). Помимо прочего, у компании одна из самых протяженных сетей железных дорог в США (BNSF), огромная сеть электростанций — от ветряков до атомных (BHE), газопроводы, дальнобои (McLane) сети мотелей и заправок (Pilot), фирма по прокату бизнес-джетов (NetJets) и многое другое.



( Читать дальше )

Топ вопросов по налогам при торговле через зарубежных брокеров

Топ  вопросов по налогам при торговле через зарубежных брокеров

Топ  вопросов по налогам при торговле через зарубежных брокеров

1.      Где платить налог, в России или в США ?

Налог мы платим в России. США удерживает только проценты по дивидендом, а по остальным активам мы платим в России, так как мы резидент РФ

2.      За какой промежуток подаются налоги ?

Всегда подаем за прошлый год. В 2021 подаем за 2020. В 2022 мы будем подавать за 2021 и т.д

3.      Сколько нужно платить налога по акциям

В РФ это всегда 13% с прибыли

4.      Сколько нужно доплачивать по дивидендам?

Тут все зависит от того, сколько процентов удержало государство в котором находится компания. В США чаще всего взымают 10% изредко 30%.

Вся информация по тому, сколько с вас удержали процента по дивидендом указана в годовом отчете брокера. Для примера: с акции Эпл США удержали 10% и вам останется доплатить 3% в РФ.



( Читать дальше )

Актуальное Interactive Brokers

Какие плечи  (Леверидж)при торговле акциями в США.
Три типа аккаунта и их  условия.

 

3 типа аккаунта:

1.Reg-T маржин

2. портфолио маржин

3. Простой КЕШ-аккаунт 

 

Леверидж -  они же плечи (далее по тексту)

Информация по акциям (Плечи и леверидж), как там, что происходит.

 Далее, механизмы и примеры.

 

Акции, плечи — Леверидж. В  Interactive Brokers  — есть два типа аккаунтов для МАРЖИ.

Это Reg-T маржин и портфолио маржин.

------------------------------------------------------------------------------------------------------------------------------------------

Reg-T маржин —  это маржа дает аккаунту  плечи от 1-4 го.

Стандартилизовано.

В течение дня — плечо на акции от 1- 4х. Это – тип Reg-T маржин.

 

Пример:

Если у Вас есть $ 1 000 000, то вы можете купить акции на $ 4 000 000.



( Читать дальше )

Нас ждет смена приоритетов на рынке

Традиционно на рынках есть 3 класса отраслей: циклические, растущие и защитные.

— Растущие актуальны почти всегда. Но в них, опять же, всегда вопрос цены (насколько быстро растут vs процентные ставки, по которым дисконтируешь будущие успехи) — к примеру, сейчас доходности Treasuries и ОФЗ растут, что немного мешает акциям роста.

— Циклические (стройка, банки, сырье, товары не первой необходимости luxury, спорт, авто, fashion) наиболее подвержены контрасту — в кризисы валятся, а затем взлетают на 50-100% с низкой базы.

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


Сейчас заметно, что с ноября мы увидели рост акций циклических отраслей на 40-100%, и на мой взгляд процесс почти завершился:

1) Нефть выросла ($40 > $65-70), и акциям сектора остается 10-12% до целей. Сталевары и удобрения — также.

2) Банки нарастили ставки, по которым кредитуют, высвободили резервы (нереализованные списания по кредитам), провели гору IPO, SPAC, бондовых займов и заработали на них.



( Читать дальше )

Клиентов российских брокеров могут отрезать от рынка США

Ряд крупных российских брокеров в ближайшее время могут перестать предоставлять клиентам прямой доступ к торговле на американском рынке.

Как сообщает «Банкста», один из крупнейших интернет-брокеров США Interactive Brokers решил больше не работать с российскими брокерскими компаниями.

IB закрыл счета субброкерам из РФ после того, как Россия попала в список стран с определенным уровнем риска, где для брокеров невозможна услуга счета с неполным раскрытием информации о конечном клиенте (так называемая четвертая группа ND), пояснил finanz источник, знакомый с ситуацией источник.

В результате тип счета, когда российский брокер позволяет российскому участнику торговать иностранными инструментам через свой шлюз, не заключая договор с самой IB, больше недоступен. Судьбу каждого клиентского счета, который работал по такой схеме, будут решать субброкер и клиент индивидуально.

www.finanz.ru/novosti/fondy/klientov-rossiyskikh-brokerov-mogut-otrezat-ot-rynka-ssha-1030335674

И такое ощущение, что уже все случилось

Клиентов российских брокеров могут отрезать от рынка США

Объемы какашечные...
СПБ кухня биржа торгует само с собой


Подборка полезных ресурсов без Yahoo Finance и Seeking Alpha: данные, идеи и воспроизводимые исследования

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

Более направленные подборки по идеям можно посмотреть здесь https://smart-lab.ru/blog/628709.php, а по книгам здесь https://smart-lab.ru/blog/681121.php

Биржевые данные:

Биржевые:

  • https://www.quandl.com Quandl. Простой и адекватный API для Python, много бесплатных данных по отдельным биржам. Например, по Гонконгской и Варшавской бирже. Есть данные по сырьевым фьючерсам и другому сырью. Экономическая статистика и альтернативные данные тоже есть в бесплатном варианте. В отличие от других сайтов с котировками и графиками – здесь промышленная выгрузка для исследований;
  • https://stooq.com Stooq. Неожиданно богатый бесплатным контентом локальный сайт (Польша). Большая часть не представляет интереса и можно сразу перейти к большим (для бесплатных) выборкам биржевых данных по США, некоторым европейским и азиатским странам


( Читать дальше )

Как законно продлить срок сдачи декларации 3-НДФЛ

Всем доброго дня.

Друзья, сразу приношу извинения, кому не отвечаю – одна причина, это огромная загрузка по подготовке деклараций 3-НДФЛ.

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

Допустим, у вас есть IB – там у вас были сделки с акциями и получены дивиденды. Ну покажите один дивиденд и сумму налога по нему и все. В мае доделываете расчет и подаете уже полную корректировку. Законная и грамотная процедура, все в рамках НК РФ.

Почему пишу об этом – каждый день идет «тонна» вопросов по срокам, успеваем или нет. Друзья, успеваем, все можно успеть сделать. Главное, это подать корректировку до 15 июля, когда окончательную сумму налога платить надо.


CEO Coinbase продал акций на сумму $292 миллиона

Генеральный директор Брайан Армстронг продал 749 999 акций тремя партиями по цене от 381 до 410,40 доллара за штуку с общей выручкой в 291,8 миллиона долларов, согласно записи. Хотя представитель Coinbase отказался от комментариев из-за того, что компания находится в так называемом «периоде затишья», судя по документам, поданным до листинга, Армстронг продал около 1,5% своей доли.
CEO Coinbase продал акций на сумму $292 миллиона
Когда я читаю такие новости, на меня невольно наваливается депресняк.

Человек на год младше меня, а уже без минуты миллиардер. Почему, как? Что надо делать в своей жизни, по каким неведомым тропам идти, чтобы прийти туда же, куда и он? Невольно начинаешь ловить себя на мысли о никчёмности своего существования. Чтобы я ни делал, как бы ни старался, мне не дотянуться до этих высот. Где я оступился, в какой момент свернул не туда? Родился в стране третьего мира? Учился не в той школе? Родители не дали правильного воспитания? Нет бизнес-жилки? Низкий IQ? А может, вся моя жизнь уже предопределена с рождения?

( Читать дальше )

....все тэги
UPDONW
Новый дизайн