Избранное трейдера Андрей из Сибири

по

Самостоятельная уплата НДФЛ по дивидендам

Добрый вечер!

Уже 8 апреля, а это значит, что скоро закончится прием налоговых деклараций – 30 апреля. По подаче декларации на возврат НДФЛ от внесенных на ИИС средств я уже писал недавно, сейчас только жду уведомление от налоговой.

Второй важный вопрос по декларированию доходов инвестора – самостоятельная уплата НДФЛ по дивидендам компаний, по которым ваш брокер не является налоговым агентом и не уплачивает налог 13% с дивидендов за вас. В этом случае дивиденды к вам на счет приходят неочищенными от налогов и вам самим нужно заплатить налог. Об этом будет сегодняшний пост.

Такая потребность часто возникает в случае, если компания зарегистрирована за рубежом или в оффшорных зонах. Лично мой брокер по ним не удерживает НДФЛ. Примеры таких компаний – Полиметалл, Русал, Яндекс.

Поэтому уточните лишний раз у своего брокера, удерживает ли он НДФЛ по дивидендам от этих компаний. Если нет, и вы об этом не будете знать, то вам могут начать начислять пени за неуплату налогов.

Конечно, часто налоговой пофиг на ваши копейки. Я, когда изучал эту тему, часто наталкивался на комментарии людей, которые все подали и оплатили налог как положено, но налоговая им все возвращала обратно, думая, что они уплатили излишний налог. Может потому, что это необычные пока для России декларации (в отличие от всяких имущественных и социальных) и операционисты ошибаются с ними. В любом случае, я предпочитаю не быть плохишом и делать все как надо, если нет путей добросовестной оптимизации налогов.

Итак, расскажу пошагово, как самостоятельно уплатить налог с дивидендов.

Это все делает онлайн на сайте Налог.ру. Как там зарегистрироваться и как получить электронную цифровую подпись здесь не буду описывать, т.к. писал уже в посте «Вычет по ИИС (тип А). Инструкция».

Сначала заходим в личный кабинет на сайте Налог.ру и выбираем «Жизненные ситуации» → «Подать декларацию 3-НДФЛ» → «Заполнить онлайн».

1. Вкладка «Данные» — отвечаем на 2 простых вопроса и жмем «Далее».

2. Вкладка «Доходы» — удаляем все лишние источники дохода в пределах РФ и выбираем «За пределами РФ» → «Добавить источник дохода» и заполняем данные о компании, стране ее регистрации. В графе «Вид дохода» выбираем 1010-дивиденды. В поле «Предоставить налоговый вычет» выбираем «Не предоставлять». Заполняем сумму дохода в валюте и дату начисления на брокерский счет (эту информацию смотрите в отчете брокера, предварительно запросив у него). Далее выбираем валюту, в которой пришли дивиденды (код доллара США — 840) и ставим галочку у «Определить курс автоматически», чтобы вручную не переводить доллары в рубли на дату поступления дивидендов. Жмем «Далее».



( Читать дальше )

Контанго нефть. Шорт спреда между контрактами.

Всем привет! Пишу свой первый пост, пора поднабрать чуть рейтинга. Ранее не было повода о чем-то высказываться, но на этой неделе получилось осуществить неплохой трейд спреда нефти. Поделюсь кое-какими успехами.

Наверняка многие заметили, какое сексуальное контанго было между соседними контрактами. Такое случается не часто, согласитесь. 
Контанго нефть. Шорт спреда между контрактами.

Вставать однонаправленно в лонг или шорт я категорически не хотел, а купить ближний и продать дальний при таком контанго мне показалось идеей, стоящей рассмотрения. 

По итогу была сформирована следующая позиция: покупка 100 контрактов BR-5 и одновременная продажа  100 контрактов BR-6. Спред получился около 3,30 долларов.

Какие были риски:
1) риск дальнейшего расширения спреда. Что бы я сделал — усреднился. Запас средств оставляю всегда значительный.
2) риск того, что через месяц придется перекладываться в следующие контракты, где спред может оказаться меньше + издержки на комиссию. 

( Читать дальше )

5 причин, почему не будет второго дна, а будет СИЛЬНЫЙ рост.

1. Все ждут второе дно, потому что «раньше оно всегда было», «все только началось, дальше будет хуже», рецессия, безработица, плохие итоги первого квартала. Сентимент — панический.
2. Заголовки СМИ — «рекордный уровень смертности», закрыли страну, город, завод и т.д. Одним словом — конец света.

… а в это время в реальном мире...

3. Рекордный уровень покупок инсайдерами.
4. Появляются новые, быстрые тесты. Некоторые из них показывают, что человек УЖЕ имеет антитела к вирусу, т.е. он переболел и ему нет смысла сидеть на карантине. Чем больше база для тестирования — тем меньше процент тяжелых болезней и смертей, т.к. многие люди УЖЕ переболели и даже не заметили.
5. Ограничения работают (см. картинку)! Во многих странах кол-во новых заражений уменьшилось (Китай, Япония, Юж.Корея) или вышло на насыщение (Испания, Италия, Германия) или близко к пику (США).

Близится СИЛЬНЫЙ рост!
5 причин, почему не будет второго дна, а будет СИЛЬНЫЙ рост.

QLua: таблица крупных "склеенных" обезличенных сделок

    • 03 апреля 2020, 15:06
    • |
    • _sk_
  • Еще
Иногда хочется наблюдать за ситуациями, когда участники торгов исполняют по рынку крупные заявки. Конечно, можно смотреть на обычную ленту обезличенных сделок с настроенными фильтрами на размер сделки, но ведь можно написать специальный QLua-скрипт, который будет отбирать сделки, являющиеся результатом исполнения.

В терминале QUIK ордерлог недоступен, поэтому надо как-то эвристическим образом определить, что набор обезличенных сделок относится к одной и той же рыночной заявке. Например, можно проверять, что инструмент в текущей сделке совпадает с инструментом в предыдущей сделке, направление сделки то же самое, время сделки совпадает с точностью до миллисекунд, и цена при покупке растёт, а при продаже — падает.

Если суммарный объём не менее какой-то границы, которую можно задать для каждого инструмента индивидуально, такие «склеенные» сделки выводятся в таблице. В ней указаны:
— суммарный объём;
— количество обезличенных сделок, которые были склеены;
— начальная цена и конечная цена;

( Читать дальше )
  • обсудить на форуме:
  • Quik Lua

Скрипт lua Баланс покупок/продаж

Всем привет. Переделал первоначальную версию скрипта. Исправил некоторые ошибки и немного расширил функционал. Теперь скрипт может сохранять данные в текстовый файл, который потом можно анализировать в другой программе (например exсel). Также, в отличии от первого варианта, скрипт показывает в таблице усредненную цену, по которой прошли сделки. В первом варианте отображалась цена последней сделки. И в скрипте добавлен показ накопленной дельты за все время пока скрипт работает.

TICER = "SBER";
CLASS_CODE = "TQBR";
FilePath = getScriptPath() .. "\\export.txt";--путь к файлу
save = false;--сохранять данные в файл если false нет, true да

f = nil;
stopped = false;
t_id = nil
H = -1;
M = -1;
VSELL = 0;
VBUY  = 0;
CDelta = 0;
CountTrans = 0;
PriceTrans = 0.0; 
t = "";
function OnInit()
    CountTrans = 0;
        if save then f = io.open(FilePath,"w"); end
        CreateTable();
end 

function main() 
        while not stopped do 
          if IsWindowClosed(t_id) then
         stopped = true;
      end       
          sleep(10);
        end
end

function CreateTable()
   t_id = AllocTable(); 
   AddColumn(t_id, 0, "Время", true, QTABLE_STRING_TYPE, 10);
   AddColumn(t_id, 1, "BUY", true, QTABLE_INT_TYPE, 10);
   AddColumn(t_id, 2, "SELL", true, QTABLE_INT_TYPE, 10);
   AddColumn(t_id, 3, "Дельта V", true, QTABLE_INT_TYPE, 10);   
   AddColumn(t_id, 4, "AVG Цена", true, QTABLE_DOUBLE_TYPE, 15);
   AddColumn(t_id, 5, "Накопленная Дельта", true, QTABLE_INT_TYPE, 15);
   AddColumn(t_id, 6, "Кол-во сделок", true, QTABLE_DOUBLE_TYPE, 12);   
   tab = CreateWindow(t_id);
   local NAME = tostring(getParamEx(CLASS_CODE,TICER,"LONGNAME").param_image);
   SetWindowCaption(t_id, TICER.." ("..NAME..") Баланс покупок/продаж");
   SetTableNotificationCallback(t_id, EventCallBack);
end

function Calc(alltrade)
        if bit.test(alltrade.flags, 0) then VSELL = VSELL+alltrade.qty;  --Продажа
        else VBUY  = VBUY+alltrade.qty;  end                            
        CountTrans = CountTrans+1;
        PriceTrans = PriceTrans+alltrade.price;                 
end

function OnAllTrade(alltrade)    
        if alltrade.sec_code == TICER then      
                local Rows, Col = GetTableSize(t_id);
                
                if H==-1 or H~= alltrade.datetime.hour then 
                        H = alltrade.datetime.hour;
                        M = alltrade.datetime.min;
                        t = tostring(alltrade.datetime.hour)..":"..tostring(alltrade.datetime.min);
                end
                if M==alltrade.datetime.min then
                        Calc(alltrade);
                else                                    
                M=alltrade.datetime.min;        
                        InsertRow(t_id, -1);                                               
                        local Delta = VBUY-VSELL;
                        Price = PriceTrans/CountTrans;
                        SetCell(t_id, Rows, 6, tostring(CountTrans));                   
                        SetCell(t_id, Rows, 0, t);
                        SetCell(t_id, Rows, 1, tostring(VBUY));
                        SetCell(t_id, Rows, 2, tostring(VSELL));                           
                        SetCell(t_id, Rows, 3, tostring(Delta));
                        local SEC_SCALE = tostring(getParamEx(CLASS_CODE,TICER,"SEC_SCALE").param_value);
                        SEC_SCALE = string.format("%.0f",SEC_SCALE);                    
                        SetCell(t_id, Rows, 4, string.format("%."..SEC_SCALE.."f", tostring(Price)));
                   if Rows>=2 then
                           local OldPrice = tonumber(GetCell(t_id,Rows-1,4).image);
                           if OldPrice>Price then 
                                        Red(Rows,4); 
                           else 
                                        Green(Rows,4);
                           end
                           CDelta = tonumber(GetCell(t_id,Rows-1,5).image);
                           CDelta = CDelta + Delta;                        
                        else 
                          CDelta = Delta;
                        end
                        SetCell(t_id, Rows, 5, tostring(CDelta));
                    if Delta<0 then Red(Rows,3); end
                    if Delta>0 then Green(Rows,3); end
                    if CDelta<0 then Red(Rows,5); end
                    if CDelta>0 then Green(Rows,5); end                                                   
                   if save then
                                local Str = tostring(H)..";"..tostring(M)..";"..tostring(VBUY)..";"..tostring(VSELL)..";"
                                                ..tostring(Delta)..";"..tostring(Price)..";"..tostring(CDelta);
                           Str=Str.."\n";
                           SaveFile(Str);
                        end
                t = tostring(alltrade.datetime.hour)..":"..tostring(alltrade.datetime.min);                        
                    VBUY = 0;VSELL = 0;
                        PriceTrans = 0;
                        CountTrans = 0;
                        Calc(alltrade);
                end
        end --if alltrade.sec_code == TICER then        
end

function SaveFile(Str)
        if f ~= nil then 
                f:write(Str);           
                f:flush();                               
        end
end

function Red(row,col)
        SetColor(t_id, row, col, RGB(255,0,0), RGB(0,0,0), RGB(255,0,0), RGB(0,0,0));
end
function Yellow(row,col)
        SetColor(t_id, row, col, RGB(240,240,0), RGB(0,0,0), RGB(240,240,0), RGB(0,0,0));
end
function Green(row,col)
        SetColor(t_id, row, col, RGB(0,200,0), RGB(0,0,0), RGB(0,200,0), RGB(0,0,0));
end


function EventCallBack(t_id, msg, par1, par2)
   if msg==QTABLE_CLOSE then
     OnStop();
   end;
end

function OnStop(s)
  if f ~= nil then f:close(); end
  if t_id ~= nil then
    DestroyTable (t_id);
  end;
  stopped = true;
end




Утвержден Перечень из 646, которых будут спасать.

    • 02 апреля 2020, 01:57
    • |
    • nevil
  • Еще

Утвержден Перечень из 646 системообразующих организаций, которых будут спасать.

Из того, что опубликовано, в него вошли:

12  ПАО «НОВАТЭК»
16  ПАО «Газпром нефть»
17  ПАО «Газпром»
18  ПАО «ЛУКОЙЛ»
19  ПАО «Нефтяная компания „Роснефть“
20  ПАО „Сургутнефтегаз“
21  ПАО „Татнефть“ имени В.Д.Шашина
38  ПАО „Мечел“
45  АО „Московская областная энергосетевая компания“
62  ПАО „Интер Рао“
63  ПАО „Квадра-генерирующая компания“
64  ПАО „Россети“
65  ПАО „Русгидро“
67  ПАО „ТГК-14“
68  ПАО „Территориальная генерирующая компания №2“
69  ПАО „Энел Россия“
70  ПАО „Юнипро“
72  ПАО „Транснефть“
94  ПАО „Трансконтейнер“
100  ПАО „Авиакомпания “ЮТэйр»
102  ПАО «Аэрофлот»
130  ПАО «Новороссийский морской торговый порт»                                                                             

 PS
Банки и страховые спасает ЦБ


НДФЛ на доход от вкладов и бондов: не так страшен черт как его малюют...

Госдума оперативно приняла закон о налогообложении доходов в виде % и купонов по долговым инструментам.
На самом деле, ничего страшного не произошло, нужно без истерик трезво и взвешенно оценить происходящее.

1. Кого это коснется ?? — как мы уже раньше считали, в такой редакции закона, это коснется около 9 млн физических лиц, и это только в части банковских вкладов. В части бондов звучали цифры около 500 тыс человек, и я больше чем уверен, что более половины будут пересекаться с вкладчиками банков.
------

По оценкам экспертов, неофициально подтвержденным сотрудниками ЦБ и АСВ, примерно 9.7 млн человек имеют суммарные накопления в банковской системе РФ, подпадающие под ССВ в размере более 1 млн руб на человека.
---------


2. 13% много это или мало ??? — Это вполне сопостамимо с обычным текущим снижением ключевой ставки регулятором, около 0.75% годовых — т.е. ОБЫДЕННО… ничего экстраординароного.

3. Многие банки для вкладчиков за пределами «лимита АСВ» (а таких будет большинство) предлагают существенно более выгодные условия, чем потеря 0.75% годовых — да и вообще серийным вкладчикам это не должно быть критично -

( Читать дальше )

Скрипт lua читающий таблицу обезличенных сделок.

Всем привет. Может кому пригодится. Скрипт читает ленту сделок и раз в минуту подсчитывает разницу между покупками и продажами. Часть кода нашел в интернете часть кода написал сам. Не знаю может уже есть что то подобное. Цель была не написать что то оригинальное, а наработать навыки программирования на lua.

( Читать дальше )
  • обсудить на форуме:
  • QUIK

Отчитываемся перед налоговой по доходам Interactive Brokers за 5 минут

Все мы знаем, что зарубежные брокеры не являются налоговыми агентами в РФ, соответственно, отчитываться по доходам и платить налоги с них мы должны самостоятельно. Вопрос отчитываться или нет у меня не стоял, поэтому, чтобы не тратить каждый год уйму времени на достаточно трудоемкие расчеты, я написал скрипт, который берет отчеты Interactive Brokers и формирует на основе них пояснительную записку со всеми пояснениями и расчетами для налоговой. Вам останется только приложить этот файл к декларации 3-НДФЛ, а в нее саму внести лишь два пункта (см. ниже).

Ограничения по применению

Поскольку я занимаюсь долгосрочными инвестициями, я не использую такие инструменты, как фьючерсы, опционы, а также никогда не использую плечо и сделки SHORT. В связи с этим, такие операции скриптом не поддерживаются. Если у кого-то есть желание — могут дописать сами.

Подготовка к использованию
  • Установите Python 3+


( Читать дальше )

....все тэги
UPDONW
Новый дизайн