O que a Tinkoff Investments não diz. Colocamos todos os dados do portfólio por meio da API em uma grande tabela do Excel

A Tinkoff Investments é uma corretora russa popular com um aplicativo cliente avançado para dispositivos móveis e navegadores. O aplicativo é projetado para simplificar o processo de negociação e reduzir o limite para inserir investimentos a um mínimo a fim de capturar o maior público possível.





No entanto, quando os investimentos se tornam graves, o investidor precisa de dados precisos e detalhados sobre sua carteira, em particular, para avaliar a eficácia do investimento. E é aqui que surgem ambigüidades com o aplicativo.





Descrição do problema

Vou considerá-lo usando o exemplo do meu portfólio (não IIS) em um aplicativo móvel. (A partir da data de publicação, o aplicativo pode ser atualizado).





Na tela principal, vemos significados encorajadores:





Eu imediatamente tenho perguntas aqui:





  • Como foi calculado esse valor verde e 12,21%? Além disso, há alguns dias eu tinha algo em torno de + 17%, então fixei um título com lucro, o valor da carteira permaneceu quase inalterado, mas essa "porcentagem total" verde imediatamente caiu para 12,21.





  • O tempo todo - são vários anos de investimento? Também existe uma opção: por hoje. E que porcentagem eu tenho, por exemplo, para um ano?





  • Minha carteira é quase inteiramente em títulos estrangeiros e USD. Como se traduziu em rublos: à taxa de câmbio do Banco Central ou ao mercado?





  • Quanto desse valor eu realmente terei após impostos e comissões se vender todo o portfólio e retirar o dinheiro?





, :





+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, - : ( !)





NÃO REPETE

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 .





Espero que as informações sejam úteis para melhorar a interação com os aplicativos da Tinkoff, trabalhando com APIs e desenvolvendo programas semelhantes, além de contribuir para investimentos mais informados e, portanto, aumentar o seu bem-estar. Obrigado por ler até o fim.








All Articles