Избранное трейдера dusheska

Пришло время отчитаться о полученных дивидендах по акциям иностранных компаний и ГДР. Необходимо заплатить налог и сдать налоговую декларацию физических лиц (3-НДФЛ). Сделать это просто. Займет 10-20 минут. Проследуем вместе шаг за шагом.
Поехали:
1. Нам нужен «Отчет о выплате доходов по ценным бумагам иностранных эмитентов». Заказываем у брокера или сразу скачиваем. Например, тинькофф предоставляет данную справку автоматически.
2. Открываем личный кабинет налогоплательщика вот ссылка
from websocket import create_connection
import json
import random
import string
import re
import pandas as pd
import csv
from datetime import datetime
from time import sleep
def filter_raw_message(text):
try:
found = re.search('"m":"(.+?)",', text).group(1)
found2 = re.search('"p":(.+?"}"])}', text).group(1)
print(found)
print(found2)
return found1, found2
except AttributeError:
print("error")
def generateSession():
stringLength=12
letters = string.ascii_lowercase
random_string= ''.join(random.choice(letters) for i in range(stringLength))
return "qs_" +random_string
def generateChartSession():
stringLength=12
letters = string.ascii_lowercase
random_string= ''.join(random.choice(letters) for i in range(stringLength))
return "cs_" +random_string
def prependHeader(st):
return "~m~" + str(len(st)) + "~m~" + st
def constructMessage(func, paramList):
#json_mylist = json.dumps(mylist, separators=(',', ':'))
return json.dumps({
"m":func,
"p":paramList
}, separators=(',', ':'))
def createMessage(func, paramList):
return prependHeader(constructMessage(func, paramList))
def sendRawMessage(ws, message):
ws.send(prependHeader(message))
def sendMessage(ws, func, args):
ws.send(createMessage(func, args))
def generate_csv(a):
out= re.search('"s":\[(.+?)\}\]', a).group(1)
x=out.split(',{\"')
with open('data_file.csv', mode='w', newline='') as data_file:
employee_writer = csv.writer(data_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
employee_writer.writerow(['index', 'date', 'open', 'high', 'low', 'close', 'volume'])
for xi in x:
xi= re.split('\[|:|,|\]', xi)
print(xi)
ind= int(xi[1])
ts= datetime.fromtimestamp(float(xi[4])).strftime("%Y/%m/%d, %H:%M:%S")
employee_writer.writerow([ind, ts, float(xi[5]), float(xi[6]), float(xi[7]), float(xi[8]), float(xi[9])])
# Initialize the headers needed for the websocket connection
headers = json.dumps({
# 'Connection': 'upgrade',
# 'Host': 'data.tradingview.com',
'Origin': 'https://data.tradingview.com'
# 'Cache-Control': 'no-cache',
# 'Upgrade': 'websocket',
# 'Sec-WebSocket-Extensions': 'permessage-deflate; client_max_window_bits',
# 'Sec-WebSocket-Key': '2C08Ri6FwFQw2p4198F/TA==',
# 'Sec-WebSocket-Version': '13',
# 'User-Agent': 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36 Edg/83.0.478.56',
# 'Pragma': 'no-cache',
# 'Upgrade': 'websocket'
})
# Then create a connection to the tunnel
ws = create_connection(
'wss://data.tradingview.com/socket.io/websocket',headers=headers)
session= generateSession()
print("session generated {}".format(session))
chart_session= generateChartSession()
print("chart_session generated {}".format(chart_session))
# Then send a message through the tunnel
sendMessage(ws, "set_auth_token", ["unauthorized_user_token"])
sendMessage(ws, "chart_create_session", [chart_session, ""])
sendMessage(ws, "quote_create_session", [session])
sendMessage(ws,"quote_set_fields", [session,"ch","chp","current_session","description","local_description","language","exchange","fractional","is_tradable","lp","lp_time","minmov","minmove2","original_name","pricescale","pro_name","short_name","type","update_mode","volume","currency_code","rchp","rtc"])
sendMessage(ws, "quote_add_symbols",[session, "BINANCE:BTCUSDT", {"flags":['force_permission']}])
sendMessage(ws, "resolve_symbol", [chart_session, "symbol_1","={\"symbol\":\"BINANCE:BTCUSDT\",\"adjustment\":\"splits\"}"])
sendMessage(ws, "create_series", [chart_session,"s1","s1","symbol_1","1",300])
sendMessage(ws, "quote_fast_symbols", [session,"BINANCE:BTCUSDT"])
sendMessage(ws, "create_study", [chart_session,"st1","st1","s1","Volume@tv-basicstudies-118",{"length":20,"col_prev_close":"false"}])
sendMessage(ws, "quote_hibernate_all", [session])
#st='~m~140~m~{"m":"resolve_symbol","p":}'
#p1, p2 = filter_raw_message(st)
#sendMessage(ws, "resolve_symbol", [chart_session,"symbol_1","={\"symbol\":\"BINANCE:BTCUSDT\",\"adjustment\":\"splits\",\"session\":\"extended\"}"])
#sendMessage(ws, "create_series", [chart_session, "s1", "s1", "symbol_1", "1", 2])
#sendMessage(ws, "create_study", [chart_session,"st4","st1","s1","ESD@tv-scripting-101!",{"text":"BNEhyMp2zcJFvntl+CdKjA==_DkJH8pNTUOoUT2BnMT6NHSuLIuKni9D9SDMm1UOm/vLtzAhPVypsvWlzDDenSfeyoFHLhX7G61HDlNHwqt/czTEwncKBDNi1b3fj26V54CkMKtrI21tXW7OQD/OSYxxd6SzPtFwiCVAoPbF2Y1lBIg/YE9nGDkr6jeDdPwF0d2bC+yN8lhBm03WYMOyrr6wFST+P/38BoSeZvMXI1Xfw84rnntV9+MDVxV8L19OE/0K/NBRvYpxgWMGCqH79/sHMrCsF6uOpIIgF8bEVQFGBKDSxbNa0nc+npqK5vPdHwvQuy5XuMnGIqsjR4sIMml2lJGi/XqzfU/L9Wj9xfuNNB2ty5PhxgzWiJU1Z1JTzsDsth2PyP29q8a91MQrmpZ9GwHnJdLjbzUv3vbOm9R4/u9K2lwhcBrqrLsj/VfVWMSBP","pineId":"TV_SPLITS","pineVersion":"8.0"}])
# Printing all the result
a=""
while True:
try:
sleep(1)
result = ws.recv()
pattern = re.compile("~m~\d+~m~~h~\d+$")
if pattern.match(result):
ws.recv()
ws.send(result)
print("\n\n\n hhhhhhhhhhhhhhhhhhhhhh "+ str(result) + "\n\n")
print(result)
a=a+result+"\n"
except Exception as e:
print(e)
break
generate_csv(a)'https://github.com/rushic24/tradingview-scraper'Налоги — штука полезная для общества, но коварная для несведущего инвестора.
Случаются такие парадоксальные ситуации. Инвестору вдруг понадобились деньги. Решил их вывести с брокерского счета, благо торгует успешно, есть прибыль. Но ожидая вывести одну сумму, получает намного меньшую. Вплоть до того, что она будет стремиться к нулю. Инвестору кажется, что налог съел всю прибыль. Как же так?
Все дело в расчетах налога при выводе денежных средств с брокерского счета.
Когда вы снимаете деньги со своего брокерского счета, брокер рассчитывает ваш финансовый результат и удерживает налог, который потом перечисляет в бюджет.
Если сумма налога от финансового результата по сравнению с суммой вывода:
Не понятно? Давайте на примерах.
1️⃣ Допустим, инвестору приспичило вывести 100 000 рублей с брокерского счета. Весь год он успешно торговал. Прибыль по сумме всех операций составила 700 000 рублей. Тогда при выводе средств будет начислен налог (13%) — 91 000 рублей. В итоге инвестору капнет на счет всего 9 000 рублей 😳.

Доброго времени суток, коллеги!
Сегодня в своей статье я опишу крайне важную и объемную тему, с которой рекомендую ознакомиться всем.
Покажу на примере Interactive Brokers.
У других брокеров аналогичная схема.
Итак, начнем
В статье будет идти повествование по налогообложению резидентов. Данная информация поможет Вам ориентироваться на рынке ценных бумаг. Информация будет полезной, как инвесторам, так и спекулянтам.
Кто признается налоговым резидентом: признаются граждане РФ, иностранные граждане, лица без гражданства, если они находится на территории РФ более 183 календарных дней в течение 12 следующих подряд месяцев. Период нахождения физического лица в Российской Федерации не прерывается на периоды выезда физического лица за пределы Российской Федерации для краткосрочного (менее шести месяцев) лечения или обучения, а также для исполнения трудовых или иных обязанностей, связанных с выполнением работ (оказанием услуг) на морских месторождениях углеводородного сырья. И другие.
Покажу подробно, шаг за шагом.
Инструкция, про первичный перевод денег с вашего счета в российском банке на счет Interactive Brokers. Она для тех инвесторов и трейдеров, которые планируют инвестировать через зарубежного брокера, в частности через «Интерактив Брокерс».
Важно сделать первый перевод.
И сохранить реквизиты в личном кабинете.
Далее,
покажу подробно на примерах.
Главное, первый перевод, потому что последующие переводы
делаются элементарно с помощью шаблона в личном кабинете банка, просто нажатием кнопки.
Смотрите внимательно и дочитайте пост до конца. Есть нюансы.
То комиссия равна нулю.
Обменивать рубли на доллары и другие валюты.
Значительно выгоднее. Чем в любых обменниках и банках в РФ.
При наличии табличных данных по выплатам за год у вас уйдёт 5-10 минут на заполнение 3-НДФЛ по иностранным дивидендам с любым количеством этих самых выплат. В общем я замутил в Google таблицах Приложение к декларации 3-НДФЛ, которое само всё считает и которое можно сохранить в pdf и отправить в налоговую. Вот делюсь с вами)
Здесь я не буду подробно останавливаться на обязанности доплаты НДФЛ по полученным дивидендам от иностранных компаний. Ограничимся фактом, что обязанность такая есть: большинство торгующихся на СПб бирже компаний зарегистрированы в США, и если вы подписали форму W8-BEN, то с вас удержат 10% налога по ставке США (кроме акций REIT). Получается,
