Ce que Tinkoff Investments ne dit pas. Nous extrayons toutes les données du portefeuille via l'API dans un grand tableau Excel

Tinkoff Investments est un courtier russe populaire avec une application client avancée pour les appareils mobiles et les navigateurs. L'application est conçue pour simplifier le processus de négociation et réduire le seuil d'entrée des investissements au minimum afin de capter le plus large public possible.





Cependant, lorsque les investissements deviennent sérieux, l'investisseur a besoin de données précises et détaillées sur son portefeuille, notamment pour évaluer l'efficacité de l'investissement. Et c'est là que surgissent les ambiguïtés avec l'application.





description du problème

Je vais l'envisager en utilisant l'exemple de mon portfolio (pas IIS) dans une application mobile. (À partir de la date de publication, l'application peut être mise à jour).





Sur l'écran principal, nous voyons des significations encourageantes:





J'ai immédiatement des questions ici:





  • Comment ce montant vert et 12,21% a-t-il été calculé? De plus, il y a quelques jours j'avais quelque chose d'environ + 17%, puis j'ai fixé un titre avec un profit, la valeur du portefeuille est restée quasiment inchangée, mais ce «pourcentage total» vert est immédiatement tombé à 12,21.





  • Pour tout le temps - est-ce sur plusieurs années d'investissement? Il y a aussi une option: pour aujourd'hui. Et quel pourcentage ai-je, par exemple, pour un an?





  • Mon portefeuille est presque entièrement composé de titres étrangers et de dollars américains. Comment cela s'est-il traduit en roubles: au taux de change de la Banque centrale ou sur le marché?





  • Combien de ce montant vais-je vraiment avoir après impôts et commissions si je vends tout le portefeuille et que je retire l'argent?





, :





+955 644, 2 ?





, , , .





, .





! -.





. 4 +6,67%, 2020 , +31,41%. , , S&P 500 2020 16,26%. , , . , +12,21% , .. 2019 2018 . , , , .





, , :





  • , ,









  • ,





  • , ,





, , , , . , USD , .





  • , Excel, Excel Google Sheets.





, , . , .





Tinkoff API - , .





, API . , .





API

Open API :





https://tinkoffcreditsystems.github.io/invest-openapi/





SDK: Java, C#, Go, NodeJS.





: Python @daxartio,Python @Awethon, Python @Fatal1ty, PHP, Ruby.





, . , DIY Arduino- WiFi, , WEB- - . .., Arduino Wiring ( C++).





Python, - print('Hello World')



. , , API Python.





.





.





: , API.





, :





  • Python









  • PIP tinvest





, Idle, :





import tinvest







API:





client = tinvest.SyncClient(account_data['my_token'])







my_token API key, .





-, API .





:





positions = client.get_portfolio()



, .





. .





operations = client.get_operations(from_=account_data['start_date'], to=account_data['now_date'])







( ):





course_usd = client.get_market_orderbook(figi='BBG0013HGFT4', depth=20







course_eur = client.get_market_orderbook(figi='BBG0013HJJ31', depth=20)







, , :





currencies = client.get_portfolio_currencies()







print



, :





for pos in positions.payload.positions:







print('name:', pos.name)







print('ticker:', pos.ticker)







print('balance:', pos.balance)







print('currency:', pos.average_position_price.currency)







print('price:', pos.average_position_price.value)







print(' ')







- Excel . XlsxWriter:





https://xlsxwriter.readthedocs.io/





import xlsxwriter







excel . - . , , , / :





ecxelFileName = 'tinkoffReport_' + today + '.xlsx'







workbook = xlsxwriter.Workbook(ecxelFileName)







worksheet = workbook.add_worksheet()







, , , , API, :





, , , , , .





: .





Idle, - : ( !)





NE PAS RÉPÉTER

Python, , , -, .





, , .





Python

, PyCharm.





, PEP8 ( ).





Python : https://www.w3schools.com/





, .





, , . . , , - , , . , , . , https://stackoverflow.com/





3 ( .py) .txt .





main.py - , . , , . API .





data_parser.py - , , .





excel_builder.py - , , main.py .





-

:





(, API):





name -





ticker -





balance -





currency -





ave.price -





exp.yield - ( )





, , , 955 644 (+12,21%) - exp.yield .





, :





market price - (ave.price + exp.yield)





% change - (market_price / ave.price) * 100) - 100)





market value - (market_price * balance)





market value RUB - ( )





ave. % - % change. , . -, .





total value: - ( market value RUB)





, total value 8 782 836, : 8 782 160, --. 0,0077%. , , . - , , .





- !





, , , : .





CB value RUB - .





, 8 749 045 - , , 33 791 , .





ave.buy in RUB - . .





, , , . , , .





, (). , figi , , . , . . , .





, , Tinkoff API , , .





API , , . , , . 15 430 , 1 .





- , , , .





, :





sum.buy in RUB - (ave.buy in RUB * balance)





, 7 178 123 - , , .





tax base - (sum.buy in RUB - CB value RUB)





expected tax - 13%, , .





: 207 145 . - , .





-

, , Tinkoff API. , , :





. , . - .





( )





, , :





, , , !





, .





.





-

.





Investing period - , . , .





, , , - .





PayIn - PayOut - . 5 843 172 - .





Commissions payed - , . 17 315 , 2200 - 2% IPO , . , 15 000 , , , . $1000 18,22 .





, - "" IPO . API .





Taxes payed - , . , , , .





, W8BEN, , , , .





, 117 631 , , , 207, .





: , $100 60 , , 80, $100, 260 , , , 6000, 8000, $ .





Clean portfolio - . , , . , , . , $116000 , - 2000. , . , .





Profit - , . Clean portfolio - (PayIn - PayOut), .., , , . 2 732 519, " " " " , 207. 2500 . , .





-, , .





. , . , , , , , . - XIRR Excel, , . - , .





, , , .





, , , .





, , .





: Excel, Excel, Google Sheets, .





GitHub





.exe , Python , ( , , ).





Python .





J'espère que les informations seront utiles pour améliorer l'interaction avec les applications Tinkoff, travailler avec des API et développer des programmes similaires, ainsi que contribuer à un investissement plus informé et, par conséquent, augmenter votre bien-être. Merci d'avoir lu jusqu'au bout.








All Articles