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

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

Страницы: Пред. 1 ... 16 17 18 19 20 21 22 23 24 25 26 ... 47 След.
Срочно! Исправтье логическую ошибку при вводе заявки, Потерял на этом деньги
 
Цитата
Egor Zaytsev написал:
Мы уже зарегистрировали такое пожелание от пользователя A.T.
Код
  Если стоит галка  "Рыночная"  и галка  "Исходя из собственных" , то поле 
ввода цены должно становится Disabled (серое, неактивное), и поэтому 
вписать в спешке туда цену физически невозможно (чего не сделано на 
данный момент ! ) и при этом, если в объемах вписано число большее, чем 
это рассчитано  "исходя из собственных" , то выставляется рыночная цена и с
 объемом не более рассчитанного, а НЕ того, что вписано, даже если плечо
 позволяет.
Egor Zaytsev,
Здесь какая-то "каша"... Какое отношение галка "Исходя из собственных" имеет к рыночной цене не понятно. И что вы там зарегистрировали остаётся только догадываться.
Работа параметра  "Исходя из собственных средств" должна быть единой: либо как сейчас, либо, действительно, уменьшать объём, чтобы закупать только на свои. А рыночная цена тут не при чём.
Надо делать так, как надо. А как не надо - делать не надо.
Время изменения стакана получаемого через OnQuotes, OnQuotes - есть ли возможность параллельно с чтением стакана, получить точное время торгового сервера, когда он возник/изменился
 
Цитата
PFelix написал:
сделки прошли позже, если соответствующие калбеки OnAllTrade пришли позже очередного OnQuotes
Всё просто: подключитесь в середине торговой сессии к терминалу и понаблюдайте за ТОС (при выключенной галке "Получать информацию по обезличенным сделкам с текущего момента") и стаканом. Думаю, вы сами всё поймёте.
Надо делать так, как надо. А как не надо - делать не надо.
CalcBuySell()
 
Цитата
Sergey Gorokhov написал:
Указанная галка влияет не только на функцию CalcBuySell, но и вообще на очень многое.

На что ещё влияет галка, кроме расчёта максимального возможного количества лотов в заявке?
Надо делать так, как надо. А как не надо - делать не надо.
Заказ обезличенных сделок
 
Да потому что, редактирование таблицы не должно сбрасывать инструменты для заказа обезличенных сделок, раннее выбранные через настройку "Поток обезличенных сделок…" Как ещё объяснить-то?
Я указал список инструментов, по которым желаю получать обезличенные сделки, в т.ч. в скриптах. Потом открываю ТОС, указываю там один инструмент для визуального наблюдения... И бац, настройка сбрасывается, и в терминал прекращают поступать раннее заказанные инструменты.
Надо делать так, как надо. А как не надо - делать не надо.
CalcBuySell()
 
Цитата
Sergey Gorokhov написал:
Лучше, сделать отдельную функцию, специально для настройки.
Цитата
Sergey Gorokhov написал:
На галку "Исходя только из собственных средств", разве не о ней идет речь?
Вы предлагаете, если требуется в скрипте посчитать max лотов без плеча, то включить галку через скрипт. Потом если надо будет посчитать с плечом, то выключить галку, которая в свою очередь, влияет на ручную торговлю. Вы считаете это логичным?
Надо делать так, как надо. А как не надо - делать не надо.
CalcBuySell()
 
Функция CalcBuySell() возвращает значение в зависимости от установленной настройки "Исходя только из собственных средств", т.е. ведёт себя непредсказуемо.
Предлагаю добавить в функцию опциональный параметр, аналогичный этой настройке.
Надо делать так, как надо. А как не надо - делать не надо.
Помогите с математикой
 
0.3924 * x + 0.44 * x = 500 000
x = 500 000 / (0.3924 + 0.44) = 600 672,75 - искомая сумма для каждой из бумаг
Надо делать так, как надо. А как не надо - делать не надо.
Срочно! Исправтье логическую ошибку при вводе заявки, Потерял на этом деньги
 
Кстати, результат CalcBuySell зависит от галки "исходя из собственных средств", что не есть хорошо.
Лучше добавить опциональный параметр в функцию.
Надо делать так, как надо. А как не надо - делать не надо.
Срочно! Исправтье логическую ошибку при вводе заявки, Потерял на этом деньги
 
A.T., то, что вам нужно, уже есть:
Цитата
swerg написал:
А "Исходя из собственных средств" - это про другое.
Если вы указали объём - то он и будет использован.
Не указывайте объем, просто нажмите на кнопку, где посчитан максимум лотов - и вот тогда параметры заявки будут такие, что рассчитаются "исходя из собственных средств" (если галка такая стоит).
То, как настройка работает сейчас - нормально. Менять не нужно.
Надо делать так, как надо. А как не надо - делать не надо.
Заказ обезличенных сделок
 
Stanislav Tvorogov,
это не пожелание. Это предложение исправить ошибку.
Надо делать так, как надо. А как не надо - делать не надо.
Как узнать по какой цене сработал 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 написал:
отображается ли история по новому инструменту за период торгов старого?
По новому инструменту отображается история за период его существования.
Надо делать так, как надо. А как не надо - делать не надо.
Страницы: Пред. 1 ... 16 17 18 19 20 21 22 23 24 25 26 ... 47 След.
Наверх