Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

InteractiveBrokers: support Futures #5

Open
iSevenDays opened this issue May 29, 2020 · 4 comments
Open

InteractiveBrokers: support Futures #5

iSevenDays opened this issue May 29, 2020 · 4 comments
Labels
enhancement New feature or request

Comments

@iSevenDays
Copy link

iSevenDays commented May 29, 2020

Здравствуйте,

Обнаружил ошибку что не поддерживаются фьючерсы.

Было бы отлично, если бы вы могли их добавить или подсказать как это сделать.

Traceback (most recent call last):
File "/Users/seven/miniconda3/envs/py37/bin/ibtax", line 8, in
sys.exit(main())
File "/Users/seven/miniconda3/envs/py37/lib/python3.7/site-packages/investments/ibtax/ibtax.py", line 135, in main
trade_confirmation_csvs=confirmation_reports,
File "/Users/seven/miniconda3/envs/py37/lib/python3.7/site-packages/investments/report_parsers/ib.py", line 118, in parse_csv
'Financial Instrument Information': self._parse_instrument_information,
File "/Users/seven/miniconda3/envs/py37/lib/python3.7/site-packages/investments/report_parsers/ib.py", line 180, in _real_parse_activity_csv
parser_fn(fields)
File "/Users/seven/miniconda3/envs/py37/lib/python3.7/site-packages/investments/report_parsers/ib.py", line 189, in _parse_instrument_information
kind=_parse_tickerkind(f['Asset Category']),
File "/Users/seven/miniconda3/envs/py37/lib/python3.7/site-packages/investments/report_parsers/ib.py", line 36, in _parse_tickerkind
raise ValueError(strval)
ValueError: Futures

Я резидент Украины, у нас есть двузначности в законе, и при расчёте фьючерсов мы пока используем формулу "(сумма покупки - сумма продажи) * мультипликатор фьючерса(например 37500 для кофе/какао)*курс доллара на дату продажи".
В РФ я так понимаю должна использоваться формула
"(сумма покупки*курс доллара на дату покупки - сумма продажи*курс доллара на дату продажи)*мультипликатор фьючерса"

Спасибо!

@cdump
Copy link
Owner

cdump commented May 30, 2020

Вам нужно в https://github.com/cdump/investments/blob/master/investments/report_parsers/ib.py#L36 дописать

if strval == 'Futures':
    return TickerKind.Futures

если сработает - напишите, я добавлю в основную ветку.

По формуле расчета: можно в отчете для фьючерсов смотреть только на колонку profit (сумма покупки - сумма продажи) - останется только пересчитать в нужную валюту на дату продажи, либо попробовать дописать эту логику в https://github.com/cdump/investments/blob/master/investments/ibtax/ibtax.py#L14

@cdump
Copy link
Owner

cdump commented Jul 19, 2020

@iSevenDays попробовали, получилось?

@iSevenDays
Copy link
Author

@cdump пробовал, не получилось.
Было очень много крашей то на опционах, то на фьючерсах, то на опционах на фьючерсах, то на forex операциях.

В итоге дофиксил как получилось, оставил только фьючерсы.

Проверял на отчёте с убытком в ~30%, а программа показала миллионные прибыли.

Может оно и работает исключительно на акциях, но на единичных операциях что мне посчитал бухгалтер и как было на самом деле - разница в сотни процентов.

Кстати, в Украине не используется подход T+2(или аналогичный, когда зачисление происходит позже), берётся дата покупки из activity отчёта брокера, и дата продажи, и высчитывается прибыль. Может дело также было в этом.

@cdump
Copy link
Owner

cdump commented Jul 19, 2020

Понятно, опционы я проверял только на одной своей с ними сделке - там все верно посчиталось, сделок с фьючерсами у меня там нет

Может оно и работает исключительно на акциях

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

T+2 или T+0 меняется одной строчкой в https://github.com/cdump/investments/blob/master/investments/ibtax/ibtax.py#L16 и я не думаю что разница в сотни процентов может быть из-за этого.

@cdump cdump changed the title No support for Futures InteractiveBrokers: support Futures Jan 29, 2022
@cdump cdump added the enhancement New feature or request label Jan 29, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants