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

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

Страницы: Пред. 1 ... 20 21 22 23 24 25 26 27 28 29 30 ... 46 След.
коды событий поворотов колеса мыши 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
Проблема длительного открытия формы ввода стоп-заявки по опционам при подключении к боевому серверу всё ещё актуальна.
Надо делать так, как надо. А как не надо - делать не надо.
qpile или qlua
 
Цитата
Алексей Орешкин написал:
И есть ли хоть что то реализуемое на qpile и нереализуемое на qlua ?
QPILE выгодно отличается от QLua в том, что таблицы на QPILE после закрытия QUIK сохраняют свои размеры и положения в отличие от таблиц на QLua. Так, в QLua не сохраняются ширины колонок и вкладка, на которой был запущен скрипт.
Надо делать так, как надо. А как не надо - делать не надо.
Плата за транзакции - а где их взять, У биржи есть плата за транзакции - вопрос в том где их взять
 
Если у брокера установлен лимит на количество бесплатных транзакций в единицу времени, то это касается в т.ч. и транзакций по стоп-заявкам.
Надо делать так, как надо. А как не надо - делать не надо.
Плата за транзакции - а где их взять, У биржи есть плата за транзакции - вопрос в том где их взять
 
Цитата
Николай Камынин написал:
Если я не ошибаюсь, то плата за транзакции возникает при более 30 транзакций в секунду.
Эту плату берут с брокера, а он берет с Вас, если об этом есть в регламенте.
например у БКС введено ограничение на не более 30 в секунду если больше то имеют право вообще отключить.
Это другие поборы, к биржевым не имеют отношения. Так, брокер возьмёт плату и за транзакции по стоп-заявкам, которые на биржу не выводятся.
Надо делать так, как надо. А как не надо - делать не надо.
Может кто уже мучился с лучшим BID, OFFER?!, Пытаюсь реализовать алгоритм выставления лучшими заявками...
 
Цитата
Николай Бехтерев написал:
sleep( ) прерывается КоллБеками?
Если у вас многоядерный комп, то main и колбэки будут работать параллельно.

Цитата
Николай Бехтерев написал:
А что будет если замутить в коллБеке OnQuote( ) цикл while (пока заявка активна) do sendTransaction(убить заявку)
Тут надо включить мозг и подумать над написанным раннее:
Цитата
Старатель написал:
вы не получите следующий колбэк, пока не закончите обрабатывать текущий. А чтобы получить новое состояние заявки - снята - терминал должен получить колбэк OnOrder с этим состоянием.
Все колбэки приходят последовательно.
Надо делать так, как надо. А как не надо - делать не надо.
Может кто уже мучился с лучшим BID, OFFER?!, Пытаюсь реализовать алгоритм выставления лучшими заявками...
 
1. sleep в колбэке с большой долей вероятности приводит к зависанию скрипта и QUIK в целом. Поэтому, использовать sleep в колбэках опасно.
2. Даже если бы это было не так, вы не получите следующий колбэк, пока не закончите обрабатывать текущий. А чтобы получить новое состояние заявки - снята - терминал должен получить колбэк OnOrder с этим состоянием. Поэтому, после подачи транзакции на снятие заявки вам ничего не остаётся, как ждать следующего OnOrder с новыми флагами.
Надо делать так, как надо. А как не надо - делать не надо.
Как в LUA осуществить поиск файла в заданной папке с заданным именем ?
 
Файл может быть заблокирован другим приложением на чтение. А тем более на дозапись (параметр "r+").
Надо делать так, как надо. А как не надо - делать не надо.
Как в LUA осуществить поиск файла в заданной папке с заданным именем ?
 
Цитата
Sergey Gorokhov написал:
Если функция вернула nil значит файла не существует
Или он занят другим приложением.
Надо делать так, как надо. А как не надо - делать не надо.
Сортировка по дате исполнения в "Доске опционов"
 
Цитата
Zoya Skvorcova написал:
Старатель,Спасибо за объяснение. Именно так и проверяли на версиях 7.х. Сообщите, пожалуйста, полную версию QUIK, где проблема воспроизводится.
Проблема была в версии 6.17
В версии 7.0 проблема не воспроизводится.
Надо делать так, как надо. А как не надо - делать не надо.
Сортировка по дате исполнения в "Доске опционов"
 
Фильтр не выполняет свои функции. Поставьте, к примеру, фильтр "меньше либо равно", и всё станет ясно.
Надо делать так, как надо. А как не надо - делать не надо.
Сортировка по дате исполнения в "Доске опционов"
 
В Доске опционов не обновляется параметр "До исполнения". Чтобы он обновился нужно вручную устанавливать параметры опционов.
Пользовательский фильтр по параметру "До исполнения" не работает.
Надо делать так, как надо. А как не надо - делать не надо.
Страницы: Пред. 1 ... 20 21 22 23 24 25 26 27 28 29 30 ... 46 След.
Наверх