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

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

Страницы: Пред. 1 ... 15 16 17 18 19 20 21 22 23 24 25 ... 46 След.
setmetatable
 
Код
local t = {vol = 0}
table.insert(t, 1, 3)  -->  t.vol = 3
table.insert(t, 2, 2)  -->  t.vol = 5
table.insert(t, 3, 5)  -->  t.vol = 10
table.remove(t, 2)     -->  t.vol = 8

Можно сделать через метатаблицу, чтобы при добавлении/удалении элемента в таблице в vol автоматически изменялась сумма всех индексных элементов?
Надо делать так, как надо. А как не надо - делать не надо.
Обезличенные сделки, Слетают настройки списков инструментов для заказа обезличенных сделок
 
Давайте подумаем вместе.
Вот настроен список классов для получения обезличенных сделок. В терминале крутятся скрипты, работающие со сделками.
И тут "нерадивому" пользователю вдруг вздумалось зачем-то открыть ТОС и вывести в неё только один инструмент из класса. И бац, терминал перестаёт получать сделки по всем остальным инструментам из этого класса. Как следствие, некорректно работают скрипты.
Вы считаете нормальная логика? И как вы предлагаете работать? Опять лезть в настройки, выставлять фильтры, перекачивать данные, перезапускать скрипты?
Надо делать так, как надо. А как не надо - делать не надо.
Обезличенные сделки, Слетают настройки списков инструментов для заказа обезличенных сделок
 
Предвосхищая вопросы: одна ТОС должна быть открыта всегда, если необходимо работать со сделками из скриптов. В неё может быть добавлен один любой инструмент, не важно какой, главное, чтобы была открыта сама таблица.
При открытии/закрытии других таблиц ТОС происходит #3
Надо делать так, как надо. А как не надо - делать не надо.
Обезличенные сделки, Слетают настройки списков инструментов для заказа обезличенных сделок
 
Надо делать так, как надо. А как не надо - делать не надо.
Обезличенные сделки, Слетают настройки списков инструментов для заказа обезличенных сделок
 
Egor Zaytsev, вы внимательно прочитали, что я написал? Не увидел ответа на свой вопрос.
Вот есть у нас настройки для заказа обезличенных сделок:

Создаём новую таблицу обезличенных сделок, в которую хотим получать только один инструмент. Пусть это будет Si-9.19 в классе FORTS.

Конкретно, в эту таблицу один инструмент. В сам терминал же, по прежнему, сделки должны поступать по всем инструментам выбранных классов согласно первоначальным настройкам.
После создания таблицы настройки для заказа обезличенных сделок сбрасываются, включается фильтр в классе FORST
Надо делать так, как надо. А как не надо - делать не надо.
Таблица всех сделок
 
Egor Zaytsev,
Цитата
Старатель написал:
При перезаказе данных в течение торговой сессии по обезличенным сделкам
Ключевые слова здесь "в течение". Если вы тестируете на демо, да ещё когда торги не активны, то, очевидно, что не воспроизводится. Запустите на боевом QUIK в момент высокой активности торгов, чтобы сделки поступали в терминал непрерывно.
Что касается других площадок, я не проверял.
Надо делать так, как надо. А как не надо - делать не надо.
Обезличенные сделки, Слетают настройки списков инструментов для заказа обезличенных сделок
 
Старая проблема.
Настроен список инструментов для получения информации по обезличенным сделкам.
К примеру, получаем сделки по классу FORTS, фильтр инструментов не включен.
Открываем новую таблицу ТВС и указываем только один инструмент из класса FORTS для вывода в эту таблицу. В результате настройки сбрасываются, сделки по остальным инструментам прекращают поступать.

Надо исправить: при открытии новой таблицы список инструментов не должен изменяться в сторону уменьшения.
Надо делать так, как надо. А как не надо - делать не надо.
Таблица всех сделок
 
Хочу вернуться к данной теме.
При перезаказе данных в течение торговой сессии по обезличенным сделкам (кнопка "Получить заново данные по обезличенным сделкам", настройка "Получать информацию по всем обезличенным сделкам с текущего момента" отключена) нарушается порядок следования сделок в хранилище.


В таблице параметр index - это индекс строки, получаемой функцией
Код
SearchItems('all_trades', 0, getNumberOf('all_trades')-1, function(class_code,sec_code) return sec_code == 'SiU9' and class_code == 'SPBFUT' end, 'class_code,sec_code')

Перезаказ был осуществлен примерно в 12:04. Как видно, первые несколько строк идут с этим временем, далее хронология начинается с начала веченей сессии.
На мой взгляд, это косяк, надо исправить.
А то приходится закрывать QUIK и вручную удалять файл alltrade.dat, чтобы восстановить порядок следования сделок.
Надо делать так, как надо. А как не надо - делать не надо.
Данные из стакана котировок
 
Сначала заявка на бирже проверяется на возможность исполнения, лишь затем не исполненные заявки попадают в очередь - т.н. стакан торгов.
Надо делать так, как надо. А как не надо - делать не надо.
Поделитесь, кто как отслеживает факт "готовности свечи"?
 
Николай Камынин,
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,
это не пожелание. Это предложение исправить ошибку.
Надо делать так, как надо. А как не надо - делать не надо.
Страницы: Пред. 1 ... 15 16 17 18 19 20 21 22 23 24 25 ... 46 След.
Наверх