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

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

Страницы: Пред. 1 ... 40 41 42 43 44 45 46 47 48 49 50 ... 78 След.
Кажется ошибка в OnCalculate в версии 7.6
 
Борис Гудылин,
Проблема у нас не воспроизводится.
Просьба, уточнить как именно меняется инструмент. Какие индикаторы установлены, какие-то из Ваших, или встроенные?
Кажется ошибка в OnCalculate в версии 7.6
 
Цитата
Борис Гудылин написал:
Я про количество индикаторов (типа несколько десятков) в одном окне.
А что не так с количеством индикаторов?
Несколько десятков это не много.

Цитата
Борис Гудылин написал:
И про график длиной в 5000 свечек.
На сервере есть ограничение в 3000 свечек, все остальное накапливает терминал.
Кажется ошибка в OnCalculate в версии 7.6
 
Борис Гудылин,
Возможность предварительной настройки пользовательских индикаторов была убрана.
Кажется ошибка в OnCalculate в версии 7.6
 
Борис Гудылин,
Пришлите пожалуйста Ваш код индикатора.
Кажется ошибка в OnCalculate в версии 7.6
 
s_mike@rambler.ru,
Если Вы говорите что она повторяется значит у Вас есть примеры.
Нам нужен пример, в идеале не старше месяца, чтобы провести адекватный анализ и найти причины.
В частности нужна дата/время свечи, интервал графика, код инструмента/класса и кто брокер.
Кажется ошибка в OnCalculate в версии 7.6
 
Цитата
s_mike@rambler.ru написал:
Вот с этим я и предлагаю разобраться.
Как с этим разбираться если история была ШЕСТЬ лет назад?

Цитата
s_mike@rambler.ru написал:
Подобные "несуразности" возникали у разных брокеров не только 6 лет назад, они имеют место и сейчас.
Приведите пример и мы будем разбираться.
Кажется ошибка в OnCalculate в версии 7.6
 
s_mike@rambler.ru,
И что Вы предлагаете?
Если график заведомо поврежден, надо чинить график, а не фильтровать данные в терминале.
Или Вам известно что было 24го июня шестьлет назад?
Кажется ошибка в OnCalculate в версии 7.6
 
Борис Гудылин,
Еще раз, дело не в версии.
Индикаторы ломаются потому что на графике дырка.
А дырка на графике потому что на сервере брокера график поврежден.
Естественно в обычной жизни такой ситуации не должно быть, однако причины мы выяснить не сможем, так как речь про историю шести летней давности.
Вам нужно либо предусмотреть в индикаторах логику проверки свечей на графике, либо указать Вашему брокеру на проблему и он ее устранит.
Кажется ошибка в OnCalculate в версии 7.6
 
Борис Гудылин,
Класс FEG это иностранная площадка, она есть далеко не у всех брокеров.
По всей видимости, график каким-то образом поврежден на стороне сервера.
Вам нужно обратиться к брокеру указав на проблему.
AddColumn
 
Здравствуйте,
К сожалению точной формулы нет, так как конечный результат напрямую зависит от выбранного шрифта.
Можно взять за правило что width примерно означает количество символов.
Вызов RSI
 
Индикатор RSI строится по EMA, которому нужен расчет по предыдущим значениям.
Скорее всего проблема именно в этом.
Прогоните цикл для корректного расчета
for i=1,ds:Size() do
a=func(i, {Period=12, VType="Typical", round=7}, ds)
end
Вызов RSI
 
Здравствуйте,
Цитата
Космонавт написал:
Спотыкается на строчке внутри индикатора:
Спотыкается это как?
Цитата
Космонавт написал:
DataSource("TQBR","RASP",INTERVAL_M5)  
Что это такое?
Кажется ошибка в OnCalculate в версии 7.6
 
Цитата
Sergey Gorokhov написал:
Борис Гудылин  ,

Уточните точный код инструмента и код класса.

Дополнительно, сообщите через какого брокера работаете.
Кажется ошибка в OnCalculate в версии 7.6
 
Борис Гудылин,

Уточните точный код инструмента и код класса.
Кажется ошибка в OnCalculate в версии 7.6
 
Цитата
Constantin написал:
Правильно написали - время у свечи должно быть, ведь этот параметр существует. Остальные параметры - nil. Плюс свойство exists (или как там оно называется) должно быть установлено в false.
Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
Кажется ошибка в OnCalculate в версии 7.6
 
Здравствуйте,
Действительно, в 7.6 поведение изменилось.
В предыдущих версиях, на пропущенных свечках время выводилось, а вместо цены был 0.
Данное поведение было признано некорректным, так как 0 означает наличие данных, а не их отсутствие.
В связи с чем, начиная с 7.6 на пропущенных свечках выводится nil по всем параметрам (в том числе и по времени).
И это правильно, так как отсутствие свечи это отсутствие данных.
Однако, к сожалению, данное исправление по ошибке не попало в список изменений.
Приносим извинения за неудобства.

В качестве решения, Вам нужно добавить в скрипте проверку на наличие данных, примерно следующим образом:

Код
function OnCalculate(indx)
 -- если новый день, то сохраняем цену начала дня
 if T(indx) and T(indx).hour <= 10 and T(indx).min == 0 then
  price_begin_day = O(indx)
 end
 return price_begin_day
end 
Кажется ошибка в OnCalculate в версии 7.6
 
Здравствуйте,
Описанная проблема у нас не повторяется.
Единственное, есть версия, что ошибку возвращает какой-то другой, параллельно работающий, скрипт.
Проверьте этот момент.
Если разобраться не получится, просьба прислать для анализа, на адрес quiksupport@arqatech.com копию всей папки с проблемным терминалом QUIK (без ключей доступа). В письме укажите ссылку на эту ветку форума.
Программировать на Луа для Плазы
 
Здравствуйте,
Чисто теоретически, если писать на чистом Lua (не QLua), это возможно.
Но как оно будет на практике, сказать затруднительно.
Кажется ошибка в OnCalculate в версии 7.6
 
Здравствуйте,
Просьба уточнить по какому инструменту строится график.
Заранее спасибо.
Скорость обработки
 
Космонавт,
Вы можете сами проверить.
Обработается, но позже чем надо.
Двойное OnDepoLimit, Два раза вызывается функция.
 
bulat,
Вопрос не совсем понятен, колбек и так должен быть один.
Скорее всего у Вас не два одинаковых колбека, а два разных.
Догадываемся что они отличаются видом лимита (параметр limit_kind)
В таком случае достаточно добавить в событии проверку на вид лимита.
Код
function OnDepoLimit(dlimit)
if dlimit.limit_kind==0 then
    message("Текущий остаток по бумагам "..tostring(dlimit.currentbal))
  end
end
Отрисовка графиков в Quik 7.5.0.72, Не обновляются данные на графиках W и MN
 
Здравствуйте,
Версия 7.6 требует свежей версии сервера QUIK.
Если брокер не обновил сервер то терминал 7.6 к нему не подключится с ошибкой вида "Неверная версия протокола"
Единственная рекомендация не обновляться пока брокер обновит сервер.
Проблема с функцией SetSelectedRow()
 
Andrei2016,
1) Это только Ваше мнение. Наша реализация от него отличается. Не видим причин менять реализацию.
2) Для таких случаев существует список изменений, который присутствует в каждом обновлении.
3) Да мы добавили свое событие и срабатывает оно после LBUTTONDOWN. Это наше право как разработчика, так как аналога события QTABLE_SELCHANGED в стандартных функциях Windows нет, а оно нужно.
Скорость обработки
 
Графики (а мы говорим о графиках) строятся по таблице обезличенных сделок, которая транслируется одним сплошным потоком.
Скорость обработки
 
Цитата
Космонавт написал:
Разве Дата Сорс с колбеком не многопоточны?
Нет
Последняя доступная версия QUIK
 
Цитата
ISR написал:
При переходе с 7.5 на 7.6 пропало подключение: Неверная версия протокола. Серверы открытия. Ждать обновления брокера?
Да, верно.
Поле "Тек. чист. поз." в таблице Ограничения по клиентским счетам.
 
Цитата
Юрий Юдицкий написал:
т.е. проблема неверного отображения ГО упирается только в версию? ок, буду иметь ввиду

С момента выхода версии 5.17 уже прошло очень много лет, поэтому не исключено что в старой версии были какие-то проблемы.
Вы можете это легко проверить.
Сделайте резервную копию всей папки с терминалом.
Потом установите обновление и проверьте.
После этого верните обратно содержимое папки из резервной копии.
не получать сделки премаркета
 
Здравствуйте,
Только внутри кода.
Скорость обработки
 
Цитата
Космонавт написал:
Грамотно ли будет local num_candles превратить в local num_candles[sec]. Ведь возникают риски, что две сделки про разным акциям произойдут одновременно, и с этой переменной произойдёт каша, на неё будут претендовать две акции. или я заблуждаюсь?

У Вас переменная num_candles и так заполняется в зависимости от бумаги.
То есть никакой каши не произойдет.
OnConnected
 
Космонавт,

Видимо Вы не совсем понимаете что такое события.
Попробуем объяснить. События это функция которая вызывается терминалом при определенных обстоятельствах.
То есть когда Вы пишите "s=OnConnected ()" то это Вы вызываете функцию OnConnected, а не терминал.
Соответственно делая так "s=OnConnected ()" Вы не получите нужного результата, так как функция сработает не тогда когда надо, а тогда когда Вы ее вызовите.

Вам надо написать так:
Код
s=false
function OnConnected(flag)
s=true
end
function OnDisconnected()
s=false
end


В таком случае, когда Вы запустите код, переменная s=false
Когда терминал вызовет функцию OnConnected, она сработает и переменная станет s=true
Когда терминал вызовет функцию OnDisconnected, она сработает и переменная станет s=false
OnConnected
 
Код
function OnConnected(flag)

end

s=isConnected()

OnConnected
 
Цитата
Космонавт написал:
s=OnConnected () выдаёт нил.

OnConnected это событие и работать с ним надо как с событием.
Если нужно запросить статус это функция isConnected
Поле "Тек. чист. поз." в таблице Ограничения по клиентским счетам.
 
Цитата
Юрий Юдицкий написал:
Цитата
Denis   написал:
Юрий Юдицкий  ,версия квика?
очень старая, 5.17. Обновить не могу, привод к ней привязан :(

К сожалению кроме как обновить терминал мы ничего более рекомендовать не можем.
Проблема с функцией SetSelectedRow()
 
Цитата
Andrei2016 написал:
1) Почему в документации по QLUA ни слова нет обо всех этих нюансах?
О каких нюансах?

Цитата
Andrei2016 написал:
2) Почему в документации по QLUA не документированы полные цепочки генерируемых событий при тех или иных нажатиях клавиш, кнопок?
ситуации вида "что будет если" не описываются в документации, потому что такой список ограничен только воображением.

Цитата
Andrei2016 написал:
3) Почему вызов SetSelectedRow() не отменяет (и не снимает)  генерацию (обработку) события QTABLE_SELCHANGED?
Вопрос не понятен. А почему оно должно его отменять? Событие же было.
Автоматическое переподключение., Автоматическое переподключение.
 
Цитата
Эл Саф написал:
Время для восстановления связи указывать по московскому или по местному времени??
Конечно по местному.
Автоматическое переподключение., Автоматическое переподключение.
 
Цитата
Denis написал:
Stanislav Tvorogov  , спасибо! Еще вопрос: на что повлияет усли уменьшить размер сообщения, посылаемого при проверке связи с сервером в процессе работы? По умолчанию стоит 128.

На работу никак не повлияет. Может повлиять на достоверность показателей в информационном окне (Система - О программе - Информационное окно).
Что срабатывает быстрее?
 
Текущая таблица, Таблица обезличенных сделок и Стакан едут разными никак не синхронизированными потоками.
Поэтому никакого жесткого порядка в их поступлении нет.
Ошибка в обработке события нажатия кнопки мышки на шапку таблицы
 
Здравствуйте!

Информация получена, проблема изучается. Постараемся в ближайшее время дать ответ.
Как не получать все тики через SetUpdateCallback
 
Цитата
Космонавт написал:
Ок, так что мне делать?

Добавьте в колбек условие проверки на дату.
Если она не сегодняшняя, то данные просто игнорировать.
Как не получать все тики через SetUpdateCallback
 
Цитата
Космонавт написал:
Сейчас записей в таблице обезличенных сделок нет.

Если минутки, то таблица обезличенных сделок совершенно не причем.
Интервальные графики формируются сервером и отправляются пользователю независимо от таблицы обезличенных сделок.

При заказе, Вы получаете исторические данные.
Как не получать все тики через SetUpdateCallback
 
Космонавт,

К сожалению так как Вы полностью игнорируете задаваемые вопросы, то объяснить происходящее крайне затруднительно
Как не получать все тики через SetUpdateCallback
 
Космонавт,
Еще раз, сейчас важно не то как себя ведет робот, а то реально записи в таблице есть или нет.
Если до запуска робота они есть, то в роботе колбек не сработает.
Если нет, то робот их закажет и сработает колбек.
Другой вопрос, а должны ли они вообще там быть до торгов. Это уже зависит от того что это за данные.
Если пятничные, значит Вы подключились к серверу до смены торговой сессии. Хотя это странно, обычно брокера меняют торговую сессию гораздо раньше чем за пол часа до торгов. И я все еще надеюсь что интервал у Вас тиковый. Хотя и на этот вопрос ответа не последовало.
Как не получать все тики через SetUpdateCallback
 
Космонавт,
Не, Вы не ответили на вопрос.
И от ответа, будет зависеть объяснение происходящему.

Хорошо, раз диалога не получается постараюсь рассказать как это работает.
Скорее всего, мы с Вами говорим про тиковый интервал, не так ли? Потому что если говорить о других интервалах то поведение немного уже другое.
Функция установленная в SetUpdateCallback срабатывает только при получении информации терминалом. Просто так она сработать не может.
Откройте в терминале тиковый график, подождите пока он загрузится. И закажите точно такой же график через CreateDataSource, и посмотрите сами что поедет через SetUpdateCallback. А приедет туда только свежая информация.

Поэтому возникает вполне логичный вопрос, как у Вас срабатывает функция когда с Ваших слов таблица уже прогрузилась.
А срабатывает она скорее всего потому что таблица на самом деле не прогрузилась. А происходит перезакачка данных из-за смены даты.
Но это лишь теория, так как ответа от Вас не прозвучало.
Как не получать все тики через SetUpdateCallback
 
Цитата
Космонавт написал:
В субботу сервер брокера работал и прогрузил сделки пятницы в полном объёме

Ну да, сервер брокера прогрузил. Но мы же говорим не про сервер брокера а про терминал QUIK.
Вопрос все еще в силе.
Цитата
Вы уверены что Все сделки в КВИК уже давно прогружены?
Или же как раз в процессе загрузки данных срабатывает функция mycallbackforallstocks?
Как не получать все тики через SetUpdateCallback
 
Вы уверены что в субботу данные у Вас не закачиваются повторно?
Как не получать все тики через SetUpdateCallback
 
Цитата
Космонавт написал:
Да, однозачно уверен. Я осознанно жду пока все сделки прогрузятся вплоть до времени 18-50 (конец сессии) и только потом клацаю на запуск робота

Нет не уверены.
Вы ждете до времени 18-50 в пятницу, а речь про субботу.
Как не получать все тики через SetUpdateCallback
 
Космонавт,

Вы уверены что Все сделки в КВИК уже давно прогружены?
Или же как раз в процессе загрузки данных срабатывает функция mycallbackforallstocks?
Как не получать все тики через SetUpdateCallback
 
Цитата
Космонавт написал:
1. Почему все тики (с самого начала) начали обрабатываться в субботу? К моменту запуска робота Таблица всех сделок уже давно прогрузилась!
Поясните что такое в Вашем понимании "обрабатывается"?
SetUpdateCallback зависания системы
 
Цитата
Космонавт написал:
надо заменить на
Да верно.
Цитата
Космонавт написал:
в итоге я буду получать данные каждый раз при пробеге цикла, а не по апдейту?
Тоже верно
Отладка скриптов Lua для Quik., Как произвести отладку скрипта?
 
Цитата
Виктор Столетов написал:
Ведь к свечам текущего тайм-фрэйма графика я и так имею доступ с помощью  функций O(i), C(i), L(i),H(i),V(i),T(i).day и т.д., после отработки Oncalculate.   Зачем же мне  использовать функцию getCandlesByIndex?
getCandlesByIndex имеет смысл использовать если требуется получить доступ не к текущему графику. О чем Вы сами говорили выше.
При этом другой график может отличаться чем угодно. Таймфреймом, инструментом, или даже быть другим индикатором.
Страницы: Пред. 1 ... 40 41 42 43 44 45 46 47 48 49 50 ... 78 След.
Наверх