Постов с тегом "quik": 1998

quik


Предновогоднее обновление QuikSharp

Хочу поделиться новостью о предновогоднем обновлении библиотеки QuikSharp.

Обновление привнесло ряд новых функций, а также демонстрационное приложение на WinForm, о котором так часто просили пользователи.

Берем тут: https://github.com/finsight/QuikSharp

QuikSharp — это динамически подключаемая библиотека, для обеспечения связи ваших роботов, написанных на C#, с терминалом Quik.

QuikSharp — это «Open source-проект», который развивается благодаря участию других пользователей. Отдельный «респект» хочу выразить автору проекта, т.к. это именно то, что я долго искал когда понял, что уперся в некоторые существенные ограничения QLua.
Легче всего с этой библиотекой будет освоиться тем, что уже пробовал реализовать свои торговые стратегии на QLua, т.к. большинство функций взяты именно из QLua. Но по сравнению с QLua, мы получаем значительно большие возможности, в том числе по производительности. Когда у меня количество одновременно запущенных роботов на QLua превысило десяток, то я столкнулся с очень большими проблемами производительности. Квик стал жрать память в каких-то неимоверных объемах, а загрузка ЦП выросла до 80% (в спокойное время). Перейдя на QuikSharp (правда, перед этим пришлось заняться изучением C#) я одномоментно решил большинство проблем производительности, получил удобный инструмент для создания пользовательских интерфейсов, а также более удобное средство разработки самих роботов. Сейчас у меня одновременно крутятся в реальном времени более 4-х десятков роботов (если считать отдельным роботом сочетание ТС и конкретного инструмента), и при этом я не испытываю НИКАКИХ проблем с производительностью (терминал и роботы крутятся на ноутбуке).

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

Квик, индикаторы из коробки

Доброго времени суток, друзья.
Хочу поделиться с Вами способом как при помощи не сложных действий возможно отследить ОИ, либо другой параметр из списка предлагаемых, а также разместить несколько инструментов или параметров в одном окне. Конечно торговать успешнее от этой инфы Вы скорее всего не станете) 
Итак приступим к приготовлению. Берем Квик — 1 шт. (у меня версия 7.5.) Открываем нужный график и вызываем функцию «Добавить график/индикатор», далее действия указал на скрине. 
Квик, индикаторы из коробки


Далее каждый сам найдет для себя интересующие его параметры и применения. Не ругайте сильно, если данная инфа не оказалась полезной. Буду рад если кто-то в свою очередь поделится индикаторами горизонтальных объемов, крупных принтов, либо другими полезными штучками. 
Если есть коллеги кто анализирует ОИ опционов и торговлю синтетических позиций, буду рад пообщаться.
Спасибо за  внимание и за Ваши +++

Список бумаг, которые транслирует ваш QUIK.

    • 22 декабря 2016, 20:27
    • |
    • XXM
  • Еще

Готовый пример для акций, класс — 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 ценных бумаг.
Здесь: moex.com/a3503 — 310. Не смотрел, почему такая разница.

Откройте глаза... мне!

Ребятушки устал я шипко изменять настройки индикаторов при смене таймфрейма… может quik может это делать автоматом??? или еще каким способом можно это упростить? В интернете искал искал да глазенки мои ничего не выискали… выискали ток славный смартлаб поэтому и решил тут спросить. Зарание извиняюсь за не совсем умный вопрос.

JUGGLER: ЭКВИЛИБРИСТИКА ГРАФИКАМИ

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

 

Несколько раз мне заказывали создание таких индикаторов, каждый раз с новой формулой. Каждый раз приходилось либо писать новый индикатор для терминала либо создавать формулу для программы технического анализа. Я решил, что имеет смысл написать для этой цели универсальный инструмент. Знакомьтесь: Juggler.

Итак, имеем в качестве входящей информации:

  1. Построенный в терминале первый график. Будем называть этот график как график А. Назначим ему во вкладке «Дополнительно» произвольный идентификатор. 
  2. Построенный в терминале второй график (график В). Ему тоже назначим идентификатор на ваш выбор.
  3. Формулу для расчета необходимой нам функции.


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

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