A={nil,1,2} unpack(A). Даст непредсказуемый вариант зависимости от порядка заполнения полей
Пасхалочка для Алексея Иванникова:
Выделять объём на тиковом графике цветом в зависимости от направления сделки
Пользователь
Сообщений: Регистрация: 30.01.2015
26.07.2020 17:38:53
Если нужна скорость поиска, нужно строить в памяти скрипта по колбеку onalltrade копии таблицы обезличенных сделок отдельно по каждому инструменту, правильно назначать ключ таблицы и мгновенно искать необходимую сделку уже в этой луа таблице. Переход на x64 позволяет это легко.
остальные способы - это возня и рыдания.
Пасхалочка для Алексея Иванникова:
Скрипт для автоматического передвижения стоп приказа
Пользователь
Сообщений: Регистрация: 30.01.2015
23.07.2020 17:17:59
Цитата
Максим написал: Здравствуйте, подскажите на языке Lua возможно написать скрипт, который автоматически бы двигал стоп-приказ за индикатором Parapolic SAR. То есть мне нужно понять можно ли с помощью языка Lua определить: 1. Открыта ли позиция по определенному активу 2. Получить текущую цену актива 3. Получить цену текущего стоп-приказа 4. Получить текущее значение индикатора Paraboic SAR 5. Изменить параметры стоп-приказа
Скажите, возможно ли реализовать данные шаги?
да, можно
Пасхалочка для Алексея Иванникова:
Как программно проверить запущен скрипт или остановлен?
Получение списка параметров класса, Нужно получить список параметров для каждого класса.
Пользователь
Сообщений: Регистрация: 30.01.2015
03.07.2020 12:07:48
Цитата
написал: Звёздочкой форум заменил название известного * .
Знают, пользуют )
*
Пасхалочка для Алексея Иванникова:
Получение списка параметров класса, Нужно получить список параметров для каждого класса.
Пользователь
Сообщений: Регистрация: 30.01.2015
03.07.2020 12:06:46
Звёздочкой форум заменил название известного * .
Знают, пользуют )
Пасхалочка для Алексея Иванникова:
Получение списка параметров класса, Нужно получить список параметров для каждого класса.
Пользователь
Сообщений: Регистрация: 30.01.2015
03.07.2020 12:05:19
Можно было бы перебрать возможные параметры через createdatasource и откинуть те, на которые получен отказа подписке .
но!
Createdatasource подобна верблюду (что у него прямое?) и всегда возвращает успешную подписку, хоть на существующую бумагу, хоть на ролики с *
разработчики обещают исправить уже несколько лет, но, видимо, некогда, смотрят ролики с * .
Пасхалочка для Алексея Иванникова:
Ondstroy и режим связанных окон
Пользователь
Сообщений: Регистрация: 30.01.2015
19.06.2020 20:47:15
Цитата
Egor Zaytsev написал: Ошибка найдена и обязательно будет исправлена в одной из будущих версий ПО.Об этом мы писали в теме письма:
Уважаемые разработчики.
Я понимаю. что куча важных дел, коронавирус. недовольная жена, неспокойная ситуация в мире, ребенок неожиданно обкакался....
Ошибки будем исправлять или наплевать на них и вообще пропади он пропадом, этот квик?
Пасхалочка для Алексея Иванникова:
Обработка ошибок - открыт ли файл., Обработка ошибок - открыт ли файл.
Пользователь
Сообщений: Регистрация: 30.01.2015
19.06.2020 11:57:49
io.type (obj)
Проверяет, является ли obj валидным хендлером файла. Возвращает строку "file" если obj – открытый хендлер файла, "closed file" если obj закрытый хендлер файла, или nil если obj не является хендлером файла.
написал: сейчас, когда терминал не может внятно сказать, удачно ли он подписался на котировку,
Да и это ошибка, которую мы уже изучили и уже признали.
Цитата
написал: нет возможности отследить, почему нет котировок. Или нет свечей в принципе,
да такой возможности нет, и сам сервер этого не знает. От куда серверу знать будут ли торги по инструменту или трейдеры вообще ничего сегодня не купят? никто этого знать не может и сервер тоже не может.
Цитата
написал: или они ещё не получены, или подписка не прошла.
Это та же тема что и первый пункт про неправильный статус createdatasource? Если так то ответ уже был.
ответ к делу не пришьешь.
я вам писал о неправильном ответе createdatasource уже лет 5 назад и вы регистрировали, рассматривали, обсуждали, митинговали, постановили и дали торжественные обещания. Результат известен.
Пасхалочка для Алексея Иванникова:
Createsource и смена сессии
Пользователь
Сообщений: Регистрация: 30.01.2015
18.06.2020 13:37:36
Цитата
Sergey Gorokhov написал: , Не понятно причем тут это, речь же была про подписку а не про свечи. Свечи да могут быть обрезаны с лева, нумерация при этом сдвинется.
работа с котировками инструментов у меня - единый объект, который и подписки делает и с историей работает. В том числе занимается кэшированием. Поэтому при переподключении необходимо пересоздать весь объект, который при создании переподпишется и дальше снова начнет создавать кеши котировок.
сейчас, когда терминал не может внятно сказать, удачно ли он подписался на котировку, нет возможности отследить, почему нет котировок. Или нет свечей в принципе, или они ещё не получены, или подписка не прошла.
написал: По размышлению возник вопрос, а зачем вообще при дисконнекте закрывать потоки, созданные createdatasource()? Они автоматом разве не закроются? Что вообще произойдет с открытым потоком, если соединение разорвется, а затем восстановится?
Терминал QUIK автоматом закроет поток если он не используется. При реконнекте подписка не теряется.
а разве нумерация свечей останется неизменной? Старые свечи разве не могут обрезаться?
Пасхалочка для Алексея Иванникова:
Lua 5.4 будем встраивать? )))))
Пользователь
Сообщений: Регистрация: 30.01.2015
13.06.2020 12:33:21
Пасхалочка для Алексея Иванникова:
Создание индикатора внутри скрипта
Пользователь
Сообщений: Регистрация: 30.01.2015
12.06.2020 20:40:03
Цитата
Александр написал: Спасибо. А если рассчитать значения в скрмпте, можно как-нибудь отрисовать их на графике?
стандартными средствами - нет
Пасхалочка для Алексея Иванникова:
Автостоп
Пользователь
Сообщений: Регистрация: 30.01.2015
12.06.2020 20:16:32
Привяжите к окну событиe на закрытие окна, в нем устанавливаете флаг, что нужно завершить скрипт. В главном потоке время от времени этот файл просматривайте и завершайте свой скрипт.
Пасхалочка для Алексея Иванникова:
Создание индикатора внутри скрипта
Пользователь
Сообщений: Регистрация: 30.01.2015
12.06.2020 20:09:51
Нет, нельзя.
самый правильный путь - это рассчитывать индикаторы прямо в скрипте. Тем более что это несложно
Пасхалочка для Алексея Иванникова:
Проигрывание мелодии - информация о сделке., Оповещение пользователя о редких событиях в скрипте - как решаете эту задачу.
Странно, что терминал выдает успех на cresteddatasource, если реальная подписка не осуществлена.
и вдвойне странно, что если на oncleanup подписаться не смогли, то почему то и на onconnected тоже не удается..
Пасхалочка для Алексея Иванникова:
Createsource и смена сессии
Пользователь
Сообщений: Регистрация: 30.01.2015
10.06.2020 18:52:35
Спасибо.
то есть в моем варианте все манипуляции на сигнал oncleanup просто не нужны и oncleanup всегда предваряет onconnected?
Пасхалочка для Алексея Иванникова:
Компилятор под 8,5
Пользователь
Сообщений: Регистрация: 30.01.2015
09.06.2020 17:50:45
Цитата
kbrobot.ru написал: Здравствуйте! У кого-нибудь есть версия компилятора под версию Квика 8,5?
Оно?
Пасхалочка для Алексея Иванникова:
Createsource и смена сессии
Пользователь
Сообщений: Регистрация: 30.01.2015
09.06.2020 17:48:54
Сам код привести довольно трудно. он весьма объёмный
при старте скрипта и всех организационных действий вызывается subscribe(), в котором в числе прочего происходит подписка на инструменты. Подписка проходит нормально при запуске скрипта, никаких проблем нет ни с имеющимся соединением с брокером, ни с отсутствующим.
Подписка на событие oncleanup выглядит элементарно:
Насколько мы правильно понимаем, демонстрируемый Вами индикатор не является стандартным графиком QUIK. Наиболее вероятно, это - индикатор, созданный сторонним разработчиком на LUA-скрипте. Поэтому для уточнения информации рекомендуем обратиться непосредственно к разработчику скрипта.
о. Арка наняла новеньких, они ещё въезжают.. ))
Евгений. Смысл поста вы том, что путем изменения настроек индикатора можно нарушать вид шкал и легенду диаграмм. Что является наглядным примером качества продукта. Да ещё как выясняется и сотрудникинсотрудники в состоянии осознать написанное.
Пасхалочка для Алексея Иванникова:
Createsource и смена сессии
Пользователь
Сообщений: Регистрация: 30.01.2015
09.06.2020 09:37:31
После получения сигнала смены сессии я отписываюсь от всех инструментов и подписываюсь заново. Как понимаю, это необходимо при возможном изменении истории инструмента при смене сессии.
Подписка на инструмент сразу после смены сессии ошибок не возвращает, но и "мёд не носит" - свечи не приходят, колбек не дергается.
Как нужно делать правильно?
Спасибо.
Пасхалочка для Алексея Иванникова:
Веселые гистограммы
Пользователь
Сообщений: Регистрация: 30.01.2015
04.06.2020 12:48:45
Цитата
Imersio Arrigo написал: Так их там три всего, и самая широкая в три пикселя.
Я вот совсем не копенгаген, где кого три и кто там самый толстый,
но если в пользовательском индикаторе сделать тип линии гистограмма и ширину линии 100, то на экране появится воскресший Сальвадор Дали.
Пасхалочка для Алексея Иванникова:
Веселые гистограммы
Пользователь
Сообщений: Регистрация: 30.01.2015
04.06.2020 12:41:07
Цитата
Imersio Arrigo написал: Доктор, а как вы сделали такие широкие гистаграммы? я тоже хочу.
Тайное знание находится в настройках индикатора: ширина линии
Пасхалочка для Алексея Иванникова:
Веселые гистограммы
Пользователь
Сообщений: Регистрация: 30.01.2015
04.06.2020 12:07:26
Строим индикатор с гистограммами (первый рисунок)
Увеличиваем ширину гистограмм - второй рисунок
Враги съели легенду. Если сделать ширину еще больше - они сожрут и таймлайн (третий рисунок)
Пасхалочка для Алексея Иванникова:
os.time Lua 5.3
Пользователь
Сообщений: Регистрация: 30.01.2015
30.05.2020 20:20:40
А что проверять то? Пример по ссылке в 5.1 работает (результат даже приведен) , а в 5.3 нет. Вот и вся проверка.
ВУИГП = DEBUG
Пасхалочка для Алексея Иванникова:
os.time Lua 5.3
Пользователь
Сообщений: Регистрация: 30.01.2015
30.05.2020 20:00:50
Не совсем так, город белых штанов тут не при чем.
os_time берет секунды и первым делом отсчитывает от них часовой пояс. Если взять 0, то при часовом поясе европа получается 1969 год и луа огорчается.
касаемо 5.1. Не замечалось. Быстрее всего там была возможность работать с отрицательным юникстиме без преобразования os.date. в 5.3 решили навести порядок и при пересборке своих скриптов в режиме ВУИГП (проверках всего и вся) я и увидел эту шляпу.
print(os.time{year=1970, month=1, day=1, hour=0}) Console:1: time result cannot be represented in this installation
И правильно не верим, как выясняется. И в терминале и в стандалоне одинаково.
а вот
print(os.time{year=1970, month=1, day=1, hour=0})
Оказывается.
Теперь lua смотрит часовой пояс. У меня часовой пояс +1, и print(os.time{year=1970, month=1, day=1, hour=1}) работает и дает 0
Смотрел в документацию на луа - ничего не нашел. На 5.1 в часовой пояс луа не смотрела.
Пасхалочка для Алексея Иванникова:
Кто может написать простой скрипт на Lua для индивидуального графика-индикатора?, написать простой скрипт на Lua для индивидуального графика-индикатора
Пользователь
Сообщений: Регистрация: 30.01.2015
26.05.2020 20:08:55
А напишите мне почтой, что вам требуется. Возможно я вам что то готовое порекомендую.
Пасхалочка для Алексея Иванникова:
Кто может написать простой скрипт на Lua для индивидуального графика-индикатора?, написать простой скрипт на Lua для индивидуального графика-индикатора
Пользователь
Сообщений: Регистрация: 30.01.2015
26.05.2020 18:53:35
А зачем писать этот индикатор?
Вы можете вывести эти данные на график стандартным способом, просто в терминале
Пасхалочка для Алексея Иванникова:
Обработка ошибок из функции main
Пользователь
Сообщений: Регистрация: 30.01.2015
24.05.2020 13:43:46
Используйте luac.exe для проверки синтаксиса перед запуском скрипта.
Пасхалочка для Алексея Иванникова:
Не указан режим транзакций, При исполнении скрипта сервер возвращает ошибку : "Не указан режим транзакций "
Пользователь
Сообщений: Регистрация: 30.01.2015
22.05.2020 18:45:55
Александр, давайте посмеемся вместе ..
поищите текстовым редактором в вашем тексте
CLAS_SCODE
Пасхалочка для Алексея Иванникова:
Обеспечение возможности использования 19-разрядных № заявок для версий QUIK < 8.5
Пользователь
Сообщений: Регистрация: 30.01.2015
22.05.2020 13:52:45
И правда, чё там. Надо автомобиль сбацать- базару нет! Берем четыре колеса, четыре стула, эта, таво.... а! две калитки, одну мою, вторую соседскую - и пару бутылок беленькой. И забацаем до вечера. Чё мы, хуже мерина с поршом? И стоить будет 1000 рублей, из них половина - бухло.
Пасхалочка для Алексея Иванникова:
Вопрос про Сallback-и и их потерю
Пользователь
Сообщений: Регистрация: 30.01.2015
22.05.2020 12:55:14
Чушь.
Пасхалочка для Алексея Иванникова:
Обеспечение возможности использования 19-разрядных № заявок для версий QUIK < 8.5
Пользователь
Сообщений: Регистрация: 30.01.2015
22.05.2020 12:54:05
Поддержать на словах труда никакого. Вы поддержите фининсово, оплатите необходимую вам работу - и разработчики с удовольствием все сделают. У вас есть лишние деньги , изменяющиеся сотнями тысяч рублей или все проще поставить версию 8?
Пасхалочка для Алексея Иванникова:
Не указан режим транзакций, При исполнении скрипта сервер возвращает ошибку : "Не указан режим транзакций "
Пользователь
Сообщений: Регистрация: 30.01.2015
22.05.2020 10:55:00
Цитата
Александр Зайченко написал: Проверил : classcode = "TQBR" , взято из Текущей таблицы параметров ... Проблема та же.
Александр, я вам гарантирую ,проблема что проблема в отсутствующем коде класса в транзакции.
наведите резкость, посмотрите, как вы передаёте код класса в транзакцию.
Пасхалочка для Алексея Иванникова:
Не указан режим транзакций, При исполнении скрипта сервер возвращает ошибку : "Не указан режим транзакций "
Действительно, есть ошибка записи действительных значений в целочисленные колонки. Ошибка будет исправлена в будущих обновлениях ПО. Приносим извинения за причиненные неудобства.
Тогда заодно исправьте и индикаторы.Если задать в тексте на луа
Settings = { ['PARAM'] = 5, line = чегототам }
то при старте индикатора setting.Param содержит (int) 5, а после изменения его пользователем уже (float) 5.0
Пасхалочка для Алексея Иванникова:
QTABLE_INT_TYPE QTABLE_INT64_TYPE
Пользователь
Сообщений: Регистрация: 30.01.2015
19.05.2020 19:14:36
Цитата
Sergey Gorokhov написал: , по идее должно быть целое число 123 Однако как оказалось возвращается не то. Проблема изучается. Постараемся в ближайшее время дать ответ.
О чем и речь....
Пасхалочка для Алексея Иванникова:
QTABLE_INT_TYPE QTABLE_INT64_TYPE
Пользователь
Сообщений: Регистрация: 30.01.2015
19.05.2020 12:10:28
текcтовое представление не рассматриваем вообще
Сергей, я правильно понял, что
при записи в столбец qtable_int64_type переданное значение 123.45 всегда будет преобразовано в int64 (123) и именно в таком виде запомнено где-то в кишках терминала?
По getcell я получу уже именно как lua integer (123) ? Или я получу его как float (lua number) с обрезанной дробной частью (123.0)? или все же я получу исходный lua number 123.45?
Пасхалочка для Алексея Иванникова:
Массив (таблица) в OnCalculate
Пользователь
Сообщений: Регистрация: 30.01.2015
19.05.2020 10:17:51
Не используйте unpack, если индикатор может иметь значение Ия nil в любой линии.
Пасхалочка для Алексея Иванникова:
QTABLE_INT_TYPE QTABLE_INT64_TYPE
Пользователь
Сообщений: Регистрация: 30.01.2015
19.05.2020 09:52:26
по факту оказывается, что в в колонки int и int64 можно писать и int и int64. Значения показываются, никаких округлений не происходит.
читать как
по факту оказывается, что в в колонки int и int64 можно писать и integer и double. Значения показываются, никаких округлений не происходит.
Пасхалочка для Алексея Иванникова:
QTABLE_INT_TYPE QTABLE_INT64_TYPE
Пользователь
Сообщений: Регистрация: 30.01.2015
19.05.2020 09:43:18
Сергей, я не знаю, как более понятно объяснить.
давайте попробую так:
есть тип колонки qtable-string-type. В него можно записать значение типа string
есть qtable_double_type для плавающих чисел
есть qtable_int_type. Логично предположить, что в эта колонку можно записать только integer
по факту оказывается, что в в колонки int и int64 можно писать и int и int64. Значения показываются, никаких округлений не происходит.
какая в таком случае разница между qtable_int qtable_int64 и wtable_double? Никакой.
отсутствие разницы было как то объяснимо на луа 5.1. сейчас же на луа 5.3 после введения integer типа ожидаешь соответствия, но по прежнему все валится в одну кучу
более подробно не могу. Если опять непонятно - надо уже просить помощь зала.