Комментарии 23
Сразу говорю что прочитал ваше заявление про лапшекод. Это абсолютно неподдерживоемое нечитаемое нечто. Не пишите пожалуйста так на scala. И на любом другом языке не пишите.
С точки зрения ООП или ФП оформлено слабовато, но главное идея автоматизации
Американский формат дат типа "2020-12-24"
Вообще-то американский MM-DD-YYYY, Ваш пример выглядит в нём как "12-24-2020". А это формат ISO-8601.
Не надо вводить читателей в заблужение - Interactive Brokers не запрещен в РФ, он прекратил работу с российскими партнёрами вследствие ужесточения условий работы (compliance) для партнёров.
Это была прошлая новость, а последняя, что он попал в этот черный список:
http://cbr.ru/inside/warning-list/
И отсюда два пути:
Либо наши одумаются и молча удалят его из списка
Либо, например, забанят сайт, как это бывает со скамами. Меня больше волнует не сайт, а TWS, конечно
Нельзя исключать, что вы и копаетесь на грязной свалке (и поэтому чувство вас не обманывает), глядя в минуту отдыха на такой код - я вас не осуждаю, любой труд почетен.
Рад, что картинка-превью, на которой ясно отражено качество кода, ничего не заспойлерила, и "coder-nazi" могут с удовольствием почитать заметку и продемонстрировать собственное расовое превосходство (конечно, без указания номера смущающих их строк, а просто делясь своими эмоциями).
Тщетно пытаюсь, зайдя в профили, приобщиться к высокой культуре кодирования, но там, как правило, пустота (вот как у вас).
Приходится верить на слово, что тот или иной "coder-nazi" хоть что-то в этом понимает.
А мне нравится). Для одноразовой (ежегодной) задачи вполне годный код, тем более если он реально экономит 50к.
Советую автору выложить его в группе IB в фейсбуке.
А вообще, конечно, сомнительно, что налоговая что-то там проверяет. По крайней мере пока у вас не миллионы долларов на счету.
Да, пожалуй, стоит выложить.
Когда миллион будет на счету, есть смысл подумать о резидентстве, которое не облагает налогами прирост капитала.
Проверять, то проверяет, что конкретно это конечно загадка. Хотя и несложная. Сведения о доходах она получает исправно, постарались законодатели, исполнили предприятия и банки. И ей абсолютно без разницы сколько там на счету, хоть (условно) 3 рубля. Главное чтобы это было выше некоего порога, разового, за некий период, за бОльший период. Примерно так.
Впрочем, я записал первую претензию по существу: IDEA плохо отформатировала код.
Что касается сопровождения, доверить вам я его не могу (судя по профилю, вы никто и звать вас никак — не по Сеньке шапка), так что и мнение ваше о сопровождаемости не в кассу, может у вас синдром рассеянного внимания.
Код автора конечно написан в скриптовом стиле — "одноразовая задача", "перечитывать и поддерживать это мы не будем", поэтому разумеется у тех, кто пишет приложения, которые потом поддерживаются годами возникают вопросы к такому стилю.
Но то, как вы критикуете такой подход — это переход грани конструктивного общения. Мысли может быть и правильные, однако форма донесения меня просто отталкивает. Если ваша цель была просто оскорбить топикстартера и вывести его из себя — вы достигли цели; если же вы хотели, чтобы он что-то понял — вряд ли.
В теме есть несколько примеров, когда комментаторы указали на недостатки более вежливо, не знаю, захочется ли вам посмотреть и поучиться чему-либо, но если будет такое желание — попробуйте сравнить со своим.
Отлично, что комментаторы не снижают пафоса - и не нарушают добрую традицию не говорить о проблемах по существу. )
Ответьте на вопрос: есть 2 сделки, по первой реализованная прибыль равна 200р. (пересчитанная из долларов по курсу на дату закрытия позиции), по второй убыток 100р. База равна 100р.? Налог равен 13р.? Или есть какое-то тайное кунфу, известное только вам на пару с инспектором?
Математически — да, ваши расчеты правильные. Но они не соответствуют правилам налогового кодекса по расчету налогов. А значит расхождения обязательно будут. На какую величину? Как повезет. Но лично я бы не стал полагаться только на везение при общении с налоговой. :)
Посмотрите ради интереса на Open Source-проекты, связанные с генерацией 3-НДФЛ — неужели вы думаете, что там столько страданий в коде не от необходимости этих действий, а от наличия большого количества свободного времени у их авторов? :)
Коллега, вы действительно разбираетесь в НК (хотелось бы понять, какому именно правилу НК математика не соответствует), или просто предполагаете, по принципу "не может быть все так просто"?
Я общался по поводу налогов в группе IB в FB, и там многие сетуют, что есть сложности в учете дивидендов (которых я не получал), но как выяснилось, специализированные сервисы используют для расчета FIFO брокера (в валюте инструмента, в долларах), что даст в результате ту же самую математику.
Если вы знаете достойный opensource инструмент для преобразования отчета IB в 3НДФЛ под ключ, прошу поделиться ссылкой. Я видел только платные он-лайн сервисы, которые непонятно что делают, и различная с инспектором трактовка НК тоже не исключается.
Все это при большом желании можно нагуглить. Ну вот, к примеру:
Доходы налогоплательщика от операций по реализации или от иного выбытия ценных бумаг (в том числе от погашения или частичного погашения их номинальной стоимости), цена реализации которых выражена в иностранной валюте, определяются по официальному курсу Центрального банка Российской Федерации, действовавшему на дату перехода права собственности либо на дату фактического погашения или фактического получения налогоплательщиком сумм частичного погашения номинальной стоимости.Там же ниже есть слова и про ФИФО.
Про учет дивидендов, возможно, имелся в виду вот этот пункт — да, есть такая проблема — о ней я как раз писал выше.
Могу ошибаться, но возможно в FB-группе имелось в виду, что в IB можно заказать расширенный отчет — там будет расчет FIFO (связь покупок с продажами), глядя на который уже можно выполнить перерасчет в рубли, как я описал выше. В IB же расчет будет либо в долларах, либо в рублях (на рублевом счете?) — но не по курсу ЦБ.
Я бы мог порекомендовать вам свою разработку (github.com/KonishchevDmitry/investments), но вам она совершенно точно не подойдет, т. к. у нее фокус на пассивное инвестирование и различные инструменты вокруг него, а у вас тут шорты, опционы и пр., которые я не планирую поддерживать в обозримом будущем. Поэтому вам скорее имело бы смысл посмотреть на github.com/titov-vv/jal — он гораздо лучше подходит для спекулятивных портфелей + автор заинтересован в поддержке разных сложных случаев, даже если ее пока нет.
Ваша цитата потрясающая: определяются по курсу на дату... либо... или...
Странно что не 10 вариантов расчета.
Но мне кажется, мой дивный алгоритм, сляпаный за полчаса левой ногой, под нее таки подпадает - перечитайте; если закон можно трактовать двояко, трактуется в пользу гражданина, а не инспектора! )
Программа в 50 строк на Java/Scala, которая сэкономит вам 50 тыс. р. при подаче декларации 3-НДФЛ