Станислав (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: Пред. 1 2
Отладка QUIK 9.3
 
Странно, но не смог воспроизвести проблему на другой машине. Возможно ошибка связана с подключаемыми библиотеками.
Отладка QUIK 9.3
 
В 9 версии сломали функцию getPortfolioInfoEx


Код
function main()
    local pf = getPortfolioInfoEx("SPBFUT000000","SPBFUT000nw",0) -- некорректный код счета (обязательно)
    PrintDbgStr(type(pf))
    PrintDbgStr(tostring(pf))
end
Рабочий квик ВТБ


В версии 9.2.3.15 и LUA 5.4 данный код вызывает ошибку ACCESS VIOLATION at address 00007FF9F3D71FB4
В версии 9.2.3.15 и LUA 5.3 падение терминала

Демо квик


В версии 9.3.1.11 и LUA 5.4

[6500] string
[6500] а‹fb     <- эти символы всегда разные


В версии 9.3.1.11 и LUA 5.3  ACCESS VIOLATION at address 00007FF9F057CC05
ищу программиста создать программу на платной основе, выгружать данные OHLC и индикаторы в файлик
 
Цитата
индикаторов по всем доступным инструментам QUIK по всем доступным ТФ
Квик и при 20 графиках еле работает, если в него добавить все возможные инструменты со всеми возможными таймфреймами и на эти графики наложить 3 индикатора, то он будет запускаться дольше, чем длится основная сессия.

Если рассчитывать индикаторы самому, то это конечно улучшит ситуацию, однако, подписка на сотню тысяч источников наверняка его прикончит.
Получение статуса выполненных/снятых заявок
 
Есть еще 3 вариант, следить за значением в OnParam() / getParamEx(). Поле "LAST" Цена последней сделки. Я бы именно так и делал, если не требуется анализ свечей.
Получение статуса выполненных/снятых заявок
 
Да, вся информация доступна до конца дня. Таблицы брать используя функцию SearchItems.
Код
TABLE SearchItems(STRING table_name, NUMBER start_index, NUMBER end_index, 
FUNCTION fn [, STRING params])
Названия таблиц (table_name): "orders", "stop_orders", "trades"
Получение статуса выполненных/снятых заявок
 
Номер заявки внутри дня уникален. Искать нужно по следующей цепочке:

Уникальный номер транзакции (создаем сами) -> ищем заявку (по номеру транзакции) -> ищем сделки (по найденному номеру заявки)

По найденным сделкам рассчитываем среднюю.
таблица текущие торги, пропали первый столбец без имени и часть следующего столбца
 
Редактировать -> Поставить галку "транспонировать", нажать да.  Затем в обратном порядке. Ширина столбцов после такой процедуры будет сброшена.
Некорректные данные в таблице текущих параметров
 
Не редко, после включения терминала я вижу некорректные данные в таблице текущих параметров, эти данные не обновляются автоматически.
На приведенном скриншоте  видно, что статус сессии для инструментов отображается как "открыта", хотя инструменты не торгуются в дополнительную сессию.

Единственной способ получить актуальные данные это перезаказать их через меню "система->заказа данных->перезаказать данные", после этой процедуры они отображаются корректно. (скриншот 2).
Как я понимаю, это косвенно подтверждает, что брокер транслирует актуальные данные.  
как сделать паузу?
 
Выбран неверный подход.
Вам нужно организовать очередь (массив) и обработчик (в Main).
После события запись добавляется в массив с указанием времени добавления, в main периодически (с заданным интервалом) проверяется, извлекается и обрабатывается.
При таком подходе скрипт никогда не будет "спать" и сможет параллельно обрабатывать события от разных колл-беков.
or и цикл while
 
Такой подход к организации ожидания события не дает права на ошибку и при любом некорректном входном параметре или ошибки выполнения getParamEx навсегда "повесит" скрипт
Ядра процессора
 
Цитата
Космонавт написал:
Станислав, вопрос не про скорость процессора, а про количество ядер. Если при 4 ядрах загрузка ниже 50%, какой смысл держать 4 ядра, может можно понизить до 3?
Зависит от того как реализована многопоточность в квике. Но все же повышение нагрузки с 30 до 50% на ядро, говорит о том, что некие задачи теперь работают последовательно, а раньше разбрасывались параллельно по ядрам.
Ядра процессора
 
Более быстрый процессор решит любую математическую задачу быстрее чем его медленный собрат.
Однако, для конкретной задачи это может быть очень не существенно, что там за математика предшествует коллбекам неизвестно, поэтому кроме как тестированием это не проверить.
Подключение библиотеки Trans2QUIK.dll
 
В скриптах на Lua эта библиотека вообще не нужна, она используется для отправки транзакций внешними приложениями.
Почему скрипты в QUIK выполняются дольше
 
Цитата
тот самый написал:
я уже приводил 3 примера:
 чем больше на графиках наложено индикаторов - тем дольше выполняется скрипт (вне зависимости от того, что он мол де - находится "в майне")
 чем больше открыто графиков и окон в квике - тем дольше выполняются скрипты. ЭТО ПОЗОРНЫЙ ФАКТ о котором так любят умалчивать так называемые "разработчики"
 стОит поводить окном любой таблицы или графика в QUIK-е - скрипты - ожидаемо начинают притормаживать.
Выходит что луа машина в квике крутится в потоке его gui? Но это же очень плохо как для самого квика так и для сриптов...
Как получить "шаг цены" и "Стоимость шага цены"
 
Код
    /// <summary>
    /// Параметры биржевой информации 
    /// </summary>
    public enum SecurityParams
    {
        /// <summary>
        /// STRING Полное название бумаги 
        /// </summary>
        LONGNAME,
        /// <summary>
        /// STRING Краткое название бумаги 
        /// </summary>
        SHORTNAME,
        /// <summary>
        /// STRING Код бумаги
        /// </summary>
        CODE,
        /// <summary>
        /// STRING Название класса
        /// </summary>
        CLASSNAME,
        /// <summary>
        /// STRING Код класса
        /// </summary>
        CLASS_CODE,
        /// <summary>
        /// STRING Дата торгов
        /// </summary>
        TRADE_DATE_CODE,
        /// <summary>
        /// STRING Дата погашения
        /// </summary>
        MAT_DATE,
        /// <summary>
        /// Int Число дней до погашения
        /// </summary>
        DAYS_TO_MAT_DATE,
        /// <summary>
        /// Decimal Номинал бумаги
        /// </summary>
        SEC_FACE_VALUE,
        /// <summary>
        /// STRING Валюта номинала
        /// </summary>
        SEC_FACE_UNIT,
        /// <summary>
        /// Int Точность цены
        /// </summary>
        SEC_SCALE,
        /// <summary>
        /// Decimal Минимальный шаг цены 
        /// </summary>
        SEC_PRICE_STEP,
        /// <summary>
        /// STRING Тип инструмента
        /// </summary>
        SECTYPE,
        /// <summary>
        /// Int Статус
        /// </summary>
        STATUS,
        /// <summary>
        /// Decimal Размер лота
        /// </summary>
        LOTSIZE,
        /// <summary>
        /// Decimal Лучшая цена спроса 
        /// </summary>
        BID,
        /// <summary>
        /// Decimal Спрос по лучшей цене
        /// </summary>
        BIDDEPTH,
        /// <summary>
        /// Decimal Суммарный спрос
        /// </summary>
        BIDDEPTHT,
        /// <summary>
        /// Long Количество заявок на покупку
        /// </summary>
        NUMBIDS,
        /// <summary>
        /// Decimal Лучшая цена предложения 
        /// </summary>
        OFFER,
        /// <summary>
        /// Decimal Предложение по лучшей цене
        /// </summary>
        OFFERDEPTH,
        /// <summary>
        /// Decimal Суммарное предложение
        /// </summary>
        OFFERDEPTHT,
        /// <summary>
        /// Long Количество заявок на продажу
        /// </summary>
        NUMOFFERS,
        /// <summary>
        /// Decimal Цена открытия
        /// </summary>
        OPEN,
        /// <summary>
        /// Decimal Максимальная цена сделки 
        /// </summary>
        HIGH,
        /// <summary>
        /// Decimal Минимальная цена сделки 
        /// </summary>
        LOW,
        /// <summary>
        /// Decimal Цена последней сделки
        /// </summary>
        LAST,
        /// <summary>
        /// Decimal Разница цены последней к предыдущей сессии
        /// </summary>
        CHANGE,
        /// <summary>
        /// Long Количество бумаг в последней сделке
        /// </summary>
        QTY,
        /// <summary>
        /// STRING Время последней сделки 
        /// </summary>
        TIME,
        /// <summary>
        /// Long Количество бумаг в обезличенных сделках 
        /// </summary>
        VOLTODAY,
        /// <summary>
        /// Long Оборот в деньгах 
        /// </summary>
        VALTODAY,
        /// <summary>
        /// Int Состояние сессии
        /// </summary>
        TRADINGSTATUS,
        /// <summary>
        /// Decimal Оборот в деньгах последней сделки 
        /// </summary>
        VALUE,
        /// <summary>
        /// Decimal Средневзвешенная цена
        /// </summary>
        WAPRICE,
        /// <summary>
        /// Decimal Лучшая цена спроса сегодня
        /// </summary>
        HIGHBID,
        /// <summary>
        /// Decimal Лучшая цена предложения сегодня
        /// </summary>
        LOWOFFER,
        /// <summary>
        /// Long Количество сделок за сегодня
        /// </summary>
        NUMTRADES,
        /// <summary>
        /// Decimal Цена закрытия
        /// </summary>
        PREVPRICE,
        /// <summary>
        /// Decimal Предыдущая оценка
        /// </summary>
        PREVWAPRICE,
        /// <summary>
        /// Decimal Цена периода закрытия 
        /// </summary>
        CLOSEPRICE,
        /// <summary>
        /// Decimal % изменения от закрытия 
        /// </summary>
        LASTCHANGE,
        /// <summary>
        /// STRING Размещение 
        /// </summary>
        PRIMARYDIST,
        /// <summary>
        /// Decimal Накопленный купонный доход 
        /// </summary>
        ACCRUEDINT,
        /// <summary>
        /// Decimal Доходность последней сделки 
        /// </summary>
        YIELD,
        /// <summary>
        /// Decimal Размер купона
        /// </summary>
        COUPONVALUE,
        /// <summary>
        /// Decimal Доходность по предыдущей оценке
        /// </summary>
        YIELDATPREVWAPRICE,
        /// <summary>
        /// Decimal Доходность по оценке
        /// </summary>
        YIELDATWAPRICE,
        /// <summary>
        /// Decimal Разница цены последней к предыдущей оценке
        /// </summary>
        PRICEMINUSPREVWAPRICE,
        /// <summary>
        /// Decimal Доходность закрытия
        /// </summary>
        CLOSEYIELD,
        /// <summary>
        /// Decimal Текущее значение индексов Московской Биржи 
        /// </summary>
        CURRENTVALUE,
        /// <summary>
        /// Decimal Значение индексов Московской Биржи на закрытие предыдущего дня
        /// </summary>
        LASTVALUE,
        /// <summary>
        /// Decimal Разница цены последней к предыдущей сессии
        /// </summary>
        LASTTOPREVSTLPRC,
        /// <summary>
        /// Decimal Предыдущая расчетная цена 
        /// </summary>
        PREVSETTLEPRICE,
        /// <summary>
        /// Decimal Лимит изменения цены 
        /// </summary>
        PRICEMVTLIMIT,
        /// <summary>
        /// NUMERIC Лимит изменения цены T1
        /// </summary>
        PRICEMVTLIMITT1,
        /// <summary>
        /// NUMERIC Лимит объема активных заявок(в контрактах)
        /// </summary>
        MAXOUTVOLUME,
        /// <summary>
        /// NUMERIC Максимально возможная цена 
        /// </summary>
        PRICEMAX,
        /// <summary>
        /// NUMERIC Минимально возможная цена 
        /// </summary>
        PRICEMIN,
        /// <summary>
        /// NUMERIC Оборот внесистемных в деньгах
        /// </summary>
        NEGVALTODAY,
        /// <summary>
        /// NUMERIC Количество внесистемных сделок за сегодня 
        /// </summary>
        NEGNUMTRADES,
        /// <summary>
        /// NUMERIC Количество открытых позиций 
        /// </summary>
        NUMCONTRACTS,
        /// <summary>
        /// STRING Время закрытия предыдущих торгов(для индексов РТС)
        /// </summary>
        CLOSETIME,
        /// <summary>
        /// NUMERIC Значение индекса РТС на момент открытия торгов 
        /// </summary>
        OPENVAL,
        /// <summary>
        /// NUMERIC Изменение текущего индекса РТС по сравнению со значением открытия 
        /// </summary>
        CHNGOPEN,
        /// <summary>
        /// NUMERIC Изменение текущего индекса РТС по сравнению со значением закрытия 
        /// </summary>
        CHNGCLOSE,
        /// <summary>
        /// NUMERIC Гарантийное обеспечение продавца 
        /// </summary>
        BUYDEPO,
        /// <summary>
        /// NUMERIC Гарантийное обеспечение покупателя 
        /// </summary>
        SELLDEPO,
        /// <summary>
        /// STRING Время последнего изменения
        /// </summary>
        CHANGETIME,
        /// <summary>
        /// NUMERIC Доходность продажи
        /// </summary>
        SELLPROFIT,
        /// <summary>
        /// NUMERIC Доходность покупки
        /// </summary>
        BUYPROFIT,
        /// <summary>
        /// NUMERIC Разница цены последней к предыдущей сделки(FORTS, ФБ СПБ, СПВБ)
        /// </summary>
        TRADECHANGE,
        /// <summary>
        /// NUMERIC Номинал(для бумаг СПВБ)
        /// </summary>
        FACEVALUE,
        /// <summary>
        /// NUMERIC Рыночная цена вчера 
        /// </summary>
        MARKETPRICE,
        /// <summary>
        /// NUMERIC Рыночная цена
        /// </summary>
        MARKETPRICETODAY,
        /// <summary>
        /// NUMERIC Дата выплаты купона 
        /// </summary>
        NEXTCOUPON,
        /// <summary>
        /// NUMERIC Цена оферты
        /// </summary>
        BUYBACKPRICE,
        /// <summary>
        /// NUMERIC Дата оферты
        /// </summary>
        BUYBACKDATE,
        /// <summary>
        /// NUMERIC Объем обращения
        /// </summary>
        ISSUESIZE,
        /// <summary>
        /// NUMERIC Дата предыдущего торгового дня
        /// </summary>
        PREVDATE,
        /// <summary>
        /// NUMERIC Дюрация 
        /// </summary>
        DURATION,
        /// <summary>
        /// NUMERIC Официальная цена открытия 
        /// </summary>
        LOPENPRICE,
        /// <summary>
        /// NUMERIC Официальная текущая цена 
        /// </summary>
        LCURRENTPRICE,
        /// <summary>
        /// NUMERIC Официальная цена закрытия 
        /// </summary>
        LCLOSEPRICE,
        /// <summary>
        /// STRING Тип цены
        /// </summary>
        QUOTEBASIS,
        /// <summary>
        /// NUMERIC Признаваемая котировка предыдущего дня
        /// </summary>
        PREVADMITTEDQUOT,
        /// <summary>
        /// NUMERIC Лучшая спрос на момент завершения периода торгов 
        /// </summary>
        LASTBID,
        /// <summary>
        /// NUMERIC Лучшее предложение на момент завершения торгов
        /// </summary>
        LASTOFFER,
        /// <summary>
        /// NUMERIC Цена закрытия предыдущего дня
        /// </summary>
        PREVLEGALCLOSEPR,
        /// <summary>
        /// NUMERIC Длительность купона
        /// </summary>
        COUPONPERIOD,
        /// <summary>
        /// NUMERIC Рыночная цена 2 
        /// </summary>
        MARKETPRICE2,
        /// <summary>
        /// NUMERIC Признаваемая котировка
        /// </summary>
        ADMITTEDQUOTE,
        /// <summary>
        /// NUMERIC БГО по покрытым позициям
        /// </summary>
        BGOP,
        /// <summary>
        /// NUMERIC БГО по непокрытым позициям
        /// </summary>
        BGONP,
        /// <summary>
        /// NUMERIC Цена страйк
        /// </summary>
        STRIKE,
        /// <summary>
        /// NUMERIC Стоимость шага цены 
        /// </summary>
        STEPPRICET,
        /// <summary>
        /// NUMERIC Стоимость шага цены(для новых контрактов FORTS и RTS Standard)
        /// </summary>
        STEPPRICE,
        /// <summary>
        /// NUMERIC Расчетная цена
        /// </summary>
        SETTLEPRICE,
        /// <summary>
        /// STRING Тип опциона
        /// </summary>
        OPTIONTYPE,
        /// <summary>
        /// STRING Базовый актив
        /// </summary>
        OPTIONBASE,
        /// <summary>
        /// NUMERIC Волатильность опциона
        /// </summary>
        VOLATILITY,
        /// <summary>
        /// NUMERIC Теоретическая цена
        /// </summary>
        THEORPRICE,
        /// <summary>
        /// NUMERIC  Агрегированная ставка
        /// </summary>
        PERCENTRATE,
        /// <summary>
        /// Int Тип цены фьючерса 
        /// </summary>
        ISPERCENT,
        /// <summary>
        /// Int Статус клиринга
        /// </summary>
        CLSTATE,
        /// <summary>
        /// Decimal Котировка последнего клиринга 
        /// </summary>
        CLPRICE,
        /// <summary>
        /// STRING Начало основной сессии
        /// </summary>
        STARTTIME,
        /// <summary>
        /// STRING Окончание основной сессии 
        /// </summary>
        ENDTIME,
        /// <summary>
        /// STRING Начало вечерней сессии 
        /// </summary>
        EVNSTARTTIME,
        /// <summary>
        /// STRING Окончание вечерней сессии
        /// </summary>
        EVNENDTIME,
        /// <summary>
        /// STRING Начало утренней сессии
        /// </summary>
        MONSTARTTIME,
        /// <summary>
        /// STRING Окончание утренней сессии 
        /// </summary>
        MONENDTIME,
        /// <summary>
        /// STRING Валюта шага цены 
        /// </summary>
        CURSTEPPRICE,
        /// <summary>
        /// NUMERIC  Текущая рыночная котировка 
        /// </summary>
        REALVMPRICE,
        /// <summary>
        /// STRING Маржируемый 
        /// </summary>
        MARG,
        /// <summary>
        /// NUMERIC Дата исполнения инструмента 
        /// </summary>
        EXPDATE,
        /// <summary>
        /// NUMERIC Курс
        /// </summary>
        CROSSRATE,
        /// <summary>
        /// NUMERIC Базовый курс
        /// </summary>
        BASEPRICE,
        /// <summary>
        /// NUMERIC Максимальное значение(RTSIND)
        /// </summary>
        HIGHVAL,
        /// <summary>
        /// NUMERIC Минимальное значение(RTSIND)
        /// </summary>
        LOWVAL,
        /// <summary>
        /// NUMERIC Изменение(RTSIND)
        /// </summary>
        ICHANGE,
        /// <summary>
        /// NUMERIC Значение на момент открытия(RTSIND)
        /// </summary>
        IOPEN,
        /// <summary>
        /// NUMERIC Процент изменения(RTSIND)
        /// </summary>
        PCHANGE,
        /// <summary>
        /// NUMERIC Цена предторгового периода 
        /// </summary>
        OPENPERIODPRICE,
        /// <summary>
        /// NUMERIC Минимальная текущая цена 
        /// </summary>
        MIN_CURR_LAST,
        /// <summary>
        /// STRING Код расчетов по умолчанию
        /// </summary>
        SETTLECODE,
        /// <summary>
        /// DOUBLE Стоимость шага цены для клиринга 
        /// </summary>
        STEPPRICECL,
        /// <summary>
        /// DOUBLE Стоимость шага цены для промклиринга 
        /// </summary>
        STEPPRICEPRCL,
        /// <summary>
        /// STRING Время изменения минимальной текущей цены
        /// </summary>
        MIN_CURR_LAST_TI,
        /// <summary>
        /// DOUBLE Предыдущее значение размера лота
        /// </summary>
        PREVLOTSIZE,
        /// <summary>
        /// DOUBLE Дата последнего изменения размера лота
        /// </summary>
        LOTSIZECHANGEDAT,
        /// <summary>
        /// NUMERIC Цена послеторгового аукциона 
        /// </summary>
        AUCTPRICE,
        /// <summary>
        /// NUMERIC Количество в сделках послеторгового аукциона
        /// </summary>
        CLOSING_AUCTION_VOLUME
    }
Делал перечисление для своей программы на C#, тут все возможные параметры принимаемые getParamEx с комментариями
Редакторы для QLUA Notepad++ vs SciTe
 
Цитата
Алексей Орешкин написал:
А как вообще соединить LUA и Visual Studio Code ?
Скачал расширение для Lua но толку никакого, подозреваю что делаю что то не так. есть у кого опыт?
Просмотреть -> Extensions
В поиске вбить Lua
Установить Lua language support for Visual Studio Code.
Редакторы для QLUA Notepad++ vs SciTe
 
Очень хотелось бы расширение подсвечивающее функции qlua для редактора "Visual Studio Code"
Дублирование сделок из одного Квика в другой
 
Вполне реально осуществить такое на Lua, для взаимодействия можно использовать файл с транзакциями или с дополнительными библиотеками именованные каналы, сокеты.
Страницы: Пред. 1 2
Наверх