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

по

Как отправлять сообщения из Квика в Телеграм! И писать в файлик разную дребедень!


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

Про ботов в телеге здесь  https://core.telegram.org/bots
в гугле  куча инфы  и примеров, как чего куда и зачем.


--
--СКРИПТ 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


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

КАК ПОЛУЧИТЬ 7,2% ГОДОВЫХБ КОГДА ДЕПОЗИТЫ ДАЮТ 4%?


КАК ПОЛУЧИТЬ 7,2% ГОДОВЫХБ КОГДА ДЕПОЗИТЫ ДАЮТ 4%?


Как не дать инфляции сожрать свои сбережения, когда ключевая ставка ЦБ снижается месяц за месяцем, а ставки по депозитам тают на глазах? Где найти доходность выше? Этот вопрос особенно актуален сейчас для инвесторов.

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

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

После прочтения этого поста вы будете знать, как получить 7% годовых, когда депозиты дают 4%.

Читайте подробную аналитическую статью в информационном блоге Банка ЦентроКредит:
www.ccb.ru/services/analytics/blog/content/blogs/210322_b01.php

Колл br650000bc1 лонг с целью 10х

У нас конечно тухляк на москухне опционы нефти. Но летает красивое в 10 раз. Красивое это 60 и 65 к примеру коллы и путы. Я конечно отошел от правила держать строго месячные коллы или путы, но тут такая идея отскок на 65 br-4!
Спред 14 на 17 копеек, но не стоит ждать пока нальют, тут надо сносить стакан агрессивно. Разумеется если ты верно определил разворот отскок и тд и тд! А так я пишу в группе сначала своей, потом на форуме своем ветка опционы нефти, а тут когда красивые моменты как в апреле помню тада))
Как всегда тут читаю оглавления блоогов, но что то каша тут какая я то пошла, не видно ни эйфории ни паники. По ходу все на крипту свалили, а кто про крипту пишет все в чс, без обид. Ну и я не вижу толпы поэтому видимо. Другого сайта нет в рунете для отслеживания толпы по заголовкам. 
Мир.

Интересная фича от Мосбиржи

У биржи есть официальное приложение в Play market play.google.com/store/apps/details?id=com.moex.infocx
В приложении есть возможность смотреть котировки любых инструментов, торгующихся на Мосбирже. Можете выбрать свой список инструментов.

Интересная фича от Мосбиржи
Само приложение легкое, всего 10 мб и очень быстрое.
Вчера открыл интересную особенность. Установка этого приложения даёт возможность установить на экран смартфона виджет, копирующий список ваших инструментов. В результате получаете быстрый доступ к просмотру котировок без необходимости открывать какое-то приложение.

upd: Регистрация в приложении дает доступ к котировкам без задержки

Автологин для квика на 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

Фьючерсы на ОФЗ и акции.

Для начала, немного расскажу про РЕПО, что это такое и для чего. Это нужно знать, так как это связано с ценообразованием фьючерсов на ОФЗ.

Определение из Википедии:

Сделка (Соглашение) РЕПО (от англ. repurchaseagreement, repo) — сделка купли (продажи) ценной бумаги с обязательством обратной продажи (покупки) через определённый срок по заранее определённой в этом соглашении цене. Иначе говоря, соглашение РЕПО условно может рассматриваться как краткосрочный заём денежных средств под залог ценных бумаг (облигаций, векселей, депозитных сертификатов), принадлежащих продавцу, чаще всего краткосрочных долговых бумаг денежного рынка — при этом, чисто юридически, соглашение РЕПО оформляется как купля и продажа, а не как заём.

 

Простыми словами это кредит под залог ценных бумаг.

Разберем на примере:

Фьючерсы на ОФЗ и акции.



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

Трейдерская доверенность на брокерский счет

Друзья и коллеги, всем привет! Удачного и приятного выходного!)
Близкий родственник дает немного средств в управление на мой брок счет, но требует при этом оформить на него трейдерскую доверенность на этот счет. Мол на случай, если со мной что-нибудь случится! В связи с чем вопросы, если я соглашусь:
1. Cможет ли он вывести средства с моего брок счета и зачислить на свой при желании?
2. Смогу ли я в любой момент отменить эту доверенность?


Новая система..Или на заметку кодерам

Привет всем мне как всегда Скучно жить..
Новая система..Или на заметку кодерам


Математическая система работает на ура..
Решил залезть в дебри кодирования..
Смотрим у нас формула хай+лоу делим на 2
А почему на 2 подумал… А да баланс 50% и всё такое(НИФИГА)
По моей системе цент тяжести(баланс)нифига не 50% а 55%..
Поэтому смотрим..

//------------------------------------------------------------------
#property copyright «www.forex-tsd.cm»
#property link «www.forex-tsd.cm»
//------------------------------------------------------------------
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 LimeGreen
#property indicator_color2 DarkGray
#property indicator_color3 PaleVioletRed
#property indicator_style1 STYLE_DOT
#property indicator_style2 STYLE_DOT
#property indicator_style3 STYLE_DOT

//
//
//
//
//

extern bool HighLowVisible = false;
extern int Shift = 0;
double bandUp[];
double bandMi[];
double bandDn[];

//------------------------------------------------------------------
//
//------------------------------------------------------------------
//
//
//
//
//

int init()
{
int style = DRAW_LINE; if (!HighLowVisible) style = DRAW_NONE;
SetIndexBuffer(0,bandUp); SetIndexStyle(0,style);
SetIndexBuffer(1,bandMi);
SetIndexBuffer(2,bandDn); SetIndexStyle(2,style);
return(0);
}
int deinit()
{
return(0);
}



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

Квик

Блэт переустановил систему, поставил Квик с финама 8.44, закинул в папку опционного аналитика (который был до этого), получилась такая фигня. Нет активного окошка с добавлением позы. Что делать? Несколько раз переустанавливал, ничего не получается


Квик




  • обсудить на форуме:
  • QUIK

Добавь в свою торговлю Telegram-Контроль

Добавь в свою торговлю Telegram-Контроль

 Quik
TelegramMessenger

Цель:

Оперативное информирование трейдера о событиях в его торговом терминале Quik.

Что умеет:

Посылать сообщения из  Quik трейдеру в Telegram, а так же получать от трейдера и вводить в Quik  пароль и  Pin-код.

 

Функции Quik Telegram Messenger

 Отправляет сообщения трейдеру из Quik в Telegram на смартфон и на компьютер в любую точку мира

 Сообщает о потере и восстановлении связи с сервером Quik

 Сообщает об изменениях позиций инструментов в портфеле:

  • акции, облигации фондового рынка,
  • фьючерсы срочного рынка,
  • опционы

 Сообщает о деньгах и дневной прибыли по счетам

 Авто-Логин  Quik и ввод PIN-кода Quik через Telegram

 Гибкая настройка режима работы, режим ночного сна



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

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