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