Code Monkey home page Code Monkey logo

Comments (15)

KonishchevDmitry avatar KonishchevDmitry commented on May 28, 2024

можно ли это сообщение сделать warning и продолжить расчет для того что есть?

Прямо сейчас можно руками перечислить те символы, для которых котировки есть, если их не очень много: investments simulate-sell ib all $symbol1 all $symbol2 ....

возможно ли прикрутить еще API которое дает данные по европейским ETF? Если да, я поищу подходящее.

Теоретически - возможно. На практике - все зависит от. :) К примеру, я начинал с Alpha Vantage - все было хорошо, но потом они сделали ограничение в 5 запросов в минуту, из-за чего пользоваться ими стало невозможно. Многие пользуются Yahoo, но мне эта идея не очень нравится: на самом деле у него нет API - то, что все дергают, не предназначено для использования со стороны и в любой момент может отсохнуть + там бывают какие-то абсолютно невалидные котировки, к примеру, для наших FinEx'овских ETF - вместо того, чтобы сказать, что данных нет, там рисуется (рисовалось когда я последний раз на него смотрел?) что-то совсем оторванное от реальности.

Но если есть какие-то адекватные альтернативы, то я совершенно не против того, чтобы добавить их поддержку.

from investments.

Rom888 avatar Rom888 commented on May 28, 2024

Прямо сейчас можно руками перечислить те символы, для которых котировки есть, если их не очень много: investments simulate-sell ib all $symbol1 all $symbol2 ....

Не получается:

$ investments simulate-sell ib all WCLD
W: The broker statement misses trade settle date information. First occurred trade - EXH4d at 16.04.2020. All calculations for such trades will be performed in T+0 mode.
E: Unable to find quotes for following symbols: EXV8d, EXH4d.

и с investments metrics ib такая же история.

Но если есть какие-то адекватные альтернативы, то я совершенно не против того, чтобы добавить их поддержку.

Хорошо, посмотрю что есть.

from investments.

KonishchevDmitry avatar KonishchevDmitry commented on May 28, 2024

Ну, в metrics оно и логично, т. к. она выдает сводную статистику по всем портфелям, а вот в simulate-sell уже, конечно, не очень. Глянул почему - из-за калькулятора комиссий, т. к. у некоторых брокеров тарифы зависят от текущего размера портфеля, а чтобы его посчитать, надо знать котировки всех акций. Да - это, конечно, не очень приятный side effect...

from investments.

Rom888 avatar Rom888 commented on May 28, 2024

Поискал варианты API по европейским бумагам, в свободном доступе подходящее найти не удалось.
На гитхабе есть несколько проектов, которые берут данные непосредственно с iShares, но возможно более универсально и надежно (в плане того что yahoo не исчезнет) все таки использовать yahoo через доступное API или какую-либо комьюнити библиотеку.

Глянул почему - из-за калькулятора комиссий, т. к. у некоторых брокеров тарифы зависят от текущего размера портфеля, а чтобы его посчитать, надо знать котировки всех акций. Да - это, конечно, не очень приятный side effect...

Было бы здорово обойти это выдав warning и продолжить расчеты по тому что есть.

from investments.

KonishchevDmitry avatar KonishchevDmitry commented on May 28, 2024

Кстати, EXV8d тоже в Yahoo Finance не находится. Зато я нашел вот такой mapping.

И вот уже EXV8.DE находит в том числе и Finnhub. Правда, логику данного mapping'а я пока не смог осознать: там не везде d заменяется на .DE. К примеру: LEERd -> CEC .

У вас тут есть понимание, по какой логике IB маппит одни символы на другие?

Можете скинуть результат grep -i EXV8d statement.csv? Что вообще IB пишет в своих отчетах про них? Может мне вообще имеет смысл пытаться переходить на поиск котировок по ISIN, а не по символу или вроде того. Хотя это, скорее всего, удвоит количество необходимых API-вызовов... :(

from investments.

KonishchevDmitry avatar KonishchevDmitry commented on May 28, 2024

Кстати, учитывая вышесказанное, вам прямо сейчас должна помочь опция symbol_remapping.

from investments.

Rom888 avatar Rom888 commented on May 28, 2024

Можете скинуть результат grep -i EXV8d statement.csv? Что вообще IB пишет в своих отчетах про них? Может мне вообще имеет смысл пытаться переходить на поиск котировок по ISIN, а не по символу или вроде того. Хотя это, скорее всего, удвоит количество необходимых API-вызовов... :(

Скинул на почту, везде фигурирует EXV8d, и только в разделе Dividends упоминается без d:

EXV8(DE000A0H08F7) Cash Dividend EUR 0.140474 per Share
(Mixed Income)

from investments.

Rom888 avatar Rom888 commented on May 28, 2024

Кстати, EXV8d тоже в Yahoo Finance не находится. Зато я нашел вот такой mapping.
И вот уже EXV8.DE находит в том числе и Finnhub. Правда, логику данного mapping'а я пока не смог осознать: там не везде d заменяется на .DE. К примеру: LEERd -> CEC .

Интересно, зашел в IB личный кабинет.
EXV8 (без d) фигурирует в разделе портфолио и если щелкнуть по этому символу, то открывается страница с графиком, там тоже.
В отчете по дивидендам вместо EXV8 в столбце Symbol написано SXOPEX, а вместо EXH4 написано SXNPEX
В trade confirmation указаны EXV8d и EXH4d

У вас тут есть понимание, по какой логике IB маппит одни символы на другие?

Покопал.
Если взглянуть на страничку символа EXV8d (перешел с указанной страничке маппинга)
https://contract.ibkr.info/v3.10/index.php?action=Details&site=GEN&conid=89005194
то там EXV8d фигурирует как "Local Name" на конкретной бирже
для других бирж local name указан другой: EXV8 или SXOPEX

На сайте iShares указано EXV8, а в разделе где листингуется тоже указаны разные локальные тикеры.
То есть получается что на каждой бирже может быть свой локальный тикер, и в отчет попадают тикеры в зависимости от того на какой бирже была операция (покупка или выплата дивидендов).

И в итоге да, symbol_remapping выходит что очень полезная фича!

Но проблема еще в том что на finnhub на бесплатном аккаунте написано что нет "International Market Data".

from investments.

Rom888 avatar Rom888 commented on May 28, 2024

Попробовал, config:

    symbol_remapping:
      EXV8d: EXV8.DE
      EXH4d: EXH4.DE
$ investments simulate-sell ib all SOXX
W: The broker statement misses trade settle date information. First occurred trade - EXH4d at 16.04.2020. All calculations for such trades will be performed in T+0 mode.
E: Failed to get quotes from Finnhub: Failed to get quotes from https://finnhub.io/api/v1/quote?symbol=EXV8.DE&token=...: Server returned an error: 403 Forbidden.

from investments.

KonishchevDmitry avatar KonishchevDmitry commented on May 28, 2024

везде фигурирует EXV8d, и только в разделе Dividends упоминается без d:

Ну вот что они за люди такие. :) Ну как с этим можно работать. :)

У меня с вашим токеном (отредактировал ваше сообщение и удалил токен из него ;) ) тоже выдает You don't have access to this resource, но точно тот же запрос с моим токеном работает. Попробуйте попозже - мне сегодня весь день Prometheus алерты шлет, что у меня метрики не обновляются - у них там похоже сегодня какие-то проблемы с авторизацией.

from investments.

Rom888 avatar Rom888 commented on May 28, 2024

У меня с вашим токеном (отредактировал ваше сообщение и удалил токен из него ;) ) тоже выдает You don't have access to this resource, но точно тот же запрос с моим токеном работает. Попробуйте попозже - мне сегодня весь день Prometheus алерты шлет, что у меня метрики не обновляются - у них там похоже сегодня какие-то проблемы с авторизацией.

Ой, не заметил, спасибо, может для безопасности заменять токен звездочками в сообщениях, как это обычно делается для паролей?

Странно, попробовал еще раз через браузер, пишет в браузере:
{"error":"You don't have access to this resource."}
А если заменить тикер на американский SOXX, то все работает.

Может быть у вас другой тарифный план, или когда вы получали токен, не было этого ограничения?
Эта ситуация может прояснится, если вы получите еще один токен на другой емайл и попробуете с ним.

from investments.

KonishchevDmitry avatar KonishchevDmitry commented on May 28, 2024

Мне пока приходит в голову только:

  1. Перемапливать все дивиденды по ISIN в символы (чтобы они были везде одинаковыми в отчете)
  2. Для не-US* ISIN резолвить символ в API котировок

Там оно, правда, тоже как-то не без проблем резолвится:

$ isin=DE000A0H08F7
$ curl -s "https://finnhub.io/api/v1/stock/profile2?isin=$isin&token=$token"
{}
$ curl -s "https://finnhub.io/api/v1/search?q=$isin&token=$token"
{"count":1,"result":[{"description":"iShares STOXX Europe 600 Construct \u0026 Material UCITS ETF (DE)","displaySymbol":"EXV8.DE","symbol":"EXV8.DE","type":"ETP"}]}

from investments.

Rom888 avatar Rom888 commented on May 28, 2024

Наверно это имеет смысл, Security ID указывается в разделе
"Financial Instrument Information",
а в дивидендах и налогах везде указывается в скобках этот ID.

С моим токеном второй запрос возвращает:
{"count":0,"result":[]}

from investments.

KonishchevDmitry avatar KonishchevDmitry commented on May 28, 2024

Какое-то оно прям совсем нестабильное. У меня потом тоже стало {"count":0,"result":[]} возвращать. Через какое-то время починилось.

С новым токеном - да, стабильно You don't have access to this resource..

from investments.

Rom888 avatar Rom888 commented on May 28, 2024

В этом плане возможно яхо финанс будет более предсказуемо себя вести.
И еще хорошая фича сделать какое-нибудь стандартное для таких задач REST API к локальному сервису (который будет обращаться к локальной базе данных или к сетевым API).
А уже юзер сам будет решать вопрос как наполнить свою локальную БД нужными ему данными.

from investments.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.