Старатель (Автор тем)

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

Страницы: Пред. 1 2 3
Торговые счета, trade_accounts
 
Цитата
trdacc_type NUMBER Тип депозитарного счета
Где можно подробнее узнать о значениях этого параметра?
Надо делать так, как надо. А как не надо - делать не надо.
getParamEx
 
Вот такой код:
Код
local status = getParamEx(class_code, sec_code, "tradingstatus")
message(status.param_value)
выводит "0.000000".
Но мы уже наученные - понимаем, что ноль в QUIK - это не всегда ноль. Проверяем тип данных, чтобы не был равен 0:
Код
message(status.param_type)
выводит 2.
Вроде, нормально. Ан, нет: для параметра "tradingstatus" тип должен быть 4. Значит данный параметр Квиком не получен. И так для многих параметров.

Но надо сделать так, чтобы можно было однозначно определить, без гаданий, получен ли параметр торговой системой или нет.
Надо делать так, как надо. А как не надо - делать не надо.
Дистрибутив программы
 
Дайте, пожалуйста, ссылку на страницу со списком дистрибутивов программы, утилит, библиотек, справочных руководств...
А то на сайте заблудился...
Надо делать так, как надо. А как не надо - делать не надо.
QUIK v.7.0.1.5, Доступные скрипты
 
В таблице "Доступные скрипты" пропала полоса прокрутки.
Надо делать так, как надо. А как не надо - делать не надо.
Таблица заявок
 
Добрый день.
Правильно я понимаю, что параметры "Исходный номер" и "Стоп-заявка" в таблице заявок соответствуют параметру linkedorder?
Как можно понять, что заявка выставлена именно при срабатывании стопа?
Надо делать так, как надо. А как не надо - делать не надо.
Обрезается текст в Окне сообщений
 
Иногда сообщения в окне сообщений обрезаются:

Но, если изменить размер окна (не обязательно в сторону увеличения), то текст отобразится полностью:
Надо делать так, как надо. А как не надо - делать не надо.
getParamEx
 
Добрый день.

При отсутствии значения искомого параметра в ТТП всегда param_value = "0.000000" и param_image = "" ?
Т.е., они не могут быть nil ни при каких обстоятельствах?
Надо делать так, как надо. А как не надо - делать не надо.
Графики: подсказка на свечке
 
Добрый день.

1) Сделайте при наведении курсором на график вывод в подсказке значений всех индикаторов на данном временном баре, а то порой бывает сложно "поймать" какой-то конкретный индикатор в месте пересечения с ценой.

2) А также на панели "Координаты курсора" при включённом перекрестии (и снятой галке "Показывать подсказку на свечке") опцию "Всегда показывать подсказку", при включении которой в левом верхнем углу диаграммы отображались бы значения всех индикаторов в месте пересечения с горизонтальной линией курсора (на всех панелях данной диаграммы).
Надо делать так, как надо. А как не надо - делать не надо.
Торговые счета
 
Может ли список торговых счетов измениться без переподключения к серверу?
Надо делать так, как надо. А как не надо - делать не надо.
Пользовательский фильтр и Условное форматирование
 
Добрый день.

1. Предлагаю добавить в фильтры возможность задавать условия сравнения не только с текущим значением в другой колонке, но сравнение значения по другой колонке с любым произвольным заданным значением.

2. Сделать возможность добавления ещё строк с условиями. А то 2-3 иногда не хватает.
Надо делать так, как надо. А как не надо - делать не надо.
Процентное изменение
 
Как сделать, чтобы на одной оси графика отображалась абсолютная цена, а на другой - процентное изменение?
Надо делать так, как надо. А как не надо - делать не надо.
Управление индикатором из Lua-скрипта
 
Добрый день.

Не помню, было такое пожелание или нет...
Сделайте возможным из QLUA-скрипта, если не добавлять индикатор на диаграмму, то хотя бы управлять уже созданным индикатором:
вызывать функцию Refresh, ту самую, которая вызывается при нажатии на кнопку "Сохранить" в настройках индикатора,
а также изменить значения параметров таблицы Settings.
Надо делать так, как надо. А как не надо - делать не надо.
Обмен данными между Lua-скриптами
 
Добрый день.

Возможно ли сделать в QUIK общее хранилище данных для обмена информацией между скриптами?

Я знаю, что есть стороннее решение. Но оно не удобно тем, что при обращении к объекту из общего "пространства имён" создаётся новый экземпляр объекта (вместо ссылки), что негативно сказывается на ресурсах.
Надо делать так, как надо. А как не надо - делать не надо.
Динамическое изменение верхней/нижней границы вертикальной оси
 
Добрый день.

Добавьте возможность из кода Lua-индикатора задавать и динамически изменять верхнюю и нижнюю границы вертикальной оси.
Надо делать так, как надо. А как не надо - делать не надо.
Добавить новый вид графика
 
Добавьте новый вид графика, типа гистограммы, только полностью закрашенный:
Надо делать так, как надо. А как не надо - делать не надо.
Длина таблицы
 
Код
tab = {[1]=1, [2]=2, [3]=3, [4]=4, [5]=5, [6]=6, [8]=8, [9]=9}

Согласно документации, длина такой таблицы (#tab) должна быть 6, но у меня показывает 9.
Это ошибка в документации или в самом Lua/QLUA?
Надо делать так, как надо. А как не надо - делать не надо.
SQL в Lua
 
Какую БД и библиотеку лучше использовать в Lua?
Сейчас использую SQLite 3 через LuaSQL. Но есть проблемы при одновременном доступе к БД из разных потоков/скриптов даже при чтении.
Надо делать так, как надо. А как не надо - делать не надо.
OnOrder без UID
 
В ответ на транзакцию приходит колбек OnOrder без UID:
Цитата
{withdraw_datetime={week_day=1, hour=0, ms=0, mcs=0, day=1, month=1, sec=0, year=1601, min=0}, price=145.01, value_entry_type=0, balance=1, repo_value_balance=0, value=13050.9, qty=9, passive_only_order=0, class_code="QJSIM", activation_time=0, userid="NC0011100000", expiry=0, flags=25, linkedorder=0, ordernum=1704294392, sec_code="GAZP", side_qualifier=0, client_code="91413", firmid="NC0011100000", datetime={week_day=0, hour=23, ms=0, mcs=0, day=14, month=6, sec=0, year=2015, min=16}, yield=0, reject_reason="", capacity=0, acnt_type=0, repo2value=0, start_discount=0, min_qty=0, ext_order_flags=0, exec_type=0, order_num=1704294392, repovalue=0, repoterm=0, accruedint=0, account="NL0011100043", seccode="GAZP", uid=0, brokerref="91413/", exchange_code="", settlecode="", price2=0, trans_id=0, bank_acc_id=""}
И через 0.11 сек OnOrder с заполненным UID:
Цитата


{withdraw_datetime={week_day=1, hour=0, ms=0, mcs=0, day=1, month=1, sec=0, year=1601, min=0}, price=145.01, value_entry_type=0, balance=1, repo_value_balance=0, value=13050.9, qty=9, passive_only_order=0, class_code="QJSIM", activation_time=0, userid="NC0011100000", expiry=0, flags=25, linkedorder=0, ordernum=1704294392, sec_code="GAZP", side_qualifier=0, client_code="91413", firmid="NC0011100000", datetime={week_day=0, hour=23, ms=0, mcs=0, day=14, month=6, sec=0, year=2015, min=16}, yield=0, reject_reason="", capacity=0, acnt_type=0, repo2value=0, start_discount=0, min_qty=0, ext_order_flags=0, exec_type=0, order_num=1704294392, repovalue=0, repoterm=0, accruedint=0, account="NL0011100043", seccode="GAZP", uid=88219, brokerref="91413/", exchange_code="", settlecode="", price2=0, trans_id=0, bank_acc_id=""}
Это нормальная ситуация?
Надо делать так, как надо. А как не надо - делать не надо.
Показывать последнее значение на графике цены
 
Как сделать, чтобы последнее значение цены отображалось над значением индикатора?
Надо делать так, как надо. А как не надо - делать не надо.
Контроль данных в МТС, Создание отказоустойчивой автоматизированной торговой системы
 
Задача:
Есть робот, торгующий по индикатору, рассчитываемому на основе графика цены.
Нужно сделать контроль данных с графика на случай "потери" части свечей сервером (такое иногда случается).
Кто как контролирует этот процесс? Или все полагаются на "авось"?
Надо делать так, как надо. А как не надо - делать не надо.
Ввод заявки
 
Как сделать, чтобы в окне ввода заявки в поле "Код клиента" отображались только те коды, которые соответствуют выбранному торговому счёту?
И как сделать, чтобы, если выбранному торговому счёту соответствует только один код клиента, то этот код автоматически подставлялся в соответствующее поле?
Надо делать так, как надо. А как не надо - делать не надо.
Автомасштабирование графиков
 
Добрый день.
Сделайте функцию "интеллектуального автомасштабирования" по оси Y графика с наложенным индикатором таким образом, чтобы в область диаграммы попадал график цены и правая часть индикатора.
Чтобы было понятно:
Скрытый текст
Надо делать так, как надо. А как не надо - делать не надо.
Цена заявки не соответствует установленному диапазону
 
Какой параметр для фондовой секции показывает значения цен этого диапазона?
Надо делать так, как надо. А как не надо - делать не надо.
Узнать таймфрейм графика
 
Как узнать таймфрейм графика с заданным идентификатором?
Надо делать так, как надо. А как не надо - делать не надо.
Узнать дату последней сделки
 
Узнать дату последней сделки  можно только с графика?
Надо делать так, как надо. А как не надо - делать не надо.
OnDisconnected, добавить код ошибки
 
Добрый день.

Добавьте в функцию OnDisconnected() возвращаемое значение код ошибки для диагностики ошибки подключения.
Надо делать так, как надо. А как не надо - делать не надо.
CreateDataSource
 
Задача: рассчитать индикатор по данным с графика.
Устанавливаем колбек CreateDataSource(ClassCode, SecCode, Interval):SetUpdateCallback(fCB). В ответ приходят данные всех свечей с графика, по которым заполняем таблицу Candles[index].

Но! Если открыт график по данной бумаге, то в колбек приходят только данные с момента установки колбека.

Решение? (getCandlesByIndex не интересует)
Надо делать так, как надо. А как не надо - делать не надо.
Highlight
 
Цитата
Если в качестве цвета задана константа QTABLE_DEFAULT_COLOR, то используется цвет, заданный в цветовой схеме операционной системе Windows.

Цвет чего используется для фона в функции Highlight?
Почему при использовании следующего кода цвет фона становится чёрным? Ведь видно, что по-умолчанию цвет фона белый:
Код
  local hID = AllocTable()
  AddColumn(hID, 1, '', true, QTABLE_STRING_TYPE, 10)
  CreateWindow(hID) 
  SetCell(hID, InsertRow(hID, -1), 1, 'Text')
  SetCell(hID, InsertRow(hID, -1), 1, 'Text')
  Highlight(hID, 2, 1, QTABLE_DEFAULT_COLOR, RGB(255, 0, 0), 500)


Надо делать так, как надо. А как не надо - делать не надо.
QLua: работа с таблицами Рабочего места QUIK
 
Добавьте функцию определения номера выделенной строки в QLua
Надо делать так, как надо. А как не надо - делать не надо.
Таблица всех сделок
 
В таблице всех сделок есть параметр "Время(мкс)", последние три цифры которого всегда равны нулю. Это у всех так или мой брокер что-то не обновил/не установил у себя?
Надо делать так, как надо. А как не надо - делать не надо.
64-битная версия QUIK
 
Добрый день.
Работаете ли вы над созданием 64-битной версией QUIK? Или хотя бы есть ли в планах перевод версии на 64-bit?
Надо делать так, как надо. А как не надо - делать не надо.
Объединение массивов
 
Есть в Lua функция объединения массивов?
Чтобы из двух массивов
Код
t1 = {4, 5, 6} 
t2 = {1, 2, 3, 6, 7, 8}
получить один:
Код
t = {1, 2, 3, 4, 5, 6, 7, 8}
?
Надо делать так, как надо. А как не надо - делать не надо.
Архив графиков
 
Добрый день.
При работе с архивом графиков (экспортированных из dat в txt) обнаружилось, что данные за некоторые дни не совпадают с биржевыми:
Скрытый текст
Также в один из дней отсутствовала часть сделок в ТВС в период 10:32-10:34

Как такое возможно?
Надо делать так, как надо. А как не надо - делать не надо.
AddLabel
 
Есть ли ограничение на длину параметра HINT?
Надо делать так, как надо. А как не надо - делать не надо.
Ограничение на количество отображаемых свечей на графиках
 
Уберите, наконец, это ограничение на отображение максимум 3000 свечей. Неудобно анализировать историю на младших таймфреймах.
При этом чтобы не грузить терминал пользователь может задать в настройках "Отображать последние x свечей", что уже реализовано.
Надо делать так, как надо. А как не надо - делать не надо.
Сохранение всех сделок
 
При экспорте всех сделок в БД обнаружилось, что в один из торговых дней из архива "выпала" часть сделок в середине дня.
Поэтому возникла необходимость проверки, все ли сделки закачаны.
Для спота это можно проверить по параметрам "Кол-во сделок" и "Общее кол-во". Для ФОРТС сложнее: с вечерней сессии отсчёт начинается по-новой.
Есть идеи, как проверить закачку всех сделок для ФОРТС?
Надо делать так, как надо. А как не надо - делать не надо.
Загрузка кода из строки
 
Есть некоторая числовая переменная value и условие filter, заданное строкой, например:
Код
local value, filter = 5, " > 3"

Нужно вывести результат применения условия к переменной, как-то так:
Код
print(5 > 3)
Надо делать так, как надо. А как не надо - делать не надо.
Автоматическое переключение на другой сервер
 
Добавьте в настройки соединений параметр "При n неудачных попыток переключаться на другой сервер".
А то приходится отключать возможность автоматического переключения, иначе при каждом "чихе" QUIK будет прыгать с одного сервера на другой и перекачивать все данные заново.
Надо делать так, как надо. А как не надо - делать не надо.
Формат даты
 
Задача: написать функцию форматирования даты:
Код
_DateFormat(date, input, output),
где date - дата в строковом формате,
input - формат ввода,
output - формат вывода.

Пример:
Код
_DateFormat("11.02.2015", "dd.mm.yyyy", "yyyymmdd")

На выходе получаем: "20150211"

Есть идеи, как это осуществить?
Надо делать так, как надо. А как не надо - делать не надо.
Определить время начала интервала для заданного таймфрейма
 
Задача: определить время начала интервала для заданного таймфрейма.
Код
function getTimeInterval(t, i)
  i = i*60  -- переводим в минуты
  return os.date('%d.%m.%Y %X', math.floor(t/i)*i)
end

local t = os.time({year=2015, month=02, day=10, hour=18, min=40, sec=20})
local i = 4*60  -- интервал 4 часа
print(getTimeInterval(t, i))
Но кажет не то время.
Надо делать так, как надо. А как не надо - делать не надо.
Перезаказать данные заново, Очистить все и начать новый сеанс, Перезаказать архив графиков
 
Из документации:
Цитата
Перезаказать данные заново - Очистить полученные данные и заказать их заново
Очистить все и начать новый сеанс - Очистить все накопленные данные и заказать их заново
Перезаказать архив графиков - Очистить архив графиков и заказать заново данные с сервера
Описание довольно скудное. Не понятно, чем отличается "Очистить полученные данные и заказать их заново" и "Очистить все накопленные данные и заказать их заново".
Поясните, пожалуйста, более подробно, что делает каждый пункт, какие настройки сбрасываются, какие файлы при этом очищаются/удаляются.
Надо делать так, как надо. А как не надо - делать не надо.
Некорректные данные в очереди котировок
 
Начало: http://forum-archive.quik.ru/forum/lua/113304/

Добрый день.

Прошёл почти год с момента обнаружения проблемы и отправки вам необходимой информации по данному вопросу.
Ваша ИТС выдаёт неверные данные. Нужно выявить причину и устранить ошибку. Какие предприняты для этого меры?

Ответ типа "мы действительно не виноваты. Все необходимые данные для анализа мы передали специалистам биржи." не канает.
Прошёл почти год. Ситуация не изменилась. Я ни за что не поверю, что в век информационных технологий вы отправили гонца с письмом пешком из Новосибирска в Москву, и по дороге в лесу его съели волки.
Если "вы не виноваты", то нужно назначить "крайних" и пусть занимаются проблемой.
Надо делать так, как надо. А как не надо - делать не надо.
Закладки
 
Нужны закладки по избранным темам. Что-то, вроде подписок, но чтобы по ним не приходили сообщения на e-mail
Надо делать так, как надо. А как не надо - делать не надо.
Списки кодов классов и бумаг
 
Могут ли списки кодов классов и кодов бумаг обновиться (добавиться новый класс или бумага) на клиентском месте в течение торговой сессии без переподключения к серверу?
Надо делать так, как надо. А как не надо - делать не надо.
Заказ всех сделок, Использование CreateDataSource для заказа всех сделок
 
Продолжение этой темы: http://forum-archive.quik.ru/forum/lua/125655/125655/

QUIK v.6.16.0.42

Запускаем два скрипта:
1) Считаем количество всех сделок:
Код
function main()
  local hID = AllocTable()
  AddColumn(hID, 1, 'Количество', true, QTABLE_INT_TYPE, 13)
  CreateWindow(hID)
  InsertRow(hID, -1)
  while bRun do
    local nLen = getNumberOf('all_trades')
    SetCell(hID, 1, 1, tostring(nLen), nLen)
    sleep(100)
  end
end
2) Заказываем все сделки:
Код
function main()
  local sClassCode = 'QJSIM'
  for sSecCode in string.gmatch(getClassSecurities(sClassCode), '([^,]*),') do
    (CreateDataSource(sClassCode, sSecCode, INTERVAL_TICK)):SetEmptyCallback()
  end
  message('ТВС заказана', 2)
end
Через некоторое время QUIK падает с созданием дампа. После нескольких попыток все сделки наконец закачиваются в хранилище. Но при этом есть вероятность, что часть сделок теряется. Повторное переподключение к серверу не помогает. Помогает только удаление файла alltrade.dat с повторной закачкой данных.

Также удалось локализовать ошибку, когда все сделки заказываются только со 2-го вызова CreateDataSource: это происходит, если во время запуска QUIK инструмент уже находился в списке [ALL_TRADES_DATA] файла INFO.INI
Надо делать так, как надо. А как не надо - делать не надо.
Страницы: Пред. 1 2 3
Наверх