Open iSevenDays opened 4 years ago
Вам нужно в 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
@iSevenDays попробовали, получилось?
@cdump пробовал, не получилось. Было очень много крашей то на опционах, то на фьючерсах, то на опционах на фьючерсах, то на forex операциях.
В итоге дофиксил как получилось, оставил только фьючерсы.
Проверял на отчёте с убытком в ~30%, а программа показала миллионные прибыли.
Может оно и работает исключительно на акциях, но на единичных операциях что мне посчитал бухгалтер и как было на самом деле - разница в сотни процентов.
Кстати, в Украине не используется подход T+2(или аналогичный, когда зачисление происходит позже), берётся дата покупки из activity отчёта брокера, и дата продажи, и высчитывается прибыль. Может дело также было в этом.
Понятно, опционы я проверял только на одной своей с ними сделке - там все верно посчиталось, сделок с фьючерсами у меня там нет
Может оно и работает исключительно на акциях
Лучше всего проверенно оно действительно на акциях в LONG, для остальных случаев - нужны примеры отчетов, чтобы понимать где может быть ошибка и как поправить.
T+2 или T+0 меняется одной строчкой в https://github.com/cdump/investments/blob/master/investments/ibtax/ibtax.py#L16 и я не думаю что разница в сотни процентов может быть из-за этого.
Здравствуйте,
Обнаружил ошибку что не поддерживаются фьючерсы.
Было бы отлично, если бы вы могли их добавить или подсказать как это сделать.
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 для кофе/какао)*курс доллара на дату продажи". В РФ я так понимаю должна использоваться формула "(сумма покупки*курс доллара на дату покупки - сумма продажи*курс доллара на дату продажи)*мультипликатор фьючерса"
Спасибо!