
Я вижу, как сейчас рынок акций валится вниз, но за черной полосой всегда наступит белая. Паника — плохой советчик для депо. Думаю, мощные индикаторы технического анализа для QUIK, которых нет в коробке, помогут вам принять взвешенное инвестиционное решение.
Встроенный набор индикаторов в QUIK не менялся, кажется, со времен палеозоя. Пока весь мир пишет роботов, мы до сих пор вынуждены руками настраивать базовые вещи. Короче, мне надоело, я сел и перенес на Lua три отличных инструмента. Ловите индикаторы! Код полностью открыт, забирайте «как есть».
Вся базовая тройка настроена и протестирована на графике Сбера. Они идеально работают в связке: один фильтрует глобальный тренд, второй смотрит объемы, третий ловит локальный импульс.
Классика, которой почему-то нет в стандартном QUIK в виде единого файла. Рисуется прямо на графике цены.
Как читать: Зеленая линия — быстрая (50), красная — медленная (200).
Всех приветствую !
Не складывалось как-то последнее время надежно получать сообщения от помощника на QLUA под Quik.
То telegram работает нестабильно, то LUA Socket отвалился (не знаю, может это связано с обновлением Quik и появлении целочисленного типа данных).
MAX так вообще позволяет юзать чат-боты только юрлицам и ИП.
И задумал я, немного погуглив, поиспользовать Email-оповещения на мобильное приложение Яндекс.Почта, используя связку PHP + PHPmailer.
Оказалось, за пару дней получился вполне приличный результат.
Если устраивает средняя задержка оповещения от 3 до 45 секунд (бывает меньше, бывает намного больше — от почты зависит), можно посмотреть на этот вариант.
Мне он зашел тем, что не надо под новую версию Quik пересобирать никакие библиотеки, не нужен никакой почтовый сервер с необходимостью его настраивать.
Код на QLUA занял ровно 1 страницу.
А теперь — как это приготовить.
Во-первых, идем на сайт php.net, скачиваем ZIP-архив PHP, соответствующий ОС.
www.php.net/downloads.php?os=windows&osvariant=windows-downloads&version=default&multiversion=Y
Всем привет!
Недавно совместно написали Lua-скрипт для QUIK, который шлёт уведомления в Telegrеm.
Решили начать с простого — мониторинг роллирования, когда объём перетекает в следующий контракт,
приходит уведомление с подсказкой нового тикера, чтобы больше не заморачиваться, что забыл про экспирацию.
Всё получилось, работает, бесплатный вариант можно скачать с сайта.
Потом появился скрипт уведомления в Telegrеm — открытие позиции (тикер, направление, количество лотов, цена),
добавление к позиции, частичное закрытие — закрытые лоты и P&L по ним. Полное закрытие позиции — итоговый P&L.
Ну и то, чего давно не хватало — риск-менеджер, задаёшь дневной лимит убытка,
как только суммарный P&L достигает лимита — он сам закрывает позиции, отменяет заявки и
блокирует торговлю до следующего дня.
Trade Journal — Скрипт незаметно работает в фоне и фиксирует каждую вашу сделку, записывает каждое открытие и закрытие позиции в CSV-файл,
считает P&L: сделки, частичные закрытия, развороты. Каждую ночь шлёт сводку дня в Telegram,
CNYRUBF (тот же класс) все котировки отдаются корректно. Брокер Финам, Квик 12.8.4.9, LUA-скрипты включены, в система — настройки — основные настройки — котировки включено «по выбранным классам» и «выбрать все».
require("iuplua")
local interrupted
function OnStop()
interrupted = true
end
--[[
function sleep(n) -- standalone
if n > 0 then
os.execute("ping -n "..
tonumber(n) .." localhost > nul")
end
end
--]]
function main()
local btn1 = iup.button { title = "Show Dialog", }
function btn1:action()
local r = iup.Alarm("", "Main Title doesn't update!", "Exit")
if r == 1 then
interrupted = true
end
end -- btn1:action()
local btn2 = iup.button { title = "Show menu", }
function btn2:action()
local item = iup.item { title = "Exit", }
function item:action()
interrupted = true
end
local menu = iup.menu {
iup.item { title = "Dialog title doesn't update!",
active = "NO", }, item
}:popup(iup.MOUSEPOS, iup.
Ivan Afonkin,
и если передалать так:
ma_1 = func(i, {Period=96, Metod = EMA, VType=CLOSE}, ds)
ma_2 = func(i, {Period=48, Metod = EMA, VTyp...
Мужики, ХЭЛП.
Честно, мозг закипел. Решил тут воспользоваться уже прописанными Индикаторами от производителя из LuaIndicators. Но при их тес...

В середине 2015-го года я сделал простую, но достаточно функциональную утилиту для копирования сделок на языке программирования QPILE, потому, как новый язык программирования QLUA тогда имел много багов и недоработок. Программа оказалась популярна среди частных управляющих, как альтернатива сервисам автоследования COMON, EasyMANi и пр.
С течением времени появлялись новые пожелания по доработке существующего дубликатора. Однако, в связи с отсутствием возможности перестановки и удаления заявок на срочном рынке для языка QPILE, пришлось написать совершенно новую программу.
Почти четыре месяца назад, 18 декабря, начал разработку новой программы для копирования сделок для QUIK. Предыдущую программу на QPILE я написал менее, чем за месяц. Сначала рассчитывал сделать за пару месяцев, но проект оказался сложнее раза в два, чем предполагал. Ушло более 100 часов работы над программным кодом. Потом, часов 10 на описание. Пишу программы не каждый день и в своё удовольствие.
--[[
Название индикатора на русском для справки
--]]
Settings={
Name="my_ind",
prf=0, -- =1 - показать профит
sign=0, -- =1 - показать сигнал
SLP = 1.0, -- стоплосс
tar = 0.03, -- тариф %
Param=10, -- Параметр индикатора
line=
{
{
Name = "cur1",
Type =TYPE_LINE,
Width = 2,
Color = RGB(0,0, 0)
},
{
Name = "cur2",
Type =TYPE_LINE,
Width = 2,
Color = RGB(255,0, 0)
},
{
Name = "TRIANGLE_DOWN",
function cnd(x)
-- taylor series coefficients
local a1, a2, a3, a4, a5 = 0.31938153, -0.356563782, 1.781477937,-1.821255978, 1.330274429
local l = math.abs(x)
local k = 1.0 / (1.0 + 0.2316419 * l)
local w = 1.0 - 1.0 / math.sqrt(2 * math.pi) * math.exp(-l * l / 2) * (a1 * k + a2 * k * k + a3 * (k^3) + a4 * (k^4) + a5 * (k^5))
if x < 0 then w = 1.0 - w end
return w
end
-- The Black-Scholes option valuation function
-- is_call: true for call, false for put
-- s: current price
-- x: strike price
-- t: time
-- r: interest rate
-- v: volatility
function black_scholes(is_call, s, x, t, r, v)
local d1 = (math.log(s / x) + (r + v * v / 2.0) * t) / (v * math.sqrt(t))
local d2 = d1 - v * math.sqrt(t)
if is_call then
return s * cnd(d1) - x * math.exp(-r * t) * cnd(d2)
else
return x * math.exp(-r * t) * cnd(-d2) - s * cnd(-d1)
end
end
Проверено вчера на путах сишки. Расчет совпал с табличными значениями «теор цена» на июньских, сентярьских, декабрьских досках опционов.Сегодня представляю вам свой Lua-индикатор для торговой платформы QUIK, который поможет вам визуализировать ключевые уровни сопротивления и поддержки на графиках.

Этот инструмент очень полезен, но правда в том, что уровни сопротивления и поддержки у каждого трейдера могут быть разными. Это значит, что алгоритм, который использует индикатор, — это лишь моя субъективная интерпретация!
Вы также можете адаптировать скрипт под свои требования — он открыт для редактирования!
Проверьте сами! Откройте любой график на любом таймфрейме, закройте глаза и нарисуйте «горизонтальную линию». Удивитесь, насколько точно вы определили уровень, когда откроете историю графика!
Лично я не трейдер в классическом смысле, а больше инвестор. Использую уровни только на недельном таймфрейме для ребалансировки своего портфеля.
Цветовая кодировка уровней:
— Зелёная линия — уровень поддержки.
— Красная линия — уровень сопротивления.
— Серая линия — предыдущий уровень, от которого идёт тренд.