Избранное трейдера dusheska
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). Получается,
Хотя на первый взгляд ETF кажутся довольно простыми, эти ценные бумаги могут быть довольно сложными.
Чтобы получить максимальную отдачу от ETF, инвесторам необходимо много знать о структуре,
возможностях и ограничениях этих ценных бумаг.
1.«Дивидендные ETF» не всегда приносят большие дивиденды
Многие инвесторы восприняли ETF как эффективные инструменты для реализации стратегии инвестирования, ориентированной на дивиденды;
Обертка, торгуемая на бирже, обеспечивает дешевую и низкую в обслуживании реализацию экрана дивидендов на основе правил.
Благодаря тому, что инвесторам доступны десятки ETF, ориентированных на дивиденды, у покупателей нет недостатка в выборе.
Важно отметить, что не все «дивидендные ETF» предлагают значительную дивидендную доходность, в основном в результате того, как эти дивидендные ETF создаются и обслуживаются.
Многие ETF, ориентированные на дивиденды, ставят во главу
угла последовательность выплат, а не величину дивидендной доходности
.
Например,
ETF Vanguard Dividend Appreciation (VIG) включает только компании, которые увеличивали свои дивиденды не менее десяти лет подряд.
Таким образом, компании-производители компонентов могут иметь мизерную дивидендную доходность до тех пор, пока абсолютные выплаты в долларах неуклонно растут.
В этом подходе нет ничего плохого, но он может не подходить тем, кто хочет максимизировать текущую прибыль.
Прежде чем приступить к делу, важно заглянуть под капот и полностью понять цель инвестиций.
Практический результат:
Доброго всем здоровья и веселого праздника!
В этом топике я покажу как на Питоне можно извлекать полезную информацию из обычного текста и представлять ее на графиках. Большинство аудитории Смартлаба знают Романа Андреева (2 место по рейтингу, после Создателя) как профессионального трейдера, рекомендациями которого пользуются многие смартлабовцы. Ежедневный утренний топик «Ситуация на текущий момент», стал уже многолетней традицией, как чашка кофе с круассаном, и по-праву набирает огромное количество лайков. Его рекомендации помогают людям не только сохранить свой капитал, но и приумножить его. Я, к сожалению, лично не знаком с Романом, но давно являюсь его подписчиком. А еще, мне нравятся его стихи!
Спасибо Роману за его труд! Я же, постараюсь добавить «наглядности» рекомендациям с помощью кода на Питоне, как всегда в несколько строк.
Итак, за дело! Топик длинный и н