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

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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 27 След.
Данные из стакана котировок
 
Сначала заявка на бирже проверяется на возможность исполнения, лишь затем не исполненные заявки попадают в очередь - т.н. стакан торгов.
Поделитесь, кто как отслеживает факт "готовности свечи"?
 
Николай Камынин,
offtopic
Показывать последнее значение, точность отображения
 
Некоторых? Ой ли?
Что будем делать?
Показывать последнее значение, точность отображения
 
Для примера взял один из стандартных, какой именно - не помню, не суть
Показывать последнее значение, точность отображения
 
Любой индикатор
Поделитесь, кто как отслеживает факт "готовности свечи"?
 
Цитата
Николай Камынин написал:
синхронизируйте время компа по атомным часам.свеча закрывается всегда точно по указанному кванту времени и выдается "задним числом"т е цена закрытия свечи (close) это цена последней сделки время которой не больше времени закрытия свечи.т е как пропикало закрыть свечу - лови подарок от сервера.можешь не ждать а вычислить сам - можешь даже обогнать.

Что даст вам такой фокус, если в начале нового интервала на вашем "синхронизированном" компе сервер пришлёт данные, относящиеся к предыдущему интервалу времени?
Априори нельзя точно сказать, когда закрылась свеча, пока не откроется новая.
Причём данные разных потоков не синхронизированы. Т.е., если терминал, например, получил обезличенную сделку с нового интервала, это ещё не значит, что на графике свеча закрылась. Более того, в QUIK обезличенные сделки с одной торговой площадки могут обогнать сделки с другой площадки.
Не проверял, но подозреваю, что на графиках та же история. Поскольку данные графиков формируются на стороне сервера по обезличенным сделкам, то теоретически возможен вариант, когда на одном графике (одной торговой площадки) ещё продолжает формироваться старая свеча, а на другом графике (другой торговой площадки) - уже открылась новая свеча.
Потоковая безопасность в QLua - документация и реальность
 
Интересно, что в обработчике OnInit или BODY код, помещенный в ssort, также работает быстрее, хотя main на этом этапе ещё не включается в работу.
Интерактивная работа с QLua
 
QUIK 7.23.1.4
Скрипт-то запускается, но сразу же останавливается.
cwrite ничего не кажет.
Выходит по условию
Код
if stop or c == nil or string_match(c, "^%s*quit%s*$") then
Потоковая безопасность в QLua - документация и реальность
 
Цитата
kroki написал:
Вообще производительность Lua при заданных макросах  lua_lock() / lua_unlock()  просто ужасная, почти на каждом шагу освобождение и захват блокировки.
Здесь я обращал на это внимание.

Цитата
kroki написал:
Поэтому у себя обернул все критические callbacks в  table.ssort() , чтобы не было постоянной борьбы за блокировку с  main().
Цитата
kroki написал:
Но можно использовать для создания "критических секций", то есть вызова произвольних функций при удерживаемой блокировке:
Код
   table.ssort ({  0 ,  0  },  function ()
    -- код здесь выполняется под блокировкой 
    return   true 
 end )
Интересная идея. Возьму на вооружение.
Код, действительно, внутри ssort выполняется быстрее. Но все же в два раза дольше, чем в чистом Lua.

Цитата
kroki написал:
хотя "потоки" - это настояшие потоки операционной системы, в каждый момент времени интерпретатор Lua работает только в одном потоке, параллельной работы интерпретаторов нет.

У разработчиков на этот счет другое мнение:

Цитата
Sergey Gorokhov написал:
Цитата
Старатель написал:
Вопрос разработчикам: верно ли, что в QUIK, как таковой, многопоточности нет?
В QUIK есть многопоточность
Цитата
Старатель написал:
Да, есть два потока: основной и main. Но в каждый момент времени работают команды только из одного потока. Просто происходит переключение между потоками на уровне ОС.
так обрабатывается ситуация при одновременном доступе к одному ресурсу
Показывать последнее значение, точность отображения
 
Где настройка точности отображения последнего значения на графике?
Скрытый текст
Несчастное окно
 
Окно "Доступные скрипты":
  1. Не позволяет изменить размер - надо исправить
  2. Кнопки не согласуются с кнопками в других окнах - слишком длинные, занимают лишнее место.
  3. Кнопка "Закрыть" вообще не нужна, опять же занимает широкую полосу внизу окна - есть крестик в правом углу для закрытия.
  4. Поле "Ошибки выполнения скрипта" можно сделать раскрывающимся, как, например, дополнительное поле в окне ввода заявок. С какой-нибудь индикацией, что скрипт завершился с ошибкой и в доп. поле есть что почитать ))
  5. В поле "Ошибки выполнения скрипта" выводить весь traceback по ошибке, как это делает Lua. Возможно?
Запуск скриптов lua
 
До сих пор нет надёжного решения обсуждаемой проблемы.
Предлагаю добавить событие QTABLE_CLOSETERMINAL для функции SetTableNotificationCallback, срабатывающее при закрытии таблицы в результате закрытия терминала.
Тогда можно будет не останавливать скрипты при закрытии терминала, если они должны автоматом стартовать.
OnClose не всегда спасает, т.к. между колбэком на закрытие таблицы и событием OnClose может пройти много времени.
Модуль опционной аналитики, Кривой расчёт прибылей/убытков
 
info.exe 7.14.1.7
StratVolat.dll 2.1.61.1
Неверно отображается прибыль при цене БА, равной страйку, на момент экспирации.
И как не меняй масштаб, добиться шага цены 100, чтобы страйк попал на одно из делений на шкале, невозможно.
Сбор за транзакции
 
Кроме того, есть ещё сбор за ошибочные транзакции. Это когда транзакция отклоняется по тем или иным причинам. Например, не хватило средств для новой заявки или была попытка снять/переставить заявку после её исполнения.
Цитата
Let_it_go написал:
sbor=0.1*(orders*2-comiss*40)
Выше правильно написали: вам нужно считать не количество заявок, а количество транзакций: поставил заявку - одна транзакция, снял - другая транзакция, move - ещё одна транзакция.
Из http://www.moex.com/a3825 не понятно, учитывает ли методология расчёта ошибочные транзакции в общем количестве неэффективных транзакций.
65000 свечей
 
Цитата
font написал:
Как в этом случае проверять достоверность накопленных данных при сбоях?

font, вы не поверите, но брокер также не может проверить достоверность данных.
И случается, что при сбоях брокер транслирует некорректные данные, пока не укажешь ему на это.
Createdatasource error list
 
Цитата
s_mike@rambler.ru написал:
Я чего-то не понимаю?
Нет бумаги с таким кодом.
Различаются графики в QUIK и экспорт с Финама
 
Цитата
Русский написал:
Скорее всего, Финам даёт котировки по закрытию свечи
Финам даёт и так и так. Это у меня просто при экспорте галочка в браузере перескочила на "время окончания свечи".
Так что вопрос снимается.
Различаются графики в QUIK и экспорт с Финама
 
У кого-нибудь есть свежая история торгов непосредственно с биржи?
А то не совпадают данные из QUIK с экспортом с Финама
Скрытый текст

Как видно на скриншоте идёт смещение на одну минуту.
И такая беда по многим бумагам, которые проверил.
Оборот "Таблицы заявок", Есть ли автоматический подсчет?
 
Можно написать скрипт на Lua
QUIK не может установить соединение с сервером.
 
Добавлю: ночью комп находится в режиме сна.
QUIK не может установить соединение с сервером.
 
Zoya Skvorcova,
не работает (вернее иногда не работает) именно автоподключение после рестарта сервера. Вручную подключается без проблем.
Проблема не в конкретном брокере: она наблюдается как на бою, так и на демо. И судя по всему не только у меня.
Наблюдается с ещё "лохматой" 6-й версии.

Цитата
Zoya Skvorcova написал:
Нужно смотреть что со стороны сервера происходит.  Без логов Вашего брокера не разобраться.
Гы смешно. Раннее мне ваш коллега писал:
Цитата
К сожалению в логах сервера нет никакой информации, которая помогла бы разобраться в проблеме, т.к отключение происходит
на клиентском месте.
Последняя доступная версия QUIK
 
В 7.12 в файл справки QLUA.chm запихали не относящиеся к QLUA файлы, из-за чего он сильно распух и при поиске по словам выдаёт кучу ненужной информации.
История торгов
 
Цитата
swerg написал:
хотя, если просто заменять данными с сервера, а то, чего нет на сервере - просто не трогать...
Вот вот, по F5, например, перезаказать график с сервера, заменив/дописав при этом только те данные, что есть на сервере.
QUIK не может установить соединение с сервером.
 
Тут в 9:06 сервер не был обнаружен, а позже QUIK тупо "завис" на этапе "Идёт подключение к серверу". Т.е., терминал работает, но сам подключаться не хочет.

Цитата
babylon73 написал:
Если вручную разорвать соединение и переподключиться, то терминал вдруг начинает работать
+
QUIK не может установить соединение с сервером.
 
У меня одного если QUIK работает несколько дней, то иногда после перезагрузки сервера, клиент не может установить соединение с сервером?
История торгов
 
1. Каким образом происходит обновление графиков при смене (идентификатора) сессии? Путём дозаписи в конец?
2. Если у брокера произошёл сбой, и часть графика за какой-то период не отображается, а затем он положил на сервер корректные данные, как получить корректный график, не потеряв при этом накопленную историю свыше 3000 свечей, которой нет на сервере?
Очередность срабатывания OnTransReply, OnOrder, OnTrade
 
Цитата
Egor Zaytsev написал:
Цитата
Andrei2016   написал:
2) Сервер QUIK сразу же отправляет запись, пришедшую с биржи, пользователю в соответствии с имеющимся в биржевой записи параметром client_code - по ВСЕМ кодам uid рабочих мест клиента, зарегистрированных у данного брокера. Для обычных - не корпоративных - пользователей такой uid обычно один, в связи с тем, что немногие пользователи - физические лица работают сразу с двумя и более рабочими местами. Но для корпоративных клиентов брокера наличие нескольких рабочих мест и, соответственно, нескольких uid - дело обычное.
Здравствуйте, по первому пункту верно.
По второму есть уточнения. Если у пользователя два разных UID, то он получит ответ только на одном UID.

OnOrder и OnTrade будут отправлены всем пользователям, у которых есть права на просмотр заявок / сделок для данного кода клиента.

Скрытый текст
Некорректно отрабатывается "убрать заголовок"
 
Подтверждаю проблема есть. От разрешения экрана это не зависит.
Egor Zaytsev, как вы проверяете?
Вот таблица после создания, заголовок убран, высота и ширина окна уменьшены до размеров таблицы (обратите внимание!).


Эта же таблица после перезапуска QUIK:
Получить заново таблицу обезличенных сделок
 
Цитата
s_mike@rambler.ru написал:
проверка длины таблицы на каждой обезличенной сделке не бомбит терминал?
А у вас бомбит? Проверка длины таблицы - менее 1 мкс, данный код никак не сказывается на загрузке процессом info.exe

Цитата
swerg написал:
"Передавать в function OnAllTrade(alltrade) признак 'перезаказано заново' " (т.е. в тот вызов OnAllTrade, который случился первым после нажатия кнопки "перезаказать" - должен передаться признак "всё поехало заново")
В такой реализации нет никакого смысла: вы будете также проверять флаг при каждом вызове OnAllTrade.
Получить заново таблицу обезличенных сделок
 
s_mike@rambler.ru, работает, что не так?
Получить заново таблицу обезличенных сделок
 
Код
function OnAllTrade(alltrade)
  if getNumberOf('all_trades') == 1 then
    message('all_trades обновляется.', 2)
  end
end
Многократный вызов CreateDataSource
 
Цитата
Алексей написал:
1. Будет ли нагружать систему многократный вызов CreateDataSource (каждый для своего экземпляра класса, обсчитывающего конкретный индикатор) в плане расхода памяти, или же QUIK кеширует идентичные запросы CreateDataSource, возвращая каждый раз ссылку на одну и ту же таблицу свечек?
Цитата
Sergey Gorokhov написал:
Идентичные вызовы CreateDataSource не должны приводить к нагрузкам или увеличению трафика
Увы, но это не так:
Под каждый вызов CreateDataSource (пусть даже для идентичных бумаги/таймфрейма/параметра) выделяется свой объём памяти.
Срочно! Исправтье логическую ошибку при вводе заявки, Потерял на этом деньги
 
Цитата
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 5 6 7 8 9 10 11 ... 27 След.
Наверх