Функционал графиков пополнился новым индикатором «Глубина рынка», отражающим объемы заявок инструмента в виде горизонтальных гистограмм. Также замена экспирирующихся контрактов срочного рынка на новые контракты дополнена возможностью сохранения истории, когда график «старого» и «нового» контрактов могут быть склеены.Там еще что-то написано про дробные количества ценных бумаг, но сохранение истории — это круто.
Узнал, что продается робот на Lua, «Автологин терминала QUIK».
Продается то, что есть в открытом виде на quik2dde.ru
Выкладываю тут:
-- quik_login.lua
-- Автологин терминала QUIK
-- © http://qui2dde.ru/
-- Версия: 2.0
-- для Quik от версии 7.11.1.5
local w32 = require("w32")
-- логин и пароль для терминала
QUIK_LOGIN = "Uxxxxxxx"
QUIK_PASSW = "yyyyy"
function FindLoginWindow()
hLoginWnd = w32.FindWindow("", "Идентификация пользователя")
if hLoginWnd == 0 then
hLoginWnd = w32.FindWindow("", "User identification")
end
return hLoginWnd
end
timeout = 1000 -- таймаут между попытками поиска окна логина
is_run = true
function OnStop()
timeout = 1
is_run = false
end
function main()
while is_run do
sleep(timeout)
if isConnected() == 0 then
local hLoginWnd = FindLoginWindow()
if hLoginWnd ~= 0 then
local n1 = w32.FindWindowEx(hLoginWnd, 0, "", "")
local n2 = w32.FindWindowEx(hLoginWnd, n1, "", "")
local n3 = w32.FindWindowEx(hLoginWnd, n2, "", "")
local n4 = w32.FindWindowEx(hLoginWnd, n3, "", "")
w32.SetWindowText(n2, QUIK_LOGIN)
w32.SetWindowText(n3, QUIK_PASSW)
w32.SetFocus(n4)
w32.PostMessage(n4, w32.BM_CLICK, 0, 0)
end
end
end
endБлагодарности, как понимаю, следует адресовать swerg Представляю торговую систему «купи-продай».
Суть ее очень проста: Покупаем некоторое количество бумаг (start_qty), и выставляем заявки по лесенке на продажу через определенное количество пунктов.
Шаг лесенки назовем step. Да, бумаги следует продавать одинаковыми пачками, по qty_in_step лотов.
(Оставляем пока за бортом поста тему — а что делать, если купили, выставили заявки на продажу, а бумага пошла вниз?)
Поведение Equity при разных start_qty приведено на рисунке.

Индикаторы можете скачать со страницы www.xsharp.ru/indikators файл StockTest.zip, два индикатора:
1. StockTest.lua — проставляет метки сделок. Ее следует добавить на график бумаги;
2. StockEquity.lua — строит кривую Equity, следует добавить на отдельное окно.
Успешной игры по тренду!

arqatech.com/ru/about/news/quik-7-10/
Цифры — шок:
Среди других нововведений версии следует отметить увеличение количества сохраняемых «свечек» графиков в локальном хранилище Рабочего места с 3000 до 65000.
Если ранее к тестированию в QUIK можно было относиться как к забаве, то теперь это становится уже интересным делом!
Скачивайте, тестируйте. Будут вопросы — пишите.
Готовый пример для акций, класс — TQBR.
Список всех классов выводится на вторую строку лог-файла.
-- seclist_csv.lua, © smart-lab.ru/profile/XXM/
-- список бумаг, транслируемые QUIK-ом
local ver = '0.91' -- 22.12.2016
local scriptPath = getScriptPath()
local Terminal_Version=getInfoParam('VERSION')
local logFile = scriptPath..'\\'..'seclist.csv'
local file = io.open(logFile, "w")
assert(file, "Ошибка открытия "..logFile)
function string.split(str, sep)
local fields = {}
str:gsub(string.format("([^%s]+)", sep), function(f_c) fields[#fields + 1] = f_c end)
return fields
end
function write_log(str)
file:write(str .. "\n")
end
function Main()
local local_datetime = os.time(os.date("*t"))
local dtd = os.date("%d.%m.%Y %H:%M",local_datetime)
local mes = 'Start seclist_csv '..ver..', QUIK '..Terminal_Version..', '..dtd
message(mes);
file:write(mes .. "\n")
class_list = getClassesList()
mes = 'class_list = '..class_list
message(mes); write_log(mes);
local class_listT = {}
class_listT = string.split(class_list, ',')
for i = 1, #class_listT do
local fline = class_listT[i]
if fline == 'TQBR' then
-- для примера - только акции!
local classInfo = {}
classInfo = getClassInfo(fline)
-- 3.2.2 getClassInfo
-- Функция предназначена для получения информации о классе.
local sec_list = getClassSecurities(classInfo.code)
local sec_listTable = {}
sec_listTable = string.split(sec_list, ',')
for i = 1, #sec_listTable do
local classCode = classInfo.code
local secCode = sec_listTable[i]
local securityInfo = getSecurityInfo(classCode, secCode)
local name = securityInfo.name
local step = securityInfo.min_price_step
local secInfo = classInfo.name..';'..classCode..';'..name..';'..secCode..';'..step
write_log(secInfo);
end
end
end
local mes = 'Готово!'
message(mes); write_log(mes);
file:flush()
file:close()
end
Main()
-- seclist_csv.lua
На выходе получил список из 292 ценных бумаг.1. Визуализация сделок участников ЛЧИ-2015 в Quik.
2. Визуализация сделок участников ЛЧИ-2015 в Quik. Часть 2.
3. Скачать индикаторы на языке Lua.

На ЛЧИ 2016 не запускал, вирусов нет, применяйте, как хотите, не хотите — не применяйте.
UPD 19:17, 26.09.2016:
Написали сообщение: «Индикаторы для ЛЧИ-2016 подходят»
#ДоброПропадает

SPBFUT,RIM6=SPBFUT,RIU6 SPBFUT,SRM6=SPBFUT,SRU6 SPBFUT,GZM6=SPBFUT,GZU6 SPBFUT,SiM6=SPBFUT,SiU6Далее, по инструкции, запустить bat-файл WndConverter.bat.
Открылась бездна звезд полна; |
При наличии двух дополнительных файлов- картинок: buy_loss.bmp и sell_loss.bmp, сделки, закрывающие позиции с убытком, будут отображаться этими изображениями.
При наличии двух дополнительных файлов- картинок: buy_profit.bmp и sell_ profit.bmp, сделки, закрывающие позиции с прибылью, будут отображаться этими метками.
Если дополнительных меток не будет, то сделки «купить» и «продать» будут изображаться файлами по умолчанию: buy.bmp и sell.bmp.

скачать: http://www.xsharp.ru/tester