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

по

Причины богатства США Не надо домыслов. Есть добросовестные исторические исследования

Автор одноимённого сообщения smart-lab.ru/blog/685938.php усматривает причину в мирной истории страны.
Во-первых, история не очень мирная. В 1812 при вторжении англичан был сожжён город Вашингтон.
А в 1861-65 гг случилась самая страшная в истории США война. И нате вам. После неё США очень быстро к началу XX века вышли в мировые лидеры индустрии. Аналогичные случаи были после разрушения дотла Германии и Японии во Второй Мировой. А в 1961 Южная Корея после войны 1950-53 гг также вышла в мировые лидеры из полного Средневековья.
И не слушайте либеральные враки, что эти страны поднялись на деньгах США. Во всех других странах, куда приходят дешёвые деньги США, отсталость только усугубляется.

США пошли так резво в гору после войны 1861-65 гг не потому, что «пожар способствовал ей много к украшенью», но потому что это была война за утверждение принципов «Национальной системы политической экономии» Фридриха Листа. Эти принципы всегда служили руководством к действию в экономической политике США. Германии, Японии, Южной Кореи и всех ныне развитых стран, когда они выходили из отсталости.

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

Автологин для квика на javascript

Надоело логиниться в квик каждый день по 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();
}

Есть другие решения: Автологин для Quik 8 x64.
  • обсудить на форуме:
  • QUIK

Загадочный, точный, вызывающий много дискуссий метод анализа... (2)

Загадочный, точный, вызывающий много дискуссий метод анализа... (2)

Здравствуйте, коллеги!

 Наш коллега, руководитель коллектива известного под сводным ником “…” (Многоточки), которые в 1996 году представили и с тех пор освещают метод анализа Тактика Адверза, продолжил серию видео публикаций проливающих свет на данный метод.

В этом видео автор рассказал о модели расширения (МР) с примерами и нюансами построений.

Рекомендую всем к просмотру ТАКТИКА АДВЕРЗА (TACTICA ADVERSA, ТА):



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

Общий финансовый анализ на Python (Часть 3)

    • 05 апреля 2020, 12:51
    • |
    • Aleks
  • Еще

После всех вычислений, приведенных в этой и этой публикациях, можно углубиться в статистический анализ и рассмотреть метод наименьших квадратов. Для этой цели используется библиотека statsmodels, которая позволяет пользователям исследовать данные, оценивать статистические модели и выполнять статистические тесты. За основу были взяты эта статья и эта статья. Само описание используемой функции на английском доступно по следующей ссылке.

Сначала немного теории:

О линейной регрессии

Линейная регрессия используется в качестве прогнозирующей модели, когда предполагается линейная зависимость между зависимой переменной (переменная, которую мы пытаемся предсказать) и независимой переменной (переменная и/или переменные, используемые для предсказания).



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

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

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

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

Личные антикризисные тактики - вспоминаю и пользуюсь в 2020

  1. Спекулятивно. Из декабря 2014 года: Продажа валюты на пиках истерии с одновременной купля-продажа Областных облигаций и ОФЗ с длинной дюрацией, которые обладают наибольшей волатильностью. Например, ОФЗ 46020.

  2. Спекулятивно. Из мая-сентября 2008 года: игра против неправильных гэпов. Утром до 12-00 (Мск) продажа активов на неправильном гэпе (утренний рост против падающего тренда) с последующей установкой заявок на откуп по ценам закрытия гэпа и ниже цены закрытия предыдущего дня. Цель 1: уменьшение средней цены покупки актива. Цель 2: уменьшение налоговой базы (для режима FIFO)

  3. Спекулятивно. Из сентября-декабря 2008 года: кризис ликвидности: у кого кэш во время маржинальных распродаж, тот выиграл Большой куш. Кризис ликвидности характеризуется недоверием юридических лиц к друг другу в реальном секторе экономики. Начинаются банкротства юридических лиц. Помню стакан продавцов акций Сбербанк-преф на нижней планке по котировке ниже 11 руб/акцию. Как будто у всех спекулянтов закончились деньги. Одновременно и навсегда… Тогда казалось, что это конец биржи.



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

FXMM???

Товарищи финексовцы. Объясните плиз, что за ерунда с инструментом второй день и где ММ? Finex ETF , Vladimir Kreyndel ?
  • обсудить на форуме:
  • FXMM ETF

Общий финансовый анализ на Python (Часть 1)

    • 09 марта 2020, 16:43
    • |
    • Aleks
  • Еще

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

В этой статье будет рассмотрено, как рассчитывать доходность, волатильность и построить один из основных индикаторов.

import pandas as pd
import yfinance as yf
import numpy as np
import matplotlib.pyplot as plt

sber = yf.download('SBER.ME','2016-01-01')

Доходность

Данная величина представляет собой процентное изменение стоимости акции за один торговый день. Оно не учитывает дивиденды и комиссии. Его легко рассчитать используя функцию pct_change () из пакета Pandas.

Как правило используют лог доходность, так как она позволяет лучше понять и исследовать изменения с течением времени.

# Скорректированая цена закрытия`
daily_close = sber[['Adj Close']]

# Дневная доходность
daily_pct_change = daily_close.pct_change()

# Заменить NA значения на 0
daily_pct_change.fillna(0, inplace=True)

print(daily_pct_change.head())

# Дневная лог доходность
daily_log_returns = np.log(daily_close.pct_change()+1)

print(daily_log_returns.head())


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

Сломаный грааль номер 1 (будут и другие возможно)

Закономерность работавшая в золоте. Может быть снова заработает потом.

Итак
в 20-00 времени биржи (приблизительно время открытия Японии) строим линию по лоям. Фрейм 5 мин, длина канала 60-180 баров.
С 20-00 до 23-50 держим лимитку на построенно линии. Выходим спустя часа 3. Стопа нет. Получаем

Сломаный грааль номер 1 (будут и другие возможно)


с 2007 по октябрь 2011 показатели примерно такие:  пф около 3, 64% прибыльных сделок, средняя сделка доллара 3-4 цены (300-400 в деньгах), макс просадка в моменте 3500 долл. 

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

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