Избранное трейдера Виктор Бавин
• 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%
# -*- 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можно скачать с сайта ЦБ.
Уоррен Баффетт является основателем и бессменным (хоть и с недавних пор только номинальным) лидером промышленно-страхового гиганта 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% в РФ.
Какие плечи (Леверидж)при торговле акциями в США.
Три типа аккаунта и их условия.
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
И такое ощущение, что уже все случилось
Объемы какашечные...
СПБ кухня биржа торгует само с собой
Привет, в этот раз будет общий пост про полезные источники в сети, где можно бесплатно взять данные, примеры кода и другие полезные вещи.
Более направленные подборки по идеям можно посмотреть здесь https://smart-lab.ru/blog/628709.php, а по книгам здесь https://smart-lab.ru/blog/681121.php
Биржевые данные:
Биржевые:
Всем доброго дня.
Друзья, сразу приношу извинения, кому не отвечаю – одна причина, это огромная загрузка по подготовке деклараций 3-НДФЛ.
Много раз говорила и писала уже, если кто из вас не успевает в срок отчитаться, например, зарубежный брокер и нет возможности подготовить полный расчет в срок, подайте нулевую декларацию первичную до 30 апреля. В мае спокойно все подготовите и подадите уже корректировку.
Допустим, у вас есть IB – там у вас были сделки с акциями и получены дивиденды. Ну покажите один дивиденд и сумму налога по нему и все. В мае доделываете расчет и подаете уже полную корректировку. Законная и грамотная процедура, все в рамках НК РФ.
Почему пишу об этом – каждый день идет «тонна» вопросов по срокам, успеваем или нет. Друзья, успеваем, все можно успеть сделать. Главное, это подать корректировку до 15 июля, когда окончательную сумму налога платить надо.