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

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

Страницы: Пред. 1 ... 16 17 18 19 20 21 22 23 24 25 26 ... 46 След.
Как узнать по какой цене сработал TAKE_PROFIT_AND_STOP_LIMIT_ORDER?
 
https://forum.quik.ru/messages/forum10/message14027/topic538/#message14027
Надо делать так, как надо. А как не надо - делать не надо.
QUIK 7.11.0.88, Не подставляется "Кол-во лотов" по умолчанию
 
Прикрепите в виде отдельной темы следующую инструкцию, которую я вам высылал неоднократно:

Как сделать "чистую" версию QUIK:

1. Скачать дистрибутив со страницы http://arqatech.com/ru/support/files/

2. Установить QUIK

3. В папке с программой создать bat-файл следующего содержания:
Код
del *.log
del *.ik
del *.dat
del *.wnd*
del *.ini
и выполнить его.

И пользуйтесь ею, пожалуйста. Это избавит нас от многих споров "падает - летает, воспроизводится - не воспроизводится".
И только если проблема не воспроизводится в "чистой" версии имеет смысл запрашивать дополнительные файлы.
Надо делать так, как надо. А как не надо - делать не надо.
QUIK 7.11.0.88, Не подставляется "Кол-во лотов" по умолчанию
 
Цитата
Sergey Gorokhov написал:
Можете не верить но именно при двойном клике по строке в стакане, выдает количество указанное в настройке.
Такое действительно может быть?

Sergey Gorokhov, пришлите, пожалуйста, info.ini, с которыми настройка работает.
Надо делать так, как надо. А как не надо - делать не надо.
Заказ обезличенных сделок
 
В меню <Система / Заказ данных / Поток обезличенных сделок...> выбран класс целиком.
Если теперь создать Таблицу обезличенных сделок и добавить в неё или добавить в раннее открытую таблицу одну бумагу из выбранного класса, то в <Поток обезличенных сделок...> установится фильтр на заказ только одной бумаги из всего класса.
Можно сделать так, чтобы открытие или редактирование ТОС не сбрасывало инструменты, заказанные через <Поток обезличенных сделок...>?
Надо делать так, как надо. А как не надо - делать не надо.
Несколько QUIK путают файлы настроек.
 
Цитата
green_X5 написал:
Ноутбук уснул, проснулся, КВИК не отвечает.
У вас какая версия? Наблюдалось такое до 7.5-7.6, но это явно не из-за чтения настроек: настройки читаются при запуске QUIK.
Надо делать так, как надо. А как не надо - делать не надо.
Падение QUIK с General Protection Fault, DestroyTable() и Clear() при вызове из функции обратного вызова для обработки событий в таблице
 
Цитата
swerg написал:
А точно требуется вызывать DestroyTable для таблицы, связанной с окном, которое и так закрывается?
Я думал таблица при этом автоматически уничтожится.

Часть данных остаётся в памяти, что демонстрирует данный скрипт:
Код
function main()
  t_id = AllocTable()
  message(tostring(t_id))
  AddColumn(t_id, 1, 'Колонка1', true, QTABLE_STRING_TYPE, 20)
  AddColumn(t_id, 2, 'Колонка2', true, QTABLE_STRING_TYPE, 20)
  CreateWindow(t_id)
  while t_id do
    if IsWindowClosed(t_id) then CreateWindow(t_id) end
    sleep(100)
  end
end
Поэтому, если таблица более не нужна, я её Destroy
Надо делать так, как надо. А как не надо - делать не надо.
Падение QUIK с General Protection Fault, DestroyTable() и Clear() при вызове из функции обратного вызова для обработки событий в таблице
 
Цитата
Sergey Gorokhov написал:
Цитата
Антонио   написал:
Наверное, если я прав, имеет смысл в документации указать, что не надо из коллбэка вызывать DestroyTable()  и  Clear()
Надо не в документации писать, а разбираться с причинами падения.

Гы.. Начиная с 7.10 в документацию-таки добавили:
Цитата
SetTableNotificationCallback

Задание функции обратного вызова для обработки событий в таблице.

ВАЖНО! Недопустим вызов функций Clear и DestroyTable для t_id внутри функции обратного вызова f_cb, назначенной на таблицу с данным t_id.

Всегда использовал шаблон:
Код
SetTableNotificationCallback(t_id, function(t_id, msg, par1, par2)
  if msg == QTABLE_CLOSE then
     DestroyTable(t_id)
  end
end
и тут на тебе: чё-то поломали и "недопустимо"..
Надо делать так, как надо. А как не надо - делать не надо.
Быстрая замена фьючерсов
 
В таблице, где предлагается список для замены, добавить колонку с названием окна инструмента
Надо делать так, как надо. А как не надо - делать не надо.
Несчастное окно
 
Окно "Доступные скрипты":
1. Не позволяет изменить размер - надо исправить
2. Кнопки не согласуются с кнопками в других окнах - слишком длинные, занимают лишнее место.
3. Кнопка "Закрыть" вообще не нужна, опять же занимает широкую полосу внизу окна - есть крестик в правом углу для закрытия.
4. Поле "Ошибки выполнения скрипта" можно сделать раскрывающимся, как, например, дополнительное поле в окне ввода заявок. С какой-нибудь индикацией, что скрипт завершился с ошибкой и в доп. поле есть что почитать ))
Надо делать так, как надо. А как не надо - делать не надо.
QUIK 7.11.0.88, Не подставляется "Кол-во лотов" по умолчанию
 
Цитата
Sergey Gorokhov написал:
У нас проблема не воспроизводится.
Цитата
ISR написал:
Подтверждаю, проблема есть - замучался исправлять кол-во.

У них там, видать, дистрибутивы перепутаны: в public выпускают сырые бэта-версии, а stable - для внутреннего пользования.
Месяцами мне поют, что "проблема не воспроизводится". Вы там работаете вообще? Как вы тестируете?
Надо делать так, как надо. А как не надо - делать не надо.
QUIK 7.11.0.88, Не подставляется "Кол-во лотов" по умолчанию
 
Я отправил вам настройки info.ini на почту
Надо делать так, как надо. А как не надо - делать не надо.
QUIK 7.11.0.88, Не подставляется "Кол-во лотов" по умолчанию
 
По F2 берёт значение по умолчанию, по двойному клику - значение под курсором.
Надо делать так, как надо. А как не надо - делать не надо.
QUIK 7.11.0.88, Не подставляется "Кол-во лотов" по умолчанию
 
Цитата
Sergey Gorokhov написал:
1) что такое "вкладка "Торговля""?
Основные настройки... (F9) -> Торговля

Цитата
Sergey Gorokhov написал:
2) в каком смысле игнорируется?
При выставлении заявки из стакана берётся не значение по умолчанию, а значение под курсором
Надо делать так, как надо. А как не надо - делать не надо.
QUIK 7.11.0.88, Не подставляется "Кол-во лотов" по умолчанию
 
После обновления до 7.11.0.88 игнорируется значение параметра "Кол-во лотов" на вкладке "Торговля"
Надо делать так, как надо. А как не надо - делать не надо.
Падение QUIK при DestroyTable
 
Sergey Gorokhov,
к сожалению я не знаю, как вам помочь работать.
Про CQ01930759 и многие другие вы также длительное время "пели", что не падает...
Проблему я обозначил, а вы уж сами смотрите.
Надо делать так, как надо. А как не надо - делать не надо.
Падение QUIK при DestroyTable
 
Проверено в 7.11.
Цитата
Старатель написал:
При разрыве соединения в темной теме QUIK падает.
Надо делать так, как надо. А как не надо - делать не надо.
Падение QUIK при DestroyTable
 
Код
run, t_id = true

function main()
  t_id = AllocTable()
  CreateWindow(t_id)
  while run do
    sleep(1)  -- можно sleep убрать, чтоб наверняка
  end
end
function OnStop()
  run = nil
  DestroyTable(t_id)
end
function OnDisconnected()
  OnStop()
end

При разрыве соединения в темной теме QUIK падает.
Как временное решение проблемы - поставить небольшую задержку в конце main()
Надо делать так, как надо. А как не надо - делать не надо.
Как узнать по какой цене сработал TAKE_PROFIT_AND_STOP_LIMIT_ORDER?
 
Цитата
PFelix написал:
Что, если ПРЕЖДЕ пришел калбек с флагом "расчет", то сохранив "данное знание в переменной",
"по исполнении" мы можем ОДНОЗНАЧНО понимать "в какую сторону" выполнилась стоп-заявка?
Да, только если параметр "отступ от max/min" небольшой, и стоп сразу же исполнился, то колбэка с флагом "расчёт" может не быть. Поэтому на сегодняшний день такая проверка не даёт 100% результат.
Надо делать так, как надо. А как не надо - делать не надо.
Пропадает глобальная таблица _G
 
Sergey Gorokhov, на приведённом куске кода у меня проблема также не воспроизводится  :lol:
Оригинальный скрипт - это более 3 тыс. строк кода. Я попытался его уменьшить, дабы локализовать проблему. Но столкнулся с тем, что при уменьшении ниже 1500 строк ошибка не возникает. Даже удаление неиспользуемых в скрипте функций приводит к тому, что проблема не воспроизводится. Отсюда я делаю вывод, что вероятность возникновения ошибки тем выше, чем больше размер глобальной таблицы.

Вы можете подтвердить или опровергнуть?
Цитата
Старатель написал:
Что-то происходит с глобальной таблицей в колбэках.
Глобальная таблица как-то затрагивается, например для синхронизации потоков?
Надо делать так, как надо. А как не надо - делать не надо.
Зависание Quik, Намертво зависает после подгрузки индикатора
 
Ожидается реакция от разработчиков:
Зависает скрипт со "сложной" в плане кода сортировкой. В коде сортировки нет ошибки: если использовать table.sort или переместить из main в колбэк, то сортировка работает.
Надо делать так, как надо. А как не надо - делать не надо.
Пропадает глобальная таблица _G
 
Падает только скрипт (не терминал) с указанными выше ошибками.
Надо делать так, как надо. А как не надо - делать не надо.
повторный Init() без OnDestroy() в индикаторе, При смене инструмента графика в Lua индикаторе перечитывается файл без предварительного срабатывания OnDestroy()
 
Цитата
Egor Zaytsev написал:
То, что скрипт индикатора перечитывался заново.
В этом есть свой плюс: при изменении кода индикатора не нужно выполнять кучу манипуляций по его удалению и повторному добавлению на график. Достаточно переключить инструмент в режиме связанных окон туда-обратно.
А вот обнуление значений переменных - это проблема: теряются хендлеры файлов, меток и пр.
Надо делать так, как надо. А как не надо - делать не надо.
Пропадает глобальная таблица _G
 
Ошибка возникает не сразу после старта скрипта.
В моём случае после подключения к серверу.
Вот примерный лог работы:
Цитата
main
OnConnected
Sort
OnConnected End
Тут возникает ошибка
Вчера скрипт падал после подключения и отработки OnDepoLimit.
Что-то происходит с глобальной таблицей в колбэках.
Надо делать так, как надо. А как не надо - делать не надо.
Производительность библиотеки bit
 
Немного оптимизировал код:
Код
function test(flags, index)
  local n = 2^index
  return flags % (2 * n) >= n
end

Теперь bit.test быстрее на 38%
Надо делать так, как надо. А как не надо - делать не надо.
Производительность библиотеки bit
 
Цитата
s_mike@rambler.ru написал:
Обновил статью - добавил пример проверки бита, отличного от младшего

Что-то здесь не так:
Код
Число   Номер бита   Выражение   Результат
110111   3   (55 % 8 >= 32)   1
Результат выражения будет false.

Если не ошибаюсь, то функция проверки установленного бита будет выглядеть так:
Код
function bit_test(flags, index)
  return flags % (2^(index+1)) >= 2^index
end
что в два раза медленнее, чем bit.test "из коробки".
Надо делать так, как надо. А как не надо - делать не надо.
getParamEx
 
ilushin, Вот специально проверил:
если исключить первую минуту в 10 ч. и в 19 ч., то разница между соседними тиками по SiM7 составляет 42 пп. (13.04.17 19:05), а по RIM7 220 пп. (06.04.17 19:05) за весь апрель. И то, только потому, что вечерняя сессия в эти дни начиналась в 19:05.
Так что, я склонен считать, что скорее имеет место ошибка в коде. Можете выслать. Будет время - я гляну.
Надо делать так, как надо. А как не надо - делать не надо.
Пропадает глобальная таблица _G
 
QUIK 7.10.0.76. Иногда при подключении к серверу скрипт падает с ошибкой
Цитата
attempt to call global 'W' (a nil value)
W - это функция, которая крутится в цикле main. Она никак не может быть nil.
Вот фрагмент кода:
Код
function OnConnected()
  Sort = true
end
function W()
  return nil
end
function main()
  ...
  while run do
    if Sort then
      table.sort({0, 1})  -- сортировка никак не связана с функцией W, но без сортировки проблема не воспроизводится
      Sort = nil
    elseif not W() then   -- тут возникает ошибка
    else sleep(100) end
  end
end

Целый день убил на поиск проблемы, пока не заглянул в глобальную таблицу _G. А её и нет:
когда изменил код так:
Код
function main()
  while run do
    if Sort then
      table.sort({0, 1})
      Sort = nil
    else
      if not _G then message('Ahtung! Not _G', 3)
      elseif not W() then
      else sleep(100) end
    end
  end
end
то при подключении скрипт стал однократно выдавать сообщение об отсутствии _G (т.е. впоследствии _G снова обнаруживается) или падать с ошибкой
Цитата
attempt to call global 'W' (a table value)
(неожиданно!)
Скрипт использует только функции из qlua.dll, не модифицирует функцию W, и не работает напрямую с глобальной таблицей.

Соответственно, вопрос разработчикам: есть ли в QLua какие-либо механизмы, способные так повлиять на работу?
Надо делать так, как надо. А как не надо - делать не надо.
повторный Init() без OnDestroy() в индикаторе, При смене инструмента графика в Lua индикаторе перечитывается файл без предварительного срабатывания OnDestroy()
 
Что вы признали ошибкой? Обнуление значений переменных?
Надо делать так, как надо. А как не надо - делать не надо.
Цена за лот в таблице котировок, Добавить столбец в таблицу текущих торгов цена последней сделки за лот
 
Цитата
Игорь Акименко написал:
Скажите т.е. есть возможность вывести в эту же таблицу (таблица текущих торгов) необходимый мне параметр
Не, в эту же низзя. Можно создать новую таблицу с необходимыми вам параметрами.

Вообще было бы здорово, если б в ТТТ можно было добавить свои колонки.
Надо делать так, как надо. А как не надо - делать не надо.
Несчастное окно
 
QUIK 7.10. При подключении к серверу происходит обновление окна "Доступные скрипты", по простому: "моргает". Оно как бэ не надо.
Надо делать так, как надо. А как не надо - делать не надо.
Зависание Quik, Намертво зависает после подгрузки индикатора
 
Здесь без всякого цикла зависает:
Код
function main()
  table.ssort({1, 0}, function(a, b) return a[1] < b[1] end)
end
Код с ошибкой, но тем не менее.
Проблема именно в ssort и именно в main.
Надо делать так, как надо. А как не надо - делать не надо.
Цена за лот в таблице котировок, Добавить столбец в таблицу текущих торгов цена последней сделки за лот
 
Игорь Акименко, щас вам скажут : пишите на Lua.
К слову, на Lua, можно любые параметры рассчитать и вывести в таблицу.
Надо делать так, как надо. А как не надо - делать не надо.
getParamEx
 
Цитата
ilushin написал:
А по рим7 OnAllTrade регулярно присылает вместо цены фьючерса цену индекса ртс
Может в код вкралась ошибка?

Цитата
ilushin написал:
Я писал в файл что она присылает, (количество, время, номер сделки присутствовали в ошибочных записях).
Покажите файл.

Цитата
ilushin написал:
по сим тяжело отследить строчки которые на 100 п отличаются
Если вы знаете, что эти цены повлияли на торговлю то по времени сделки можно найти.
Надо делать так, как надо. А как не надо - делать не надо.
Производительность библиотеки bit
 
Цитата
Imersio Arrigo написал:
а какой результат от XOR-а минус единицы с нулем вы ожидаете?

Не знаю, как у вас, у меня на входе положительное число:
Код
message(tostring(0xFFFFFFFF == -1))  -->  false
Надо делать так, как надо. А как не надо - делать не надо.
Производительность библиотеки bit
 
А то, что bit.bxor(0xFFFFFFFF, 0x0) даёт отрицательный результат это нормально?
Надо делать так, как надо. А как не надо - делать не надо.
getParamEx
 
Вопрос был задан потому, что для некоторых инструментов (календарные спрэды) цена может быть как положительной, так нулевой и отрицательной.
Поэтому last = 0 для таких инструментов не является ненормальным.

Цитата
ilushin написал:
Например, сегодня на Sim7 два случая было у меня. прислали цену минус 100 пунктов к цене, а через три часа прислали плюс 100 пунктов к цене.
Покажите лог.
Надо делать так, как надо. А как не надо - делать не надо.
повторный Init() без OnDestroy() в индикаторе, При смене инструмента графика в Lua индикаторе перечитывается файл без предварительного срабатывания OnDestroy()
 
Цитата
Egor Zaytsev написал:
ело в том, что подобные проблемы ранее возникали, если версия ниже 7.5, то обновитесь до актуальной 7.10.
В 7.10, как и в предыдущих, при смене инструмента скрипт индикатора перечитывается заново. При этом значения всех переменных принимают первоначальные значения.
OnDestroy при этом не вызывается.
Надо делать так, как надо. А как не надо - делать не надо.
Как настроить склейку фьючерсов Quik->Amibroker ?
 
Цитата
Русский написал:
Если интересует плавный переход, то можно просто качать склеенный фьючерс с Финама.
В них нет плавности. Склейка происходит с сохранением спрэда между фьючами.
Надо делать так, как надо. А как не надо - делать не надо.
Не открывается график
 
Да, это Lua-таблица, построенная по таблице securities.
Надо делать так, как надо. А как не надо - делать не надо.
Не открывается график
 
Цитата
Stanislav Tvorogov написал:
Уточните, правильно ли понимаем, что при замене инструментов, старые также остаются в таблице текущих торгов?
Нет.

Цитата
Stanislav Tvorogov написал:
отображается ли история по новому инструменту за период торгов старого?
По новому инструменту отображается история за период его существования.
Надо делать так, как надо. А как не надо - делать не надо.
Не открывается график
 
Как я раннее указывал старые инструменты и так остаются в кэше:

И уж коль они есть, то пусть тогда и графики открываются. Просто уберите флаг запрета отображения графиков по бумагам с истёкшим сроком.
Графики нужны для тестирования на history, т.к. новые инструменты пока для этого не годятся.
Надо делать так, как надо. А как не надо - делать не надо.
Не открывается график
 
Несмотря на то, что инструменты сохраняются в sec.dat и таблице securities, графики  - в кэше archive, по инструментам с истёкшим сроком не открываются графики.
Зачем это ограничение?
Надо делать так, как надо. А как не надо - делать не надо.
Функция NumberToRGB(number), Функция преобразовывает одно число цвета в компоненты RGB (red, green, blue)
 
Цитата
Старатель написал:
Так RGB(255, 0, 0) должен соответствовать числу 0xff0000, а по факту соответствует 0x0000ff
Т.о., если подставлять число в HEX-формате получим совсем другой цвет.
Цитата
Michael Bulychev написал:
Никакой ошибки мы тут не видим. Можете пояснить в чем проблема?

Ну я не знаю, как ещё объяснить  :unamused:
В QLua функции работы с цветом (SetColor, Highlight, Settings.line[1].Color) принимают на вход число, не соответствующее цветовой схеме RGB.
Т.о., если мы хотим загрузить из настроек цвет в HEX-формате (0xff0000), то для использования в QLua его надо сначала конвертировать в GBR (0x0000ff).
Это и есть ошибка.
Надо делать так, как надо. А как не надо - делать не надо.
Управление таблицей LUA, Вопросы и пожелания.
 
Предлагаю добавить возможность для Lua-окон из кода задавать свойства: Закрепить окно, убрать заголовок, Поверх всех окон.
Надо делать так, как надо. А как не надо - делать не надо.
Нужен архив котировок, Предлагаю создать раздел архива котировок
 
По индексам, да, в QUIK - лажа: у каждого брокера свои значения
https://forum.quik.ru/messages/forum13/message4538/topic503/#message4538
Надо делать так, как надо. А как не надо - делать не надо.
Гарантийное обеспечение, В руководстве ошибка
 
Цитата
Значения параметров функций

54 BUYDEPO NUMERIC Гарантийное обеспечение продавца
55 SELLDEPO NUMERIC Гарантийное обеспечение покупателя
Надо делать так, как надо. А как не надо - делать не надо.
Заказ всех сделок, Использование CreateDataSource для заказа всех сделок
 
Предлагаю сделать возможным заказывать обезличенные сделки сразу по всему классу:
Код
CreateDataSource(Class, nil, 0)
Надо делать так, как надо. А как не надо - делать не надо.
Момент появления свечи
 
Цитата
Егор Масалкин написал:
Надо сделать так, чтобы проверка отрабатывала всегда на моменте открытия новой свечи.
SetUpdateCallback при смене индекса даст вам как раз момент открытия новой свечи.
Надо делать так, как надо. А как не надо - делать не надо.
getParamEx
 
RIM7RIU7
Николай, подумайте ещё.
Надо делать так, как надо. А как не надо - делать не надо.
getParamEx
 
Michael Bulychev,
я вас услышал.
Проверять можно по косвенным признакам, например по "qty".
Представители биржи уверяют, что обновление таблицы в биржевом потоке цельное.

А как обстоят дела в QUIK? Гарантированно ли, что если qty не равно 0, то в last точно будет цена? (Возвращаемся к вопросу из #3)
Надо делать так, как надо. А как не надо - делать не надо.
Страницы: Пред. 1 ... 16 17 18 19 20 21 22 23 24 25 26 ... 46 След.
Наверх