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

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

Страницы: Пред. 1 ... 20 21 22 23 24 25 26 27 28 29 30 ... 47 След.
СПРАВКА ПО QLUA. ВЫЧИТКА (Версия 7.4)
 
Цитата
Stanislav Tvorogov написал:
Копия таблицы будет создана в таком случае:
Не пойму о какой копии идёт речь? У вас в скрипте создаётся только одна таблица. Если вы имели ввиду, что копия создаётся после повторного запуска скрипта, то это буде таблица уже с новым идентификатором.
Всё же хотелось бы узнать, в каких случаях таблица может быть не создана, кроме обозначенных мной?

Что касается документации, то неплохо добавить в неё следующую информацию: #1, #2
Надо делать так, как надо. А как не надо - делать не надо.
СПРАВКА ПО QLUA. ВЫЧИТКА (Версия 7.4)
 
Цитата
Stanislav Tvorogov написал:
Функция возвращает 0 во всех остальных случаях, в которых таблица не была создана, за исключением указания значений, отличных от NUMBER.
Я как раз хотел от вас услышать, в каких случаях таблица может быть не создана.

Цитата
Stanislav Tvorogov написал:
Цитата
Старатель   написал:
Если окно с указанным id было ранее создано и не закрыто, то CreateWindow вернёт 0.
В случае, если окно таблицы уже было открыто, будет создана его копия.
Вы уверены?
Надо делать так, как надо. А как не надо - делать не надо.
СПРАВКА ПО QLUA. ВЫЧИТКА (Версия 7.4)
 
Цитата
Старатель написал:
В каких случаях (кроме некорректно заданного идентификатора) функция может вернуть 0?

Если окно с указанным id было ранее создано и не закрыто, то CreateWindow вернёт 0. Есть ещё варианты?
Надо делать так, как надо. А как не надо - делать не надо.
СПРАВКА ПО QLUA. ВЫЧИТКА (Версия 7.4)
 
Цитата
CreateWindow
Функция создает окно таблицы с идентификатором «t_id».
Функция возвращает «1» при успешном создании окна, иначе – «0».

В каких случаях (кроме некорректно заданного идентификатора) функция может вернуть 0?
Надо делать так, как надо. А как не надо - делать не надо.
проблема со стаканом
 
В v.7.4 минимальную ширину стакана увеличили со 128px до 136px. Чем обусловлено такое решение?
Надо делать так, как надо. А как не надо - делать не надо.
Что быстрее - DataStore или GetCandlesByIndex?
 
Индикаторы все равно рассчитываются так или иначе: в роботе или самим квиком. Но в случае getCandlesByIndex ресурсы тратятся ещё и на отображение графика и индикатора, что более ресурсоёмко, чем просто вычисление.
Надо делать так, как надо. А как не надо - делать не надо.
Копирование значения ячейки в таблице
 
Добрый день.
Добавьте пункт меню "Копировать ячейку" (для копирования кодов бумаг, ISIN и пр.)
Надо делать так, как надо. А как не надо - делать не надо.
СПРАВКА ПО QLUA. ВЫЧИТКА (Версия 7.4)
 
Цитата
Stanislav Tvorogov написал:
Внесистемные сделки также присутствуют в потоке обезличенных сделок и OnAllTrade должен на них сработать.
Отнюдь
Надо делать так, как надо. А как не надо - делать не надо.
коды событий поворотов колеса мыши SetTableNotificationCallback
 
Цитата
Старатель написал:
Зарегистрируйте пожелание, чтобы функция GetCell возвращала значения ячеек из нулевой строки (названия колонок).
Надо делать так, как надо. А как не надо - делать не надо.
Теоретическая разница получения данных CreateDataSource+SetUpdateCallback или getNumCandles()+getCandlesByIndex(), В чем разница получения данных 1 способом и 2 способом
 
Цитата
тот самый написал:
Цитата
Николай  Камынин   написал:
CreateDataSource+SetUpdateCallback  -  получаем данный в момент прихода их с сервера, т е до помещения в хранилище в терминале.
в этом я сильно сомневаюсь. Всё, что сыпется с сервера - сериализуется на жёстком диске.
Практически было установлено, что сначала вызывается колбэк в момент получения данных, и лишь затем эти данные сбрасываются в хранилище на диске.

Цитата
Владимир Б****ов написал:
Т.е если таймфрейм установлен в 3 минуты - то получение данных ~ 1 раз в 3 минуты
Нет, в течение 3-х минут свеча может обновиться несколько раз. В этом вы можете убедиться просто понаблюдав за последней свечой на 3-минутном графике.  И на каждое изменение вы будете получать колбэк.
Надо делать так, как надо. А как не надо - делать не надо.
коды событий поворотов колеса мыши SetTableNotificationCallback
 
Добрый день.
Зарегистрируйте пожелание, чтобы функция GetCell возвращала значения ячеек из нулевой строки (названия колонок).
Надо делать так, как надо. А как не надо - делать не надо.
Утечка памяти
 
Imersio Arrigo,
спасибо, не знал, что символические ссылки можно создавать также и для файлов.
Надо делать так, как надо. А как не надо - делать не надо.
Утечка памяти
 
Цитата
Imersio Arrigo написал:
Цитата
тот самый   написал:
можно было бы, конечно, "пофантазировать" на тему применения жёстких ссылок в NTFS но....
Не жестких, а символических.

Пофантазировать можно.  Только при чём здесь жёсткие/символические ссылки NTFS?
Надо делать так, как надо. А как не надо - делать не надо.
Утечка памяти
 
Цитата
s_mike@rambler.ru написал:
Создайте ярляк для info.exe и укажате в нем путь к рабочей папке. Она и будет каталогом временных файлов.
Это будет каталог не только для временных файлов, но и файлов настроек, архива графиков. Не хочется их переносить на виртуальный диск.
Надо делать так, как надо. А как не надо - делать не надо.
Утечка памяти
 
Предлагаю добавить настройку, где можно было бы задать каталог для временных файлов, таких как info.log, curr_data.log, alltrade.dat, чтобы их можно было бы перенести на виртуальный диск в оперативной памяти для ускорения работы терминала.
Надо делать так, как надо. А как не надо - делать не надо.
Шаг между страйками
 
Надёжней отсортировать массив опционов одной серии по возрастанию/убыванию и найти min разность между соседними страйками. Это и будет искомый шаг.
Надо делать так, как надо. А как не надо - делать не надо.
getInfoParam is not a string?
 
Код
local Date = getTradeDate().date

function main()
  while not stopped do
    local TradeDate = getTradeDate().date
    if TradeDate and TradeDate ~= '' and TradeDate ~= Date then
     message('Trade date: ' .. TradeDate .. '; Last record time: ' .. getInfoParam('LASTRECORDTIME'))
     return
    end
   sleep(1)  -- Чтобы воспроизвести наверняка, можете убрать sleep
  end
end
Надо делать так, как надо. А как не надо - делать не надо.
getInfoParam is not a string?
 
Цитата
Sergey Gorokhov написал:
Уточните где именно проверяется LASTRECORDTIME?
Если в каком-либо колбеке, то в каком?
Или в цикле в main?
Было бы замечательно получить хотя-бы пример на котором повторяется проблема.

Вот код:
Код
local Date = getTradeDate().date

function main()
  while not_stopped do
    local TradeDate = getTradeDate().date
    if TradeDate and TradeDate ~= '' and TradeDate ~= Date then
     message('Trade date: ' .. TradeDate .. '; Last record time: ' .. getInfoParam('LASTRECORDTIME'))
     return
    end
   sleep(1)  -- Чтобы воспроизвести наверняка, можете убрать sleep
  end
end

Возможно причина в том, что getTradeDate меняется раньше, чем сбрасывается LASTRECORDTIME.
Надо делать так, как надо. А как не надо - делать не надо.
getInfoParam is not a string?
 
Установлена настройка "Очищать данные после смены даты: На сервере (при установлении связи)"
Надо делать так, как надо. А как не надо - делать не надо.
getInfoParam is not a string?
 
А вы проверяйте скриптом через getInfoParam('LASTRECORDTIME')
Терминал работает круглосуточно. В настройках стоит "Восстанавливать связь автоматически".
Утром после рестарта сервера и смены даты getTradeDate().date параметр "LASTRECORDTIME" бывает равен 23:59:хх
Скринов нету, есть только логи:
Цитата
18.08.16 08:45:09.175 Disconnected
18.08.16 09:05:03.015 Trade date: 18.08.2016; Last record time: 23:59
18.08.16 09:05:03.506 Connected
Надо делать так, как надо. А как не надо - делать не надо.
Получение данных о транзакции по стоп-заявке
 
Если заявка исполняется сразу, то, как правило, OnTrade приходит раньше OnOrder.
Поэтому лучше отслеживать статус "Исполнена" порождённой заявки по OnOrder.
Надо делать так, как надо. А как не надо - делать не надо.
getInfoParam is not a string?
 
Также хочу отметить, что по какой-то причине после рестарта сервера и смены даты иногда (?) параметр "LASTRECORDTIME" равен 23:59
Надо делать так, как надо. А как не надо - делать не надо.
Обновление данных в таблице обезличенных сделок
 
Цитата
Eys Eys написал:
В чем причина обновления  данных в таблице обезличенных сделок каждый раз
Возможно, происходит переподключение к другому серверу?
Проверьте настройку
 
Надо делать так, как надо. А как не надо - делать не надо.
getInfoParam is not a string?
 
Sergey Gorokhov,
Это хорошо, что удалось воспроизвести.
Почему были проигнорированы мои сообщения 3 месяца назад?
Надо делать так, как надо. А как не надо - делать не надо.
Порядок работы со списком инструментов при безостановочной работе Quik'а и Lua-скрипта
 
Цитата
Sergey Gorokhov написал:
Цитата
Вячеслав +   написал:
В какой момент нужно проверять, что таблица всех инструментов обновилась (добавились новые, удалились старые)? В момент начала выполнения обработчика OnConnected таблица инструментов уже обновлена?
Проверять после смены сессии в OnCleanUp

На самом деле в OnCleanUp ничего интересного не происходит. Списки инструментов обновляются позже. В OnCleanUp даже дата и идентификатор сессии не обновляются.
Надо делать так, как надо. А как не надо - делать не надо.
getInfoParam is not a string?
 
Именно на регламент я и ориентируюсь.
К примеру, в условии скрипта указано, что если время сервера больше 23:50, то необходимо сохранить данные за прошедший торговый день.
Если раньше этот способ работал, и скрипт, будучи запущенным в любой момент, срабатывал в нужное время, то теперь время сервера не является надёжным источником.
И при чём тут специалисты биржи, если ваш терминал не транслирует время сервера?
Надо делать так, как надо. А как не надо - делать не надо.
getInfoParam is not a string?
 
Цитата
Sergey Gorokhov написал:
Период окончания вечерней сессии указан в расписании торгов.
Я знаю. Но терминал не транслирует время сервера после 23:59:59, о чём я написал выше.

Цитата
Sergey Gorokhov написал:
Если данный способ не устраивает
Вы предложили какой-то способ?
Надо делать так, как надо. А как не надо - делать не надо.
getInfoParam is not a string?
 
Ув. разработчики,
стоит задача выгрузки данных по окончании торговой сессии.
Но в 7-м Квике вместо времени сервера и времени последней записи после 23:59:59 зачем-то транслируется пустая строка, в связи с чем невозможно понять, то ли данные не прокачались, то ли ещё что...
Вы можете предложить надёжный вариант определить период окончания вечерней сессии без необходимости чтения локального времени?
Надо делать так, как надо. А как не надо - делать не надо.
запуск робота при запуске квика
 
Цитата
Космонавт написал:
А если компьютер на ночь уходил в гибернацию без выключения КВИКА, а утром ожил?
Запомнятся ли переменные и будет ли читаться код до функции main?
Код читается один раз при запуске скрипта.
Поскольку перезапуска скрипта не произошло, то код продолжит выполняться с точки останова. При этом все переменные сохранят свои значения.

Цитата
Николай Камынин написал:
Полагаю, что при смене сессии , все начнется сначала.
При смене сессии всё не начнётся сначала. Код будет работать в соответствии с заложенной в него логикой.
Так, если в коде предусмотрено "обнулять" значения переменных при смене сессии, то так и будет. Если "обнуление" не предусмотрено, то значения сохранятся.
Надо делать так, как надо. А как не надо - делать не надо.
Вопрос: как получить в переменную значение элемента массива, но чтобы не было связи между этой переменной и массивом
 
Вариант второй: при сохранении таблицы BIG_DATA в файл выгружать только необходимые параметры, а не все подряд. Очевидно, что список этих параметров конечен.
Надо делать так, как надо. А как не надо - делать не надо.
Ошибки вычисления с плавающей точкой в LUA., LUA не может правильно посчитать 124.4 - 124.3? - Да ладно?!
 
Скрытый текст

Денис,
Код
nul = 0.000000001
function math.compare(x, y)
  return math.abs(x - y) < nul
end
Надо делать так, как надо. А как не надо - делать не надо.
Мера ликвидности опционов, Мера ликвидности опционов
 
"Количество сделок за сегодня", не?
Надо делать так, как надо. А как не надо - делать не надо.
Стоп-заявки, заявки и сделки на графиках QUIK для разных счетов
 
Настройка "Применять глобальный фильтр" для диаграммы.
И фильтр по кодам клиентов на панели инструментов для переключения между счетами.

Только у фильтра есть глюк: сразу после запуска QUIK даже если фильтр заполнен, он не влияет на графики.
2_Техподдерка: Надо бы исправить.
Надо делать так, как надо. А как не надо - делать не надо.
Зависание квика
 
Цитата
Denis K. написал:
Старатель, а вы тоже используете qapi.lua?
Нет. Но в 6.17 такой проблемы не наблюдалось.
Надо делать так, как надо. А как не надо - делать не надо.
Расчет стандартных индикаторов в QLUA
 
Цитата
Sergey Gorokhov написал:
каждый индикатор может получить информацию только из того источника к которому подключен.
Нет, информацию по ценам другого источника можно получить при помощи getCandlesByIndex (см. #1), но не таймфрейм.
Надо делать так, как надо. А как не надо - делать не надо.
Расчет стандартных индикаторов в QLUA
 
Цитата
Sergey Gorokhov написал:
Цитата
Старатель   написал:
И как же получить таймфрейм одного индикатора из другого?
А зачем из другого? Если у них один источник данных то и таймфрейм у них будет один и тот же.
А раз так, то его можно получить через getDataSourceInfo.
Речь про два и более источников данных.
Надо делать так, как надо. А как не надо - делать не надо.
Расчет стандартных индикаторов в QLUA
 
Цитата
Sergey Gorokhov написал:
И? Что мешает получить новый таймфрейм?
Получить настройки одного индикатора из другого действительно нельзя.
Но таймфрейм это не настройка индикатора.
И как же получить таймфрейм одного индикатора из другого?
Надо делать так, как надо. А как не надо - делать не надо.
Зависание квика
 
Аналогичная ситуация, QUIK 7.0.4.10:
Стоит настройка "Очищать данные после смены даты на сервере"
Вечером, после окончания торгов, QUIK закрывается, а на следующий день, в вечернюю сессию я запускаю QUIK. При установлении связи с сервером данные очищаются, и QUIK зависает. Помогает только перезапуск программы.
Данная проблема наблюдается ежедневно.
Надо делать так, как надо. А как не надо - делать не надо.
Фильтр по кодам клиентов, Доступ к фильтру из QLua
 
Добрый день.
Предлагаю дать доступ на чтение к фильтру по кодам клиентов из QLua и, соответственно, добавить колбэк при изменении этого поля.
Будет полезно для брокеров и управляющих.
Надо делать так, как надо. А как не надо - делать не надо.
[ Закрыто] Отказ от поддержки встроенного языка QPILE, Отказ от поддержки встроенного языка QPILE
 
Цитата
Sergey Gorokhov написал:
существуют ли какие-либо препятствия к решению этих задач
средствами LUA?
https://forum.quik.ru/messages/forum9/message15407/topic1359/#message15407
Надо делать так, как надо. А как не надо - делать не надо.
запуск робота при запуске квика
 
https://forum.quik.ru/messages/forum10/message4262/topic475/#message4262
Надо делать так, как надо. А как не надо - делать не надо.
getInfoParam is not a string?
 

Хм... В 7-м Квике до начала следующего торгового дня время сервера не отображается, что ничем не лучше формата записи > 24 ч.
Надо делать так, как надо. А как не надо - делать не надо.
getInfoParam is not a string?
 
А это вообще замечательно:

Время сервера: 10:52:46 - "началась новая торговая сессия" от 06.05.2016
При этом на графике уже есть свеча за 18:45 от 06.05.2016.

Исправьте это недоразумение, чтобы скрипт всегда мог однозначно понять закончилась ли торговая сессия, дату которой QUIK транслирует или ещё не начиналась.
Надо делать так, как надо. А как не надо - делать не надо.
OnQuote
 
Будет работать только та функция, которая описана последней.
Надо делать так, как надо. А как не надо - делать не надо.
Расчет цены клиринга по фьючерсам
 
Таки в ТТП есть параметр, показывающий по фьючерсам цену закрытия (последней сделки) торговой сессии?
Надо делать так, как надо. А как не надо - делать не надо.
getInfoParam is not a string?
 
Здесь были какие-то изменения?

Судя по всему, при подключении к серверу в неторговый день, теперь время сервера начинает отсчитываться с 9-ти утра, так, как будто торги последнего торгового дня ещё не закончились, точнее даже не начинались.
Зачем?
Надо делать так, как надо. А как не надо - делать не надо.
Окно ввода заявки
 
[img]file:///C:/Programs/Temp/Login.png[/img]Согласен, в v.7.2 диалоговые окна сделаны как-то не разумно:
 
Надо делать так, как надо. А как не надо - делать не надо.
Шлюз
 
Цитата
s_mike@rambler.ru написал:
В таком случае рассчитывать на появление скодь- нибудь серьезных программ на встроенным языке нет причин.
А на не встроенном языке (C, C#) ситуация лучше что ли? Возможно, вы имели ввиду "программ под QUIK в целом"?
Надо делать так, как надо. А как не надо - делать не надо.
Стопы, опционы - 2, http://forum-archive.quik.ru/forum/quik/126145/126145/
 
Что-то я не увидел в списках изменений упоминания об устранении обсуждаемой проблемы.
Позже проверю: версия 7.2 только недавно вышла, и что-то у меня сейчас нет желания запускать непроверенную версию в бой.
Надо делать так, как надо. А как не надо - делать не надо.
Стопы, опционы - 2, http://forum-archive.quik.ru/forum/quik/126145/126145/
 
QUIK v.7.0.4.10
Проблема длительного открытия формы ввода стоп-заявки по опционам при подключении к боевому серверу всё ещё актуальна.
Надо делать так, как надо. А как не надо - делать не надо.
Страницы: Пред. 1 ... 20 21 22 23 24 25 26 27 28 29 30 ... 47 След.
Наверх