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

по

Как слать сообщения в телеграм из питона в три строчки

Удобно когда бот шлёт сообщения в телеграм, а не в лог файл. Как это можно сделать в python? Очень просто.

Как слать сообщения в телеграм из питона в три строчки

Шаг 1. Устанавливаем либу loguru. Вам же нужно логирование в боте? Через loguru настраивается парой строчек.
Шаг 2. Устанавливаем либу notifiers которая шлёт сообщения куда угодно тоже парой строчек.
Шаг 3. Настраиваем

# подключаем либы
from loguru import logger
from notifiers.logging import NotificationHandler

# прописываем параметры телеграм бота, от чьего имени и куда слать, где их взять думаю сами разберетесь
params = {
    'token': 'dfdfsfasdfljsahdfkljhasdfklj',
    'chat_id': 'dfkdsflksdjfls;kfjas;ldkf'
}
tg_handler = NotificationHandler("telegram", defaults=params)

# добавляем в logger правило, что все логи уровня info и выше отсылаются в телегу
logger.add(tg_handler, level="INFO")

Я у себя настроил уровень info. Использую его как раз для сообщений в телегу. А вот debug сообщения в телегу уже не приходят. Нечего эфир засорять. Подробнее про уровни логов можно почитать в справке docs.python.org/3/library/logging.html#logging-levels

Шаг 4. Отправляем сообщение
logger.info("Слава роботам! Убить всех человеков!")

Если не нужны логи, можно слать просто через notifiers.

Крик души

    • 13 мая 2021, 20:36
    • |
    • хм
      Популярный автор
  • Еще



По поводу инвестиции
, родственник спрашивал куда инвестировать деньги. При этом ему 25 лет, з/п около 30 тыс.

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

На мой взгляд идиотизм, инвестировать есть смысл только легкие деньги.

Например, сейчас я пытаюсь спасти свои капитал от инфляции, т.е приходится инвестировать, придумывать новые схемы, рисковать. При этом капитал легкий, мне его тупо подарили банки на 12-27% вкладах и мне сейчас уже не очень хочется ни рисковать, ни инвестировать. Да и в целом, я все эти инвестиции расцениваю как лохотрон 21 века.

При этом, я на текущий момент держу небольшой портфель акции и поймал рост от апреля 20 года. Вот это именно легкие деньги. Халява.

Тяжелые деньги, есть смысл вкладывать в себя, ибо

1. С большим шансом к пенсии инфляция сожрет все накопления.

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

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

Легальный вывод средств от продажи криптовалют

Всем привет,
в интернете масса советов, как обналичить средства, вырученные от продажи криптовалют. Но почему-то среди них нет ни одного абсолютно легального. Мне не очень понятно, все эти механизмы нужны, чтобы не платить налога 13% или потому что такой доход в принципе невозможно легально вывести? Вроде в нашей стране криптовалюты не запрещены.
Допустим, на мой счет в Сбербанке хлопнется 50К долл с какой-нибудь криптоплощадки. Кто-нибудь знает что будет дальше? 
Меня спросят скорее всего про происхождение средств. Я честно скажу, что вот, продал Биткоин, купленный 5 лет назад.
Что будет дальше? Деньги заблокируют/конфискуют? Вернут отправителю? Скажут, окей парень, нет проблем, мы как налоговый агент удержим 13%, а остальным пользуйся на здоровье?

Потерял 15 миллионов на ковиде

История о неудачных плечах

Я тут читал в начале года хорошие отчеты о положительных результатах местных инвесторов и трейдеров. О том как Татарин купил дом в Бавлах. Как Василий заработал 25 миллионов за 15 лет. Прямо любо-дорого смотреть. Но есть и обратная сторона фонды и такими историями тоже нужно делиться.

Есть такое выражение «Папа не шорти», не знаю, есть ли аналогичное для плечей, но в прошлом году я хорошо прогорел именно на них.

Дело было так. Был я buy and hold инвестором, просто покупал вдолгую на несколько лет какие-то акции. Сначала без плечей. Потом увидел, что можно покупать с 5x плечами и якобы прибыль тоже будет 5x. И когда в 2018-19 годах происходили сильные просадки в голубых фишках, я стал покупать их с плечами. Например, когда Америка объявляла санкции и Сбербанк проседал на 20% или депутат Пидорелкин вводил свои инициативы против Яндекса, и он падал почти на 30%. Два года тема отлично работала, всё росло. Прибыль у меня рисовалась по 60-80% в год, при этом я не торговал, а раза три в год закупался и всё. Я думал я крутой чел, прибывал в эйфории.

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

Уоррен Баффетт об инфляции в США

Эта раскадровка небольшого (но интересного) отрывка годового собрания Berkshire Hathaway, которое прошло 01.05.2021 и продлилось 3 часа 50 минут. В этом отрывке Уоррен отвечает на вопрос от рядового инвестора Криса Фрида из Филадельфии.

Уоррен Баффетт об инфляции в США

Уоррен Баффетт об инфляции в США

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

Доходность крупнейших 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.



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

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