Избранное трейдера klimvv

по

НДФЛ (кратко по нововведениям)

Закон от 01.04.2020 № 102-ФЗ (проект внесен на рассмотрение ГД РФ в декабре 2019 года)

Согласно нововведениям, НДФЛ будут облагаться:
1.  проценты по вкладам в  банках;  проценты на остаток денежных средств на счетах в  банках;
2.  доход по инвестициям в долговые бумаги.

Сумма по кладам и остаткам на счете должна превышать 1 млн. рублей (если процентный доход номинирован в иностранной валюте, такие доходы будут пересчитываться в рубли по официальному курсу ЦБ РФ на дату фактического получения дохода, налогом не будут облагаться изменения суммы вклада, вызванные курсовыми колебаниями). Не облагается доход по вкладам в валюте РФ с процентной ставкой 1 и ниже.

По инвестициям в долговые бумаги… просто должен быть доход.

В соответствии с п. 1 ст. 5 НК Рф «Действие законодательства о налогах и сборах во времени»: «Федеральные законы, вносящие изменения в настоящий Кодекс в части установления новых налогов… вступают в силу не ранее 1 января года, следующего за годом их принятия...»

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

Грааль иногда не там, где вы его ищете

Давайте обратимся к такой обыденной для большинства вещи, как способ отображения цен на графике.

Подавляющее большинство использует лишь способ — временная нарезка свечей (баров). Да и по большому счету основные отечественные брокеры и их ПО не дают других возможностей.

Как выглядит пятничная нефть на стандартном графике М5? Добавим еще обычную ЕМА. К примеру 144.

Грааль иногда не там, где вы его ищете
Ссылка на оригинальный размер: https://live.staticflickr.com/65535/49741602961_3969fe5bb9_o.png

Стандартная картинка, все мы тысячу раз такое видели. По машке сидим в глубоком лонге и иногда меняем мешки, наполняемые деньгами. Ну до следующего «флэта», понятно.

Переключим же картинку на тот же день, но М1.

Грааль иногда не там, где вы его ищете

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

Модель рынка как немарковского процесса. Часть 1. По следам Б.Гудылина

    • 04 апреля 2020, 23:54
    • |
    • Toddler
  • Еще
Предисловие.
Иногда читаю наиболее интересные посты смартлабовцев… Естественно, не мог не обратить внимание на изыскания Бориса Гудылина — неповторимый слог, аура, поэзия рынка. Кажется — еще шаг, полшага и вожделенный Грааль падет в руки страждущих. Ключевым моментом его исследований является видения рынка как совокупности петель гистерезиса, образуемых ценой. Но, так ли это упрощает задачу изъятия наличных с рынка и переадресации их в свой собственный карман?

Немарковская парадигма рынка
Собственно — сразу к делу.
То, что Б.Гудылин узрел гистерезис на ценовом графике, сразу наталкивает на мысль — а какими же уравнениями описывается собственно это явление?
Поискав по книгам, можно найти ответ на этот вопрос.
Конечно же, интегро-дифференциальными уравнениями типа:
Модель рынка как немарковского процесса. Часть 1. По следам Б.Гудылина
Понятно, что данное уравнение чрезвычайно трудно решаемо без знания ядра F. Именно поэтому рынок вызывает крайнюю сложность в понимании, но оставляет надежду трейдерам. Ведь всем и каждому становится понятно, что каждое значение цены в настоящем и будущем предопределено всей ее историей. А значит технический анализ на основании исторических архивов имеет право на жизнь. Все что было в прошлом обязательно повторится.

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

Интересные философские идеи Талеба из последней книги

Последняя книга Талеба - рискуя собственной шкурой
Тут я оставил рецензию к книге Рискуя собственной шкурой. Книга содержательная, не все идеи там успел записать. Поэтому продолжаю.

Нетолерантные выигрывают 

👉Одна из интересных идей книги — упертое меньшинство (stubborn minority) порабощает лояльное большинство из-за того, что лояльные присоединяются к правилам строгих. То есть маленькая группа людей, которая придерживается строгих правил, со временем начинает подчинять себе всех, кто лоялен и демократичен. Например, строгая религия заставляет второго супруга отказаться от другой веры. Так, когда браком сочетаются люди разных вер, более лояльная религия уходит, а более строгая остается и размножается. Так, с течением веков, Христианский Египет постепенно стал Исламским. Или еще пример: все соки сделали халяльнами, так как проще все сделать халяльнами, чем делать отдельный сок для 1% тех, кому нужен халяль.
👉Аналогичная идея у меня была, когда я читал книгу про судьбу Сталина. Он долгое время был на вторых ролях, но поскольку он был самый жестокий и непреклонный, именно он со временем стал лидером страны. Хотя идея Талеба бесспорно скорее касается не частных случаев, а перспективы развития множеств на большом интервале времени.
👉Революции устраивает одержимое меньшинство.
👉Вывод Талеба логичен: нетолерантное меньшинство со временем может захватить демократию США, а потом захватить весь мир.
👉Вывод: необходимо быть нетолерантным к нетолерантным меньшинствам.
👉Да и в целом, экономическое или моральное развитие общества происходит благодаря маленькой группе людей.

Эта идея описана в Chapter 2, pages 70-88, и я уже понял, что книга заслуживает ⭐️5, поскольку рассказывает новые для меня идеи, которые заставляют задуматься.


Как легально владеть другим человеком?


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

Неудобный факт для организаторов Международной Вирусной Истерии

Голикова доложила Путину о том, что в конце марта были взяты тесты у 226  разных (случайных) россиян не болевших коронавирусом… и у 11 обнаружили антитела к коронавирусу. Цинк.


Вывод №1

Примерно 5% россиян ранее болели «китайским» коронавирусом. Их иммунитет уже сталкивался с этой заразой и выработал антитела.


Вывод №2

Организаторы проекта COVID-19 ранее закидывали коронавирус в Россию. Но проект не взлетел. Холодная страна. Люди крепкие и умеют болеть гриппом. Зато взлетел теплый Китай и другие теплые страны с хилыми жителями.


Вывод №3

Россиянам коронавирус не опасен. Это чуть более заразный грипп. Не более того. Спец.режимы введены не обоснованно.


Вывод №4

Включайте мозг и не пропускайте реально важные факты.


Умные люди приглашаются к дискуссии. Карантинофилы и паникующие дружно идутнах.

Самоизоляция. Мое отношение.

Да, в непростое время живем.

Самое важное — отказаться от каких-либо оценок. Судить легко, а вот брать на себя ответственность — другое дело.
Я уверен, что принимать решение о постановке всей страны на паузу на целый апрель — непростое, но необходимое.
Я прекрасно понимаю руководство страны, которое приняло ответственные меры, прекрасно понимаю гнев предпринимателей. Действительно убытки, остановка выручки, при сохранении расходов у всех. На месте власти я бы просил не лишать работников зарплаты, но не применял никакой ответственности к тем, кто перестанет платить или снизить оплату, потому что кассовые разрывы могут быть катастрофическими для отдельных субъектов. Тут к сожалению и не придумать идеальных мер, так как администрировать все эти дела сложно.

Последствия для бизнеса и экономики будут непредсказуемыми, особенно если затянуть. И в истории нашей современной свободной капиталистической России таких прецедентов еще не было. 

Думаю, грамотный бизнесмен по этой причине должен быть параноиком, должен иметь резерв, запас прочности на случай форс-мажора.  

Я не хочу рассуждать, что было бы, если не ввести режим. Никто не знает точно, но у нас есть примеры других стран. Я так же не хочу рассуждать на тему «обычный грип». Очевидно, что нет.

Сам сижу дома с семьей. Работаю вполсилы. Решил, что это неплохой повод устроить себе что-то типа отпуска.

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

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

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

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

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

Рынок в переломном моменте. 15 лет чтобы вернуться.

Рынок в переломном моменте. 15 лет чтобы вернуться.
На графиках выше изображена почти идентичная хронология событий, произошедших после краха Dow Jones в 1929 году и взрыва пузыря доткомов NASDAQ в 2000 году. Путь до последнего дна занял у Dow 32 месяца, а у NASDAQ-31 месяц. Индекс NASDAQ снизился на 78%, а индекс Dow-на 89% от своих максимумов.
Рынок в переломном моменте. 15 лет чтобы вернуться.

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

Скрипт 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




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