Избранное трейдера Револьвер (Beekeeper)

Был у всех нас раньше хороший скрипт Autologin.lua, который авторизовывался автоматически в Quik, но с выходом 8-й версии он работать перестал, т.к. перестала работать библиотека w32.dll. Мы по совету одного из участников нашего сайта решили пойти самым быстрым путем и написали консольное приложение, которое ловит окно авторизации терминала Quik, вводит в него указанные логин и пароль и нажимает кнопку «Войти в систему».
Данное решение очень упрощает жизнь, особенно при алготорговле, когда терминал стоит на выделенном сервере.
Кому интересно, качайте https://quikluacsharp.ru/quik-qlua/qlua-lua-skript-avtomaticheskoj-avtorizatsii/
А здесь выложу файлик с исходным кодом, для тех, кто сам захочет собрать приложение, чтобы не думать: скачать
--Массив с Тикерами, добавьте нужные тикеры
aTickerList = {"MSNG", "GAZP", "LKOH",
"SIBN", "GMKN","ROSN",
"SBER", "TATN", "NVTK",
"IRAO", "RSTI", "SBERP",
"PHOR", "SNGS", "TRNFP",
"VTBR", "FEES", "MVID",
"RASP", "MFON", "AFLT",
"MAGN", "ALRS", "MTSS", "MOEX",
"RTKM", "MGNT", "NLMK", "SNGSP",
"CHMF", "MTLR", "HYDR", "MFON",
"RSTI", "PLZL", "BANEP", "POLY"
};
--Функция поиска цены
function fGetPrice(sTickerName, sNum)
--Подключаемся к источнику данных
local ds=CreateDataSource("TQBR", sTickerName, INTERVAL_D1);
while (Error=="" or Error == nil) and ds:Size() ==0 do sleep(10) end;
if Error ~="" and Error ~=nil then message("Error: "..Error, 1) end;
local sSize=ds:Size();
local sCurrentPrice=ds:O(sSize);
local sLastWeekPrice7=0;
local sLastWeekPrice14=0;
--Берем цену закрытия свечи неделю назад
sLastWeekPrice7=ds:C(sSize-4);
--Берем цену закрытия свечи 2 недели назад
sLastWeekPrice14=ds:C(sSize-8);
--Вычисляем проценты
local sPrc7=math.floor((100-((sLastWeekPrice7*100)/sCurrentPrice))*100)/100;
local sPrc14=math.floor((100-((sLastWeekPrice14*100)/sCurrentPrice))*100)/100;
--Заполняем таблицу значениями
SetCell(t_id, sNum, 0, tostring(sTickerName));
SetCell(t_id, sNum, 1, tostring(sCurrentPrice),sCurrentPrice);
SetCell(t_id, sNum, 2, tostring(sLastWeekPrice7),sLastWeekPrice7);
SetCell(t_id, sNum, 3, tostring(sLastWeekPrice14),sLastWeekPrice14);
SetCell(t_id, sNum, 4, tostring(sPrc7),sPrc7);
SetCell(t_id, sNum, 5, tostring(sPrc14),sPrc14);
--Текущая цена больше цены прошлой недели - раскрашиваем зеленым
if sCurrentPrice>sLastWeekPrice7 then
fGreen(sNum);
end;
--Текущая цена меньше цены прошлой недели - раскрашиваем красным
if sCurrentPrice<sLastWeekPrice7 then
fRed(sNum);
end;
--Текущая цена больше цены прошлой недели и цена прошлой недели больше цены позапрошлой недели
--раскрашиваем желтым
if sCurrentPrice>sLastWeekPrice7 and sLastWeekPrice7>sLastWeekPrice14 then
fYellow(sNum);
end;
end;
--- Функция создает таблицу
function CreateTable()
-- Получает доступный id для создания
t_id = AllocTable();
-- Добавляет 6 колонок
AddColumn(t_id, 0, "Тикер", true, QTABLE_INT_TYPE, 15);
AddColumn(t_id, 1, "Сегодня", true, QTABLE_INT_TYPE, 15);
AddColumn(t_id, 2, "Неделя", true, QTABLE_INT_TYPE, 15);
AddColumn(t_id, 3, "2 Недели", true, QTABLE_INT_TYPE, 15);
AddColumn(t_id, 4, "Неделя (%)", true, QTABLE_INT_TYPE, 15);
AddColumn(t_id, 5, "2 Недели (%)", true, QTABLE_INT_TYPE, 15);
-- Создаем
t = CreateWindow(t_id);
-- Даем заголовок
SetWindowCaption(t_id, "7 Days");
-- Добавляем строки
for k,v in pairs(aTickerList) do
InsertRow(t_id, k);
end;
end;
--- Функции раскрашивают ячейки таблицы
function fRed(col)
SetColor(t_id, col, -1, RGB(255,168,164), RGB(0,0,0), RGB(255,168,164), RGB(0,0,0));
end;
function fGreen(col)
SetColor(t_id, col, -1, RGB(157,241,163), RGB(0,0,0), RGB(157,241,163), RGB(0,0,0));
end;
function fYellow(col)
SetColor(t_id, col, -1, RGB(249,247,172), RGB(0,0,0), RGB(249,247,172), RGB(0,0,0));
end;
--Основная функция
function main()
-- Создаем таблицу
CreateTable();
--Пробегаемся по массиву тикеров
for k,v in pairs(aTickerList) do
fGetPrice(v, k);
end;
end;как выглядит в квике:
Уважаемые читатели, вы не раз просили меня написать более подробно на тему «пирамидинга». В данной статье постараюсь удовлетворить ваше любопытство. Я долго не писал на данную тему, потому что, честно говоря, не находил в этом особого смысла, ибо:
1. Кажется, всё, что я мог сказать, я сказал в своем выступлении здесь: https://www.youtube.com/watch?v=-98jbH7VnTA
2. Техника пирамидинга сугубо индивидуальна. Насколько агрессивно докупаться: увеличивать позицию сразу в два раза, т.е. в геометрической прогрессии, или докупаться каждый раз на равное количество лотов, а также через какое расстояние наращивать позицию – всё это зависит от вашей индивидуальной склонности к риску. Единственного правильного пути здесь нет.
3. Признаться, техника эта у меня самого отработана не в полной мере. Многие вещи я делаю… да, вы угадали. Чисто интуитивно. Где докупаться? По ходу движения или на откатах? В каком объеме? Где фиксировать прибыль? Как понять, что движение развернулось и уже пора закрывать позицию? Па-бааам. Я НЕ ЗНАЮ! Если бы точно знал, я бы уже давно махал вам ручкой с телевизора, сверкая белым рядом искусственных зубов, в окружении телок с нефиговыми дойками.
какой смысл покупать нефть если я не знаю, сколько ей еще падать?Я-то уже хорошо усвоил урок, что такое понятие как «поддержка» существует лишь в воображении. И людям с ней либо везет, либо фатально не везёт.

Лохов, которые ещё держались до последнего в позе, свозило на финальный маржин-колл. Надо покупать!Что я сделал первым делом? Зашёл в котировки фьючерсов на смартлабе. Посмотрел какой контракт сейчас самый ликвидный, почитал спецификацию контракта BRF9. Посчитал объем, который можно купить. И купил.

Лимитные ордера в стакане – что это и зачем нужно? Как извлечь из этого максимальную выгоду? Хотелось бы разобрать подробно эти вопросы.
Те, кто торгуют по стакану и постоянно следят за объемами, наверное, наблюдали, что как только цена в стакане подходит к лимитному объему, то объем отрабатывает три варианта:
1) Исполняется по рынку, и мы видим, как на индикаторе объемов (volume) происходит прирост объема на данном баре, тем самым игрок провел сделку по рынку.
2) Объем в стакане просто исчезает, и мы не видим его исполнения по рынку: могу предположить, что крупный игрок по каким-то условиям передумал войти в сделку.
3) И последний вариант – когда объем уходит от цены на несколько пунктов и не дает этим самым исполниться. Вот этот вопрос меня заинтересовал больше всех. Могу предположить, что таким образом Маркет-мейкер исполняет свои обязательства перед биржей в рамках договора
Потому что шел к этому не один год,
потому что трачу час подготовки на 5 минут работы,
потому что не стреляю по площадям, а беру только одну сделку в день,
потому что не игроман,
потому что чертовски осторожен,
потому что не жаден,
потому что плевать на Риск/ревард,
потому что деньги в кармане лучше комментариев «как надо».
Мне лучше получить гарантированно, пусть и меньше, чем очень много, но случайно.
Удача — это случайность, которую трудно регулярно повторять
Успех — можно продуцировать постоянно.
С недавних пор, я стал показывать сделки в прямом эфире и выкладывать в посты здесь, так что найдете в ленте и видео и результаты.