Избранное трейдера sn1
Надоело логиниться в квик каждый день по 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. Сальдирование результатов
Частая ошибка инвесторов – не сальдируют прибыли или убытки, полученные через российского брокера с результаты от зарубежного брокера. Вы вправе зачесть эти данные, Налоговый кодекс не запрещает нам делать зачет, не ставить наше право в зависимость от страны брокера.
Например, вбил себе один персонаж мысль что в доме на берегу тёплого моря будет заниматься трейдингом под шум прилива и будет счастлив… но позже поймал себя на мысли что в прошлом счастлив был совершено от другого!
Я вам предлагаю провести мысленный эксперимент.
Большинство считают что знают чего хотят и что их сделает счастливыми. Но я убедился на своём опыте что это не так.
Если цель одна во всех трёх пунктах Выше — Вы большой молодец. Если нет — возможно стоит поразмышлять над этим.
п.с. Я вот решил, что не нужен мне дом на берегу моря, по крайней мере сильно счастливее он меня не сделает. Счастливее меня сделает (помимо семьи) любимая деятельность с горящими глазами в группе с такими же увлечёнными ребятами.
Привет! Бегло полистал SL и обнаружил, что книжные обзоры делятся на 2 типа – инвесторские и хардкорное алго (HFT и опционы). Промежуточный вариант попытаюсь закрыть данным постом. По уровню сложности книги в обзоре находятся между зубодробительной подборкой от Eugene Logunov https://smart-lab.ru/blog/534237.php и приятным чтивом по фундаментальным стратегиям.

1) Lasse H. Pedersen – Efficiently Inefficient
Отличная книга и №1 по соотношению польза/сложность. Автор показывает, как кванты тестируют и отбирают стратегии в портфель. Условно ее можно разделить на 4 части: арбитраж, факторные стратегии, глобал макро и технические моменты запуска и финансирования фонда. HFT и опционные стратегии упоминаются вскользь. Наверное, книга подойдет и для совсем начинающих, т.к. все метрики (вплоть до волатильности) и базовые концепции раскрываются с 0.
LHP – один из боссов крупного хедж фонда в Гринвиче, но в отличие от Далио или Дракенмиллера, еще и хардкорный академик. Поэтому в книге любое утверждение подтверждается ссылками, а для глубокого погружения есть отличный список первоисточников. Понятно, что никаких секретов своего работодателя LHP не раскрывает, но профильные главы для меня оказались полезными в плане идей + отсылки туда, где копать глубже.

В современном мире все хотят быть богатыми. Кому-то достается большое наследство, кому-то везет оказаться в нужном месте в нужное время, кто-то всю жизнь с утра до вечера пытается раскручивать свой бизнес, и если идея изначально была правильная, то достигает хороших результатов. Что можно еще сделать в этом мире, чтобы повысить свою финансовую устойчивость, не рассчитывая на слепую удачу и не тратя всю свою жизнь на вечную погоню за успехом?
Можно изменить свое отношение к потреблению. Современному человеку социальное окружение прививает множество готовых программ поведения. Она из таких программ – программа поведения потребителя. Основная задача этой программы заставить человека потратить все свои деньги и искать способы заработать, а когда заработает, снова потратить. И этот цикл продолжается до изнеможения «пока смерть не разлучит вас с работой».
Чтобы выскочить из этого бесконечного бега по кругу, нужно немного по-другому взглянуть на окружающий мир. Если большинству привита мысль: «мои деньги – это разные товары, услуги и другие приятности, которые я могу купить», то для вас должна быть другая установка: «мои деньги – это мой труд и часть моей жизни, вложенная в этот труд. А услуги и товары в красивых упаковках существуют для того, чтобы отобрать у меня результаты моего труда».
Здесь описан МОЙ ОПЫТ. Это не инструкция к действию для всех и каждого. Тот способ, которым я отчитываюсь за дивиденды иностранных компаний, можно использовать на свой страх и риск: ваш налоговый инспектор может отказать в таком способе подачи и попросить вас вписать каждую дивидендную выплату отдельной строкой в 3-НДФЛ. Если у вас мало выплат за год (менее 40), рекомендую вписывать их отдельной строкой! Как это делается, я рассказывал в прошлом году (ЧИТАТЬ или СМОТРЕТЬ).
Моя проблема некоторым постоянным читателям известна: особенность стратегии (покупаю 100 американских компаний по отдельности) имеет очевидные минусы, один из которых — огромное количество мелких дивидендных выплат, почти каждый день!
По дивидендам от российских компаний (их порядка 50-60 поступило) за меня отчитывается брокер. Это прекрасно!
По дивидендам от иностранных компаний я отчитываюсь сам. Я напомню, что штраф за неподачу этих данных составляет всего 1000₽. Здесь скорее вопрос гражданской ответственности: я требую соблюдения законов и моих прав от государства. Я отвечаю тем же.
Всем здоровья и бодрого расположения духа!
В статье «Визуализация рекомендаций Романа Андреева на Python» мы разобрали как можно с помощью нескольких строк кода на Питоне разобрать текст, который выкладывает каждое утро в своем блоге Роман Андреев (далее по тексту Роман) — известный трейдер и блогер (или наоборот), и отобразить эти рекомендации в виде уровней и зон на графиках. В этом топике я покажу способ для извлечения информации из графических изображений с помощью технологий компьютерного зрения (но без использования нейронных сетей) на примере таблиц-рекомендаций из блога Романа Андреева.

Надеюсь, что я не напугал читателей термином «компьютер вижн», скоро вы поймете, что это просто. И что любой юный прогер может написать код для распознавания внешними камерами номеров автомобилей, который впоследствии возненавидят все автолюбители мегаполисов, а МАДИ и ГИБДД будут собирать со всех нас миллиардные штрафы
В этом посте я расскажу вам о том, зачем на самом деле Тимофею смартлаб.
Всё дело в этом:

Попробуем по индексу оптимизма смартлаба торговать индексом полной доходности мосбиржи MCFTR.
Когда на рынках льется кровь, надо покупать, а продавать, когда чистильщик обуви встал в лонг.
Смартлабовский индекс оптимизма поможет нам численно это определить. Данные MCFTR мы будем использовать лишь для торговли.
Что еще? У нас будет параметр. На какое кол-во дней в прошлом заглядывать? Т.е. тут у нас будет множество вариантов
и подгонка. Мы поступим просто. Будем торговать все варианты в диапазоне от 10 до 100 дней. Получим в итоге вот что:
