возможна ли ситуация с получением данных графика, когда свеча уже имеется (учтена в getnumcandles), но ее значение не заполнено и по getCandlesByIndex возвращаются ohlcv 0?
возникает при очень частом опросе графика, последующий запрос выдает то же количество свечей, но ohlcv уже реальные
Пасхалочка для Алексея Иванникова:
Индикатор средневзвешенной объемом цены Volume Weighted Average Price (VWAP)
Пользователь
Сообщений: Регистрация: 30.01.2015
13.10.2020 22:51:44
Проверьте на чистом квике, без старых настроек.
если проблема будет повторяться, напишите мне в Скайп mikemsk, разберемся.
Пасхалочка для Алексея Иванникова:
Индикатор средневзвешенной объемом цены Volume Weighted Average Price (VWAP)
Подскажите, пожалуйста, где можно скачать индикатор VWAP для Quik?
Пасхалочка для Алексея Иванникова:
Получение значения индикатора не открывая данных графика
Пользователь
Сообщений: Регистрация: 30.01.2015
12.10.2020 12:01:14
Цитата
Максим написал: Здравствуйте, подскажите, есть ли возможность получение значений индикатора МАСД не открывая сам график и не рассчитывая самому в скрипте. Постановка задачи: Пройтись по таблице текущие торги и отобрать акции с определенным значением МАСД.
Здравствуйте, я бы хотел для одного инструмента задать одновременно отрицательное значение и положительное, к примеру -30% и +30%, и к сожалению нельзя выбрать применить такое условие ко всем активам в таблице, т.к нудно к примеру 258 акций вручную проставлять
посиотрите, может быть это подойдёт
Пасхалочка для Алексея Иванникова:
Как убрать нуль после точки?, .0
Пользователь
Сообщений: Регистрация: 30.01.2015
05.10.2020 15:28:12
Шаг цены не представляет никакого интереса в данном случае. Для precision (при необходимости) используется значение scale из getSecurityInfo
s_mike@rambler.ru написал: тогда все нули после запятой отрежутся
А у зила шаг цены 5 )
И?
Пасхалочка для Алексея Иванникова:
Как убрать нуль после точки?, .0
Пользователь
Сообщений: Регистрация: 30.01.2015
05.10.2020 15:00:32
function string.trim_zeroes(num,precision)
return string.format("%.".. (precision or "8") .. "f",num):match("^([%-]?%d*%.-%d-)%.?0*$") end
precision берем из getSecurityInfo или вообще не указываем, тогда все нули после запятой отрежутся
Пасхалочка для Алексея Иванникова:
Забавный глюк в message
Пользователь
Сообщений: Регистрация: 30.01.2015
05.10.2020 14:12:45
Читайте внимательно. "Косвенно, как в вашем примере"
конкатенация значений всегда подразумевает преобразование строке.
Пасхалочка для Алексея Иванникова:
Забавный глюк в message
Пользователь
Сообщений: Регистрация: 30.01.2015
05.10.2020 13:37:10
Меssage выводит только строки. Остальные типы данных игнорирует. Поэтому вам нужно самим делать преобразование tostring явно или косвенно, как в вашем примере
дружелюбие к пользователям -это не про Квик.
Пасхалочка для Алексея Иванникова:
Роботы всякие и прочие глупости
Пользователь
Сообщений: Регистрация: 30.01.2015
30.09.2020 13:22:17
Уважаемый. Я вам два раза уже намекал, что вы не разработчик терминала и не даже понимаете суть вопроса.
не мусорьте, помолчите и подождите ответа разработчиков.
Пасхалочка для Алексея Иванникова:
Роботы всякие и прочие глупости
Пользователь
Сообщений: Регистрация: 30.01.2015
30.09.2020 11:47:46
Владимир, видите кролика? Нет? А он есть.
я надеюсь, что Сергей Горохов или кто то другой из разработчиков сможет привести какой нибудь вразумительный рецепт, в какой момент робот может быть уверен, что полученные им последние, самые правые значения котировок на графике на самом деле отражают текущее состояние торгов, а не являются мусором, оставшимися из прошлых дней.
вопрос в том и состоит, как убедиться, что данные более менее актуальны и заветное пересечение скользящих средних на самом деле только что произошло, а не позавчера ))
то же самое относится и к иным данным, не только к истории котировок.
Я надеюсь, что разработчиков получится дать более-менее развернутый ответ.
Пасхалочка для Алексея Иванникова:
Роботы всякие и прочие глупости
Пользователь
Сообщений: Регистрация: 30.01.2015
30.09.2020 09:49:52
Сергей,
вот и приведите эту последовательность. Или последовательности.
только желательно в общем виде. Я пытался многими способами и все равно время от времени получаю от людей, которые пользуются моими роботами логи, в которых видны невообразимые чудеса в вопросе получаемых роботами данных.
Пасхалочка для Алексея Иванникова:
Роботы всякие и прочие глупости
Пользователь
Сообщений: Регистрация: 30.01.2015
30.09.2020 09:34:34
Уважаемые разработчики.
добавляя в терминал язык луа, вы наверняка подразумевали , что на нем будут писаться разные роботы и прочая торгующая ерунда.
в таком случае у вас должно быть понимание, как необходимо при помощи языка луа принимать решение о возможности начала работы алгоритма после старта скрипта.
проблема состоит в проверке, что данные, получаемые роботом из терминала, отражают текущее или почти текущее состояние торгов и можно приступать к анализу условий и самой торговле.
варианты:
1. Терминал давно запущен до запуска робота 2. Терминал и робот запущены одновременно , необходимые данные в терминале доступны 3. Терминал и робот запущены одновременно , необходимые данные в терминале пока недоступны 4. Смена сессии , нужные шлюзы доступны/недоступны, когда нибудь подключатся 5. У косого брокера на букву Ф опять понос и посреди дня он медленно и печально начал перезагружать всю историю с 1812 года 6. Инструмент неликвидный, много пропущенных свечей, в том числе последних
и так далее..
в общих словах вопрос.
как робот может понять, что данные, ему даёт терминал, являются более-менее актуальными, а не прошлогодними и можно торговать? Пожалуйста, приведите какую нибудь осмысленную последовательность проверок.
я понимаю, что терминал сам не знает, последняя свеча ему пришла или непоследняя. Но луа в терминал вы же не по пьяни встраивали, а после "регистрации пожелания, постараемся его рассмотреть и сообщить" и далее по тексту.
вы же пробовали сами что то писать на луа, верно?)
Пасхалочка для Алексея Иванникова:
Средняя для обьемов, как отобразить среднюю
Пользователь
Сообщений: Регистрация: 30.01.2015
23.09.2020 08:39:58
Пасхалочка для Алексея Иванникова:
Изменяется порядок нахождения сделок в таблице all_trades в зависимости от параметров таблицы все сделки.
обезличенные сделки отсортированы в пределах одного инструмента на уровне внутренней базы квика.
Пасхалочка для Алексея Иванникова:
Изменяется порядок нахождения сделок в таблице all_trades в зависимости от параметров таблицы все сделки.
Пользователь
Сообщений: Регистрация: 30.01.2015
17.09.2020 21:59:46
Сделайте скриншот таблицы обезличенных сделок, чтобы на нем было видно, что сделка с меньшим временем находится ниже сделки с бОльшим временем в пределах одного инструмента.
если такой случай сделать не получается (так и будет) - ищите ошибку в том, что у вас работает через "луа апи"
Пасхалочка для Алексея Иванникова:
Изменяется порядок нахождения сделок в таблице all_trades в зависимости от параметров таблицы все сделки.
Пользователь
Сообщений: Регистрация: 30.01.2015
17.09.2020 14:55:59
Цитата
Александр написал: 1. В потоке обезличенных сделок: GAZP, BRV, SBER, RIZ0, SIZ0. 2. Создаю таблицу "Всех сделок" добавляю GAZP. 3. Жду загрузки 4. Удаляют из таблиц всех сделок, удаляю GAZP и добавляю BRV0 5. Жду когда загрузятся тики 6. Запускаю скрипт и получаю доступ к таблице all_trades через lua api. 7. Сначала выводятся сделки по BRV0 со временем 10:25 8. Потом идут сделки по BRV0 со временем 10:00 Получается в таблице all_trades - теряется порядок хронологии. Все остальные сделки идут верно.
никто и никогда не обещал, что в таблице обезличенных сделок будет какое то упорядочивание по времени.
единственное, на что можно полагаться с большой долей уверенности - что в пределах одного инструмента сделки будут отсортированы по возрастанию времени.
Пасхалочка для Алексея Иванникова:
Таблицы в Lua, Таблицы в Lua
Пользователь
Сообщений: Регистрация: 30.01.2015
16.09.2020 17:25:07
Table и line - это не объекты, а ссылки.
Пасхалочка для Алексея Иванникова:
luasql (проблема с cursor:fetch)
Пользователь
Сообщений: Регистрация: 30.01.2015
14.09.2020 21:15:17
Цитата
TGB написал: По ссылке сейчас находятся релизные dll для sqlite 5.3
Только рекомендация по использованию (... положите все в папку квик .... ) неправильная
Пасхалочка для Алексея Иванникова:
вывести выставление заявки из функции main в отдельную функцию
s_mike@rambler.ru написал: в getinfo по функции иногда не фигурирует ее название
По ссылке выше как раз ответ, если функция вызвана через pcall, дебаггер ее имя не найдет. От себя добавлю, что в квике все колбеки вызываются через pcall, инфа сотка.
то есть я не смогу получить ни одно название функции, вызванной в колбеке или предопределенной функции индикатора?
это утверждение опровергается практикой. Инфа сотка стопудово )
Антон, tail call обязательно фигурирует в списке вложенности. Вы это можете легко проверить.
речь идёт не о стеке вызовов, тут все правильно. Речь идёт о том, что в getinfo по функции иногда не фигурирует ее название. Хотя вся остальная информация верна, трассировка вызовов правильная.
в предыдущих версиях терминала я этого ни разу не замечал, хотя пользуюсь этим механизмом для отладки много лет. В 8.7 тоже было все нормально , а вот в 8.8 - нате вам.
может, причуды галактической пыли, может, у меня резкость пропала, а может и нога попала в колесо у разработчиков.
Пасхалочка для Алексея Иванникова:
Debug function name
Пользователь
Сообщений: Регистрация: 30.01.2015
05.09.2020 18:50:20
Цитата
Anton написал: Предположу, что в одних местах функция вызвана "посередине", а в других происходит tail call, в этом случае уровень 1 заглядывает на функцию выше и, соответственно, локальных имен вызывающей функции не видит.
ничего не понял. Посередине - это как? Между левой и правой штаниной?))
Нет. Анонимные функции помечаются явным образом, это видно.
Пасхалочка для Алексея Иванникова:
Debug function name
Пользователь
Сообщений: Регистрация: 30.01.2015
04.09.2020 12:54:32
В версии 8.8 наблюдаю странную вещь.
в одних местах скрипта debug.getinfo(1) выдает таблицу , в которой есть поле name,
а других местах в получаемой таблице этого поля нет. Остальные поля вроде на месте.
вызов идёт из луа, си функций в последовательности вызова нет.
что может быть тому причиной?
Пасхалочка для Алексея Иванникова:
Написание торгового робота на заказ, Не увидел раздела на форуме..
Пользователь
Сообщений: Регистрация: 30.01.2015
01.09.2020 16:53:12
Цитата
Evgenii написал: Не думаю. Там несколько функций открытия сделок и отслеживание для выставления стоп заявок в цикле в течении бара. Плюс поля статусы. В теории даже названия моно переопределить, если уж совсем заморочиться. Но это не нужно. Реально используется очень мало. Речь не идет об кубиках Tslab
Спорить о вкусе ананаса имеет смысл только с тем, кто его пробовал.
Пасхалочка для Алексея Иванникова:
Написание торгового робота на заказ, Не увидел раздела на форуме..
Пользователь
Сообщений: Регистрация: 30.01.2015
31.08.2020 20:07:47
Цитата
Evgenii написал: Добрый день. Кто пишет торговые роботы? Нужен шаблон для переноса торговых роботов с TSlab или Wealth-Lab для Quik 8.7.1 и выше
Евгений,
шаблон, как таковой для переноса из системы теханализа в квик сделать нереально. Придется каждый робот писать отдельно
s_mike@rambler.ru написал: скринсейвер с паролем решают проблему.
К сожалению не решают, а пользователю затрудняют жизнь. У меня сложный пароль а при входе через RDP буфер обмена не работает (может конечно это можно решить, я не искал) и приходится вводить вручную.
microsoft RDP клиент позволяет сохранить пароли и остальные настройки, они будут применяться автоматически.
написал: Можно высказать пожелание установить пароль на рабочее место Квика - чтобы ничего нельзя было сделать, но в то же время роботы, архивы все работало?
Интересное пожелание. Пожалуй присоединюсь.
скринсейвер с паролем решают проблему.
Пасхалочка для Алексея Иванникова:
Снятие заявки, server check failed
Пользователь
Сообщений: Регистрация: 30.01.2015
13.08.2020 20:58:27
Цитата
Сергей написал: Раз уж топик про снятие заявок, внесу и свои 5 копеек. Проблем с коллбэками onTransReply не наблюдал, но зато стабильно приходят два коллбэка onOrder, причем флаг снятия ордера поднят только во втором. Получается сначала приходит коллбэк о том, что мы якобы выставили ордер (хотя он уже есть и активен), и только потом, что он снимается. Зачем такая история? Терминал 8.3.2.4, если что.
Сначала в заявке изменяются некоторые поля, к которым у вас доступа нет и вы не видите изменений в первом пришедшем колбеке, потом заявка снимается и снова вам приходит колбек, в котором изменения вам уже видны.
таково его, терминала, природное свойство.
Пасхалочка для Алексея Иванникова:
Хотелки, Доработки улучшающие работу в QUIK
Пользователь
Сообщений: Регистрация: 30.01.2015
13.08.2020 20:49:57
Цитата
spindel написал: Считаю разделители временных периодов на графиках на любом ТФ помогут лучшему восприятию и работе в терминале.
написал: Позволено в скриптах, отказано в индикаторах
Эти константы используются в CreateDataSource, который недоступен в индикаторах.
То, что они недоступны, козе известно.
Оказывается, что константы таймфреймов у createdatasource getsourceinfo совпадают частично, а не полностью. Все таймфреймы от тикового до H4 включительно имеют одинаковые значения, а D1,W1,MN1 разные.
Вот это номер.
Была такая игра - Prince of Persian, где героя на каждом шагу ожидали неожиданные и нелогичные засады. Только там они были сделаны намеренно....
Пасхалочка для Алексея Иванникова:
source_info в индикаторе
Пользователь
Сообщений: Регистрация: 30.01.2015
12.08.2020 13:12:34
Цитата
написал: Почему смердам позволено их видеть в индикаторах, но величайше отказано в индикаторах?
Позволено в скриптах, отказано в индикаторах
Пасхалочка для Алексея Иванникова:
source_info в индикаторе
Пользователь
Сообщений: Регистрация: 30.01.2015
12.08.2020 13:10:56
И в догонку второй вопрос
В чем величайший скрытый смысл отсутствия констант типа INTERVAL_H1 в индикаторах?
Почему смердам позволено их видеть в индикаторах, но величайше отказано в индикаторах?
Если это не ошибка, будьте любезны, объясните происходящее.
Пасхалочка для Алексея Иванникова:
CreateNetDateSource
Пользователь
Сообщений: Регистрация: 30.01.2015
07.08.2020 08:52:09
Цитата
Sergey Gorokhov написал: , Просто в тексте ошибки забыли поменять старое наименование. Правильно так "CreateDataSource failed" Текст обязательно поправим.
ясно, Сергей.
Вообще то диагностика createdatasource failed не несёт в себе ни байта полезной информации. "Чтой-та гдета нитаво". Это мы и так знаем, раз полезли смотреть диагностику ошибки.
если уж полезете исправлять, надо бы что то более осмысленное возвращать.
Пасхалочка для Алексея Иванникова:
CreateNetDateSource
Пользователь
Сообщений: Регистрация: 30.01.2015
06.08.2020 19:18:04
Что за зверь такой неизведанный?
Зачем я вижу ошибки исполнения от него? Какие они бывают, откель они берутся и когда?
написал: Линейная у SearchItems сложность. Искал в ТВС. Оси условные.
Да, тоже посмотрел, линейная. Утверждение, что SearchItems работает быстрее, стало еще более загадочно, с чего бы?
Цикл перебора по getitem гоняет ВСЕ данные через бутылочное горлышко между скриптом и терминалом. На этом много потерь.
SearchItems при наличии фильтрации прореживает данные хранилища внутри qlua и выдает на гора уже выборку. За счет этого идет значительная экономия при правильно выбранных фильтрах.
Не очень удачная конфигурация на мой взгляд, но ежли нужно, то .
,
спасибо.
Пасхалочка для Алексея Иванникова:
luasql (проблема с cursor:fetch)
Пользователь
Сообщений: Регистрация: 30.01.2015
02.08.2020 17:53:54
Цитата
Nikolay написал: Собирали сами? У меня стабильно падала после некоторого времени. Надо заново проверить, вдруг починили. Техподдержка Квика так и не ответила, по моему обращению.
да, сам собрал.
если надо, пишите почтой, поделюсь.
если вдруг у кого то есть sqlite для 5.3 x64 - буду очень рад.
Пасхалочка для Алексея Иванникова:
luasql (проблема с cursor:fetch)
Пользователь
Сообщений: Регистрация: 30.01.2015
02.08.2020 15:16:52
Цитата
Nikolay написал: Я год назад, когда собрал версию для х64, тоже столкнулся с этим. Даже issue отправлял
Решение - перейти на итератор курсора.
Код
function SQL_Rows (connection, sql_statement)
local cursor = assert(connection:execute (sql_statement))
return function ()
return cursor:fetch()
end
end
Кстати, у Вас библиотека на х64 стабильно работает? Я бросил попытки еще в январе.
я пользовал для 8.4 lsqlite3 lua 5.1 x64.
никаких проблем.
Пасхалочка для Алексея Иванникова:
Звуковой сигнал в интерпретаторе lua.exe, Как сделать сигнал beep при запуске программы с помощью lua.exe
Пользователь
Сообщений: Регистрация: 30.01.2015
31.07.2020 20:27:22
.. c зажатым Аlt, конечно...
Пасхалочка для Алексея Иванникова:
Звуковой сигнал в интерпретаторе lua.exe, Как сделать сигнал beep при запуске программы с помощью lua.exe
Пользователь
Сообщений: Регистрация: 30.01.2015
31.07.2020 20:26:21
Создайте командный файл beep.bat, в него напишите
echo ^7
^7 - это один символ, набирается на дополнительнойклавиатуре с зажатым контролом <Аlt>007
или в редакторе notepad++ и окна таблицы a ascii.
из луа просто вызовите os.execute("beep.bat")
также вместо этого в ф.bat запустить любой медиа проигрыватель с нужной вам мелодией.
Пасхалочка для Алексея Иванникова:
CreateDataSource
Пользователь
Сообщений: Регистрация: 30.01.2015
31.07.2020 12:17:18
Наверное из индикатора вызываете. Из него нельзя.
Пасхалочка для Алексея Иванникова:
Сдвижка графиков индикаторов, Механизм работы сдвижки индикаторов
Пользователь
Сообщений: Регистрация: 30.01.2015
29.07.2020 15:25:23
Евгений, я ничего не понял из написанного вами.
Предыдущий мой ответ верен, разбирайтесь.
Пасхалочка для Алексея Иванникова:
Сдвижка графиков индикаторов, Механизм работы сдвижки индикаторов
Пользователь
Сообщений: Регистрация: 30.01.2015
29.07.2020 15:08:18
Цитата
Евгений написал: Собственно вопрос. Как это работает? При сдвижке одного индикатора что происходит с остальными? И какие значения возвращаются в таблице? Вопрос возник при расчете сигналов по закрытой свече или по текущей..Если сдвинут один индикатор вперед на 1, который даже не используется в этом скрипте то остальные то на самом деле сдвигаются остальные назад на 1 ? или как?
добавляется ещё одна свеча справа. Нумерация свечей не изменяется. У несдвигутых вправо индикаторов значения будут nil