Избранное трейдера Краснов Геннадий
📚 В последнее время среди моего окружения появилось много людей, интересующихся инвестициями, что весьма неудивительно, ведь низкие проценты по вкладам заставляют искать альтернативные варианты сохранения и преумножения заработанного капитала.
Кроме этого, нужно отдать должное брокерским компаниям, которые применяют агрессивный маркетинг для продвижения своих услуг. Часто многие слышат разговоры о существовании такого понятия, как индивидуальный инвестиционный счёта (ИИС), но не все понимают, в чём его смысл и какие у него есть плюсы и минусы.Хочу раскрыть эту тему с точки зрения инвестора, и очень надеюсь, что данный пост окажется полезным для кого-то из вас.
📌 Итак, ИИС — это брокерский счёт с льготным режимом налогообложения, с помощью которого можно самостоятельно вести торговлю на бирже или через управляющую компанию. Для государства важно развитие частного инвестирования и повышения инвестиционной культуры. Это в первую очередь положительно влияет на экономическую ситуацию внутри страны и в какой-то степени на мировую, через развитие бизнеса, выходящего на мировую арену. Взамен государство готово поощрять инвесторов путём предоставления налоговых льгот.
Персональные данные открыты для всех! Фантастика? Нет — это реальность!
В новостной ленте однажды прочла информацию о том, что страховые компании по разным причинам массово аннулируют договора е-ОСАГО, не возвращая при этом стоимость полиса. На всякий случай, решила проверить свой полис е-ОСАГО на официальном сайте РСА, используя только государственный номер автомобиля. То, что я узнала и увидела, повергло в шок. Имя, отчество, дата рождения, первая буква фамилии собственника и страхователя и это, не считая всей информации об авто — всё можно узнать, зная только госномер машины!
Всегда считала, что использование в совокупности имени, отчества, даты рождения, тем более с первой буквой фамилии — это 100% персональные данные. Оказывается, нет!!!
Ответ из Роскомнадзора по моей жалобе на РСА пришел на днях (выдержки из ответа):
"… В соответствии с п. 1 ст. 3 Федерального закона от 27.07.2006 № 152-ФЗ «О персональных данных» персональные данные — любая информация, относящаяся к прямо или косвенно определенному или определяемому физическому лицу (субъекту персональных данных)...
...
В соответствии с п. 9 ст. 3 Федерального закона «О персональных данных» обезличивание персональных данных — действия, в результате которых становится невозможным без использования дополнительной информации определить принадлежность персональных данных конкретному субъекту персональных данных. В случае обезличивания персональных данных обеспечения условий конфиденциальности таких данных не требуется.
Сообщаем, что по результатам изучения информации, содержащейся в разделе «Сведения о договоре ОСАГО» на сайте Российского Союза Автостраховщиков, Управлением Роскомнадзора установлено, что в данном разделе содержится только информация о транспортном средстве, первая буква фамилии, имя, отчество, дата рождения, в связи с чем, по данной информации невозможно однозначно определить субъекта персональных данных, т.е. с персональными данными осуществлено обезличивание.
Соответственно, нарушений действующего законодательства в области персональных данных в настоящий момент НЕ УСМАТРИВАЕТСЯ..."
-- --СКРИПТ Niki для smart-lab.ru 260321 ревизия --------------------------------------- -- Флаг для поддержания работы функции main is_run=true fut_limit_old =0 fut_limit_max =0 kgo_old =0.5 function main( ... ) -- чудотворная функция внутри которой все работает --"r": режим чтения (по умолчанию); --"w": режим записи; --"a": режим добавления; --"r+": режим обновления, все предыдущие данные сохраняются; --"w+": режим обновления, все предыдущие данные стираются; --"a+": режим добавления и обновления, предыдущие данные сохраняются, запись разрешена только в конец файла. b бинарные файлы -- Пытается открыть файл в режиме "чтения/записи" f = io.open(getScriptPath().."\\Limits.txt","a"); -- Если файл не существует if f == nil then -- Создает файл в режиме "записи" f = io.open(getScriptPath().."\\Limits.txt","w"); -- Закрывает файл f:close(); -- Открывает уже существующий файл в режиме "чтения/записи" f = io.open(getScriptPath().."\\Limits.txt","a"); end; while is_run do sleep(1000) -- 1000 = 1 секунда --волшебная пауза в работе скрипта if getFuturesLimit("A111", "A111111", 0, "SUR") ~= nil then -- защита от пустых таблиц -- впишите ваши данные из Квика -- %c - дата и время (по-умолчанию) (пример, 03/22/15 22:28:11) -- %x - дата (пример, 09/16/98) -- %X - время (пример, 23:48:10) seconds = os.time(); -- в seconds будет значение 1427052491 date1 = os.date("%x",seconds); -- %c - дата (по-умолчанию) (пример, 03/22/15 22:28:11) time1 = os.date("%X",seconds); -- %c - время (по-умолчанию) (пример, 03/22/15 22:28:11) --[[ liquidity_coef --NUMBER Коэффициент ликвидности cbp_prev_limit --NUMBER Предыдущий лимит открытых позиций на спот-рынке» cbplimit --NUMBER Лимит открытых позиций cbplused --NUMBER Текущие чистые позиции cbplplanned --NUMBER Плановые чистые позиции varmargin --NUMBER Вариационная маржа accruedint --NUMBER Накопленный доход cbplused_for_orders --NUMBER Текущие чистые позиции (под заявки) cbplused_for_positions --NUMBER Текущие чистые позиции (под открытые позиции) options_premium --NUMBER Премия по опционам ts_comission --NUMBER Биржевые сборы kgo --NUMBER Коэффициент клиентского гарантийного обеспечения currcode --STRING Валюта, в которой транслируется ограничение real_varmargin --NUMBER Реально начисленная в ходе клиринга вариационная маржа. Отображается с точностью до 2 двух знаков. При этом в поле «varmargin» транслируется вариационная маржа, рассчитанная с учетом установленных границ изменения цены --]] fut_limit = getFuturesLimit("A111", "A111111", 0, "SUR").cbplused_for_positions -- NUMBER Текущие чистые позиции (под открытые позиции) -- впишите ваши данные из Квика varmargin = getFuturesLimit("A111", "A111111", 0, "SUR").varmargin -- впишите ваши данные из Квика accruedint = getFuturesLimit("A111", "A111111", 0, "SUR").accruedint -- впишите ваши данные из Квика ts_comission = getFuturesLimit("A111", "A111111", 0, "SUR").ts_comission -- впишите ваши данные из Квика kgo = getFuturesLimit("A111", "A111111", 0, "SUR").kgo -- впишите ваши данные из Квика profit = varmargin + accruedint; --if math.abs(fut_limit-fut_limit_old) > 10000 then -- каждые 10000 рублей изменения ГО, слишком частый файл печати if math.abs(fut_limit-fut_limit_old) > 100000 then -- каждые 100000 рублей изменения ГО, настраиваем под себя. open_lim = getFuturesLimit("A111", "A111111", 0, "SUR").cbplimit --NUMBER Лимит открытых позиций f:write( tostring(date1).." "..tostring(time1).." ".."ГО: "..tostring(fut_limit).." ".."Профит: "..tostring(profit).." ".."Комис: "..tostring(ts_comission).." ".. "КГО: "..tostring(kgo).." Lim: "..tostring(open_lim).. "\n"); -- "\n" признак конца строки --f:write( tostring(date1).. " " ..tostring(time1).. " " .. "BID: " .. tostring(res_trans) .. " " .. "ASK: " .. tostring(MXU8ask_vol) .. "\n"); -- "\n" признак конца строки -- Сохраняет изменения в файле на диск f:flush(); fut_limit_old = fut_limit; end if fut_limit_max == 0 then fut_limit_max = fut_limit; end if ( math.abs(fut_limit-fut_limit_max) > 1000000 and fut_limit>0 ) then -- настраиваем под себя message( tostring(fut_limit) ) ----сообщение в Квик-- --message( tostring(time1) ) ---------------------------------------- отправляем сообщение в Телеграмм-- pos_free = getFuturesLimit("A111", "A111111", 0, "SUR").cbplplanned --NUMBER ГО свободных денег от позы без пониженного ГО open_lim = getFuturesLimit("A111", "A111111", 0, "SUR").cbplimit --NUMBER Лимит открытых позиций tg_message = tostring(open_lim).." ГО:"..tostring(fut_limit).." Поза:"..tostring(open_lim-pos_free) os.execute('curl "https://api.telegram.org/botВашиДанныеИзТелеграмм&text= + '..tg_message..' " ') -- отправляем в телегу, через винду. Вписать ваши данные из Телеграмм ---------------------------------------- -- Пример строки https://api.telegram.org/bot365877050:AAE232342348HIqifnyGSsw89U_4TK3Y/sendMessage?chat_id=202560128&text= + Привет Квик! ---------------------------------------- fut_limit_max = fut_limit; end if math.abs(kgo-kgo_old) > 0 then ---------------------------------------- отправляем сообщение в телеграмм tg_message = tostring(kgo).." Внимание! Изменился коэффициент КГО" os.execute('curl "https://api.telegram.org/botВашиДанныеИзТелеграмм&text= + '..tg_message..' " ') -- отправляем в телегу, через винду. Вписать ваши данные из Телеграмм ---------------------------------------- -- Пример строки https://api.telegram.org/bot365877050:AAE232342348HIqifnyGSsw89U_4TK3Y/sendMessage?chat_id=202560128&text= + Привет Квик! ---------------------------------------- kgo_old = kgo; end end end f:close(); -- закрываем файл печати. end -- Остановка скрипта из Квика function OnStop(stop_flag) is_run=false end
Надоело логиниться в квик каждый день по 10 раз, всё время за логином-паролем лазить в файл и копипастить. Сделал скрипт, к-й это автоматизирует. Работает на javascript, так что от версии Windows зависеть не должно.
Сам скрипт кладётся в файл типа C:\Util\Js\Q.js или куда угодно, только не у всех на виду. На этот скрипт делается ярлык, он кладётся на рабочий стол куда-то в угол, и ему прописывается горячая клавиша типа Ctrl-Alt-X или любая другая буква. После этого вы запускаете квик, появляется окно логина, нажимаете Ctrl-Alt-X и через полсекунды оно срабатывает. Важно, что ярлык должен быть на рабочем столе, иначе горячая клавиша не работает.
Вообще вводить данные в другую программу можно двумя способами: copy&paste и эмуляция клавиш. Я в данном случае пошёл по второму пути, хотя и первый тоже реализуем и даже чем-то лучше, т.к. там не надо парится с языком. Из-за этого, если вы хотите использовать этот скрипт, нужно проверить ряд моментов и при необходимости внести исправления.
⦁ В варианте, к-й я выкладываю, логин/пароль должны быть прописаны прямо в скрипте, но можно и читать из файла. У меня дома рабочий вариант вообще ищет их в rtf-файле где много всяких данных. Если логин/пароль положить во внешний файл, то их можно конечно и закодировать.
⦁ Чтобы отработало правильно, надо чтобы текущий язык ввода (по сути язык ввода по умолчанию в системе) в квике был русский. Если это не так, то вначале надо поменять bEngSystem=true
⦁ У меня логин русский, а пароль английский, так что между ними производится переключение клавиатуры. Если у вас что угодно из этого не так, надо в нужных местах убрать или добавить переменную LangSwitch, к-я содержит клавиши «Alt-Shift». Если у вас опять же язык переключается по-другому, там надо прописать другие клавиши.
⦁ У меня вводится и логин и пароль. Если у вас вводится только пароль, то поменять тоже нужно и не сложно.
В общем, можно было бы написать более универсальную версию, чтобы определяеть, когда надо переключать языки автоматом, но мне не нужно, а кому надо разберутся. Или же можно переписать через copy&paste. Делать полностью автоматизированный логин, когда вообще ничего нажимать не нужно я не хочу, потому что тогда любой, кто получит доступ к вашему компьютеру сможет получить доступ и к вашим деньгам, просто кликнув на квике. Так хоть комбинацию клавиш знать надо.
bEngSystem=false; //язык системы по умолчанию LangSwitch="%+!"; WshShell=WScript.CreateObject("WScript.Shell"); InitKeys(); KeysSeq=GetData(); if (KeysSeq) EnterData(KeysSeq); //------------------------------------------------------------------------ function GetData(){ //(Возможно) читаем данные из файла и преобразуем в последовательность клавиш //"!" означает паузу для специальных клавиш, к-е требуют время обработки var DataFN, oStream, Data, Pos1, Pos2, Line; if (0){ //данные в файле DataFN='C:/...'; FSO=new ActiveXObject("Scripting.FileSystemObject"); oStream=FSO.OpenTextFile(DataFN, 1); Line=oStream.ReadAll(); oStream.Close(); } else Line='имя:password'; //Tab должен быть и вначале, потому что при фокусировке квика текущее поле - список серверов Line="{Tab}!"+Line.replace(/:/g, "{Tab}!"+LangSwitch); //Переключение языка в самом начале если логин русский if (bEngSystem) Line=LangSwitch+Line; //конвертация русских символов Line=Line.replace(/[А-Яа-я]/g, RusCB); return Line; } function EnterData(KeysSeq){ var ret; WScript.Sleep(300); //Пауза позволяет убрать руки от клавиатуры до того, как скрипт начал работать ret=WshShell.AppActivate("Идентификация пользователя"); if (ret==0) return; WScript.Sleep(100); aSeq=KeysSeq.split('!'); for(var i=0; i<aSeq.length; i++){ Seq=aSeq[i]; if (Seq!=''){ WshShell.SendKeys(Seq); WScript.Sleep(100); } } WshShell.SendKeys("{Enter}"); //WshShell.SendKeys("%+"); WScript.Sleep(100); //switch to Russian //WshShell.SendKeys("{Tab}"); WScript.Sleep(100); //WshShell.SendKeys("^V"); WScript.Sleep(100); //paste } function RusCB(s){ var n, ch, i; if (s.length==1){ ch=s; } else{ //rtf //код символа в Ansi s=s.substr(2); n=parseInt(s, 16); ch=String.fromCharCode(n); } //Преобразовать в Utf и найти в русских клавишах i=RusKeys.indexOf(Ansi2Utf(ch)); //Найти соотв. латинскую клавишу return LatKeys.charAt(i); } //------------------------------------------------------------------------ function Ansi2UtfN(Code){ if (Code>=192 && Code<=255) Code+=848; else if (Code==168) Code=1025; else if (Code==184) Code=1105; return String.fromCharCode(Code); } function Utf2AnsiN(Code){ if (Code>=1040 && Code<=1103) Code-=848; else if (Code==1025) Code=168; else if (Code==1105) Code=184; return String.fromCharCode(Code); } function Ansi2Utf(Str, bRev){ var Buf='', Ch, Res='', c=0, L, n, f; L=Str.length; f=(!bRev ? Ansi2UtfN : Utf2AnsiN); for(n=0; n<L; n++){ Ch=Str.charCodeAt(n); Buf+=f(Ch); c++; if (c>=100){Res+=Buf; Buf=''; c=0;} } return Res+Buf; } //------------------------------------------------------------------------ function alert(S){WScript.Echo(S);} function InitKeys(){ //Проблема в том, что влияет текущий язык в той программе! //Можно нажимать только английские клавиши. Если надо нажимать русские, надо вычислить какие им соответствуют английские RusKeys="йцукенгшщзхъфывапролджэячсмитьбю"; LatKeys="qwertyuiop[]asdfghjkl;'zxcvbnm,."; RusKeys=RusKeys+RusKeys.toUpperCase(); LatKeys=LatKeys+LatKeys.toUpperCase(); }
Доброго всем дня, спешу описать ошибки, которые часто допускают при заполнении декларации 3-НДФЛ, когда декларируют свой доход. Сейчас идет «горячая пора» сдачи отчетности и поэтому хочу обратить ваше внимание на следующее:
1. Дивиденды по зарубежным акциям
Когда вы получаете выплаты, например, через российского брокера, в виде дивидендов по акциям иностранных эмитентов, то основная ошибка – инвестор в декларацию вносит сумму выплаченного дивиденда (за минусом удержанного налога). Надо вносить в декларацию сумму начисленного налога.
Приведу простой пример – допустим, через Тинькофф банк вам была осуществлена выплата дивиденда по американской бумаге 46,80 долларов, при этом сумма налога была удержана 5,2 долларов. Нельзя ставить в декларацию сумму дивиденда 46,80 и налог 5,2, правильно будет поставить сумму начисленного дивиденда 52 доллара и сумму налога 5,2.
2. Сальдирование результатов
Частая ошибка инвесторов – не сальдируют прибыли или убытки, полученные через российского брокера с результаты от зарубежного брокера. Вы вправе зачесть эти данные, Налоговый кодекс не запрещает нам делать зачет, не ставить наше право в зависимость от страны брокера.
Есть книги, которые меняют судьбы людей и страны.
Ты можешь не знать о них, пока однажды не выйдешь на одну из таких книг. И она, как пазл, соберет в себе мозаику жизни страны.
Случайно вышел на книгу Александра Бека «Волоколамское шоссе». Ну как «случайно»… Попал на нее через наводку из книги Максима Батырева «45 татуировок продавана» (рекомендую тоже).
«Волоколамское шоссе» читается на одном дыхании. Говорят, что это лучшая книга о войне. Фильм «28 панфиловцев» — о той же истории.
Книга разошлась на цитаты, которые уже вплелись в жизнь страны. Предположу, что текст песни «Комбат» группы «Любэ», который пришел ее автору неосознанно, мог родиться после прочтения именно этой книги. Слова песни совпадают с сюжетом повести.
Читая в XXI веке «Волоколамское шоссе» 1943 года, находишь другие смыслы. Проводишь параллели с книгами Карлоса Кастанеды о силе духа.
В книге есть примеры дистанционного видения: