Владимир написал: почему практический пример в справке приведен на питоне, а не на lua?
Это же пример, не более. Если Вам не нравится, реализуйте по другому.
"Слетают" Lua индикаторы при вкл./откл фильтра по времени
Пользователь
Сообщений: Регистрация: 23.01.2015
16.01.2017 05:51:02
Здравствуйте, Подобное поведение уже исправлялось в одной из предыдущих версий. Возможно Вы столкнулись именно с этим. Попробуйте проверить на актуальной версии, сейчас это 7.6
Вызов getDataSourceInfo() из Init() в Lua индикаторах
Пользователь
Сообщений: Регистрация: 23.01.2015
16.01.2017 05:47:02
Здравствуйте, Задача вполне решается проверкой первой свечи в OnCalculate Из приведенного описания не вполне понятно, чем данный подход не устраивает.
Время расчета цикла
Пользователь
Сообщений: Регистрация: 23.01.2015
16.01.2017 05:36:06
Здравствуйте, Что такое "FOR FROM"? В описании языка нет такой конструкции Приведите пример использования, чтобы было понятно о чем речь
Таблица с помощью Qlua, Таблица с помощью Qlua
Пользователь
Сообщений: Регистрация: 23.01.2015
13.01.2017 13:58:23
Optimus1 Optimus1, Выложите код еще раз, чтобы посмотреть что исправили.
согласно описанию функции getCandlesByIndex вторым параметром она возвращает количество свечек в таблице. т.к Вы всегда заказываете 2 свечки, топри n=n+1 получается всегда 3.
Таблица с помощью Qlua, Таблица с помощью Qlua
Пользователь
Сообщений: Регистрация: 23.01.2015
13.01.2017 13:36:14
Цитата
Optimus1 Optimus1 написал: n=0 -!!!!!!!!!!!! ЗА ПРЕДЕЛАМИ Функции main
вы опять привели не полную версию кода. Что такое t?? где задается? Почему у функции main не хватает end? Почему Вы не выполнили рекомендации о переносе переменной n за пределы main?
Таблица с помощью Qlua, Таблица с помощью Qlua
Пользователь
Сообщений: Регистрация: 23.01.2015
13.01.2017 09:41:03
Optimus1 Optimus1, Еще раз, то что Вам требуется и так вполне понятно и не требует уточнений. Конечно же Ваша задача элементарно решается. Но раз Ваш код не работает, значит в нем есть ошибка и чтобы ее найти нужна полная версия кода. Скорей всего, проблема именно в месте определения переменной N, попробуйте ее вообще вынести за пределы функций. Но это лишь догадка, для установления точных причин нужен код. Или его альтернатива в более компактном варианте.
В том то и дело, что на присланном коде, если его привести в рабочее состояние, проблема не воспроизводится. Нужна полная версия кода.
Таблица с помощью Qlua, Таблица с помощью Qlua
Пользователь
Сообщений: Регистрация: 23.01.2015
13.01.2017 05:47:20
Здравствуйте, Приведенный код, вызывает слишком много вопросов. Либо он вообще некорректно написан. Для диагностики, Вы можете добавить вывод информации через message тогда сразу будет понятно почему так происходит.
Шрифт в окне сообщений
Пользователь
Сообщений: Регистрация: 23.01.2015
13.01.2017 05:10:19
Цитата
Артем Щодро написал: Вопрос остается в силе, кто-нибудь в курсе, что там за шрифт?
По умолчанию, либо Tahoma либо Segoe UI, в зависимости от версии терминала и настроек.
PrintDbgStr
Пользователь
Сообщений: Регистрация: 23.01.2015
13.01.2017 04:50:34
Здравствуйте, Позвольте дополнить к выше сказанному. По ссылке ниже, Вы найдете отдельный документ в котором рассказано о практическом применении PrintDbgStr:
смотреть файл "Использование Lua в Рабочем месте QUIK.pdf", глава "Использование функции PrintDbgStr() на практике" на стр 40
неужели OnParam самый быстрый?
Пользователь
Сообщений: Регистрация: 23.01.2015
09.01.2017 12:41:35
Цитата
Космонавт написал: Сергей, значит есть закономерности, которых Вы не знаете. Ведь по какой то причине ОнПарам опережает все другие колбеки, хотя и обновляется срезами.
Весь комплекс QUIK состоит из очень большого количества разных настроек. Возможно что действительно Ваш брокер что-то у себя подкрутил, а возможно что это просто совпадение. Но настроек влияющих на приоритет OnParam по сравнению с остальными колбэками не существует.
неужели OnParam самый быстрый?
Пользователь
Сообщений: Регистрация: 23.01.2015
09.01.2017 12:01:23
Цитата
Космонавт написал: Вопрос 1: почему OnParam не всегда срабатывает, хоть и было изменение цены? (у меня в ОнПарам фильтр - не реагировать если цена прежняя). Я бы отказался от других колбеков, раз они медленные, но получается ОнПарам иногда даёт сбои.
OnParam обновляется срезами (раз в период), а не при изменении. Так было всегда и по другому настроить нельзя.
Цитата
Космонавт написал: Вопрос 2: у других участников форума тоже OnParam срабатывает первым? Или это зависит от брокера? Спасибо.
Это ни от чего не зависит, порядок срабатывания колбэков не определен.
измерить скорость выставления заявки
Пользователь
Сообщений: Регистрация: 23.01.2015
09.01.2017 10:06:45
Космонавт, в версии 7.6 была исправлена похожая проблема. Рекомендуем выполнить обновление терминала QUIK
Можно ли перелогиниваться с помощью Луа
Пользователь
Сообщений: Регистрация: 23.01.2015
09.01.2017 08:32:49
Цитата
Космонавт написал: Это очень плохо. Реализуйте пожалуйста в следующей версии. Спасибо
Мы можем зарегистрировать пожелание. Однако, сроки реализации не определены. Об этом сказано по ссылке:
Можно ли перелогиниваться с помощью Луа
Пользователь
Сообщений: Регистрация: 23.01.2015
09.01.2017 05:38:13
Согласно документации в QLUA таких функций нет.
измерить скорость выставления заявки
Пользователь
Сообщений: Регистрация: 23.01.2015
09.01.2017 05:26:14
Цитата
Космонавт написал: Разработчики, прошу, не отмалчивайтесь.
И Вас тоже с праздниками.
Цитата
Космонавт написал: Откуда берётся этот постоянный трэш с Абрау Дюрсо?
К сожалению без полного кода узнать это даже теоретически не представляется возможным. Еще, в Вашем случае, следует проверить другие терминалы/срипты которые могут работать параллельно. И о какой версии терминала мы говорим?
Проблема запуска скрипта на Lua, Квик не видит core.dll
Определитесь какую именно библиотеку Вы пытаетесь подключить. Сначала Вы пишите про socket, потом про ssl. Ели уж пробовать то на чем-то одном. Это нужно хотя-бы для того чтобы вести диалог об одном и том же.
dofile в индикаторах
Пользователь
Сообщений: Регистрация: 23.01.2015
04.01.2017 23:08:39
Да.
Присвоим идентификатор графику программно!
Пользователь
Сообщений: Регистрация: 23.01.2015
04.01.2017 23:06:32
Цитата
medvedoff написал: Тоесть если мне нужен индикатор для визуализации и также для расчёта то приходится запускать две копии одного и того де кода, как то это не вяждется с дружественнеым интерфейсом нужели так сложно добавить код идентификатора в настройки индикатора?
На данный момент не существует штатного способа программно присвоить идентификатор графику. А значит, Вам придется решать задачу имеющимися способами.
Присвоим идентификатор графику программно!
Пользователь
Сообщений: Регистрация: 23.01.2015
04.01.2017 22:50:53
Цитата
medvedoff написал: Хорощо как обратиться, если нет идентификатора в этом то и вопрос?? Подробнее пожалуйста поясните а то у нас пока идёт обмен вопросами??,
Ответ уже был дан. Воспроизвести расчеты в теле скрипта. Без участия отдельного скрипта индикатора.
Ровно точно также, как если бы Вам нужно было решить задачу со стандартным индикатором.
Присвоим идентификатор графику программно!
Пользователь
Сообщений: Регистрация: 23.01.2015
04.01.2017 22:43:45
Цитата
medvedoff написал: Чем по вашему пользовательский индикатор хуже стандартного почему к нему нельзя применить теже правила ??н
Вопрос не понятен, что именно Вам требуется? Если обратиться к пользовательскому индикатору из скрипта, то к нему применяются ровно те же правила что и к стандартным.
Присвоим идентификатор графику программно!
Пользователь
Сообщений: Регистрация: 23.01.2015
04.01.2017 22:36:00
Цитата
medvedoff написал: Написал индикатор и хотел прикрутить его к скрипту и столкнулся с такой проблемой неужели нет возможности задействовать такой очень нужны й инструмент р
С какой проблемой Вы столкнулись? Если нужно, в Lua скрипте можно воспроизвести расчет индикатора.
Присвоим идентификатор графику программно!
Пользователь
Сообщений: Регистрация: 23.01.2015
04.01.2017 22:34:26
Цитата
medvedoff написал: Оподскажите пожалуйста',как использовать пользовательский индикатор в луа скрипте без идентификатора??
Обычно, для пользовательского индикатора не нужен идентификатор. Он может понадобиться только если индикатор берет данные из нескольких источников.
присвоение табличному элементу значения
Пользователь
Сообщений: Регистрация: 23.01.2015
04.01.2017 21:29:52
Космонавт, Иными словами, Вы написали код и он не работает. Тогда ошибка в строке
Код
next_table.[test_table.s]=3
Она должна выглядеть так:
Код
next_table[test_table.s]=3
Проблема запуска скрипта на Lua, Квик не видит core.dll
Пользователь
Сообщений: Регистрация: 23.01.2015
04.01.2017 16:39:15
dmitry dorjiev, Если бы проблема была в путях, была бы другая ошибка, вида "module 'socket.smtp' not found" У Вас же, судя по всему, проблема в самой библиотеке. Попробуйте использовать другую версию.
Таблица с помощью Qlua, Таблица с помощью Qlua
Пользователь
Сообщений: Регистрация: 23.01.2015
04.01.2017 15:46:24
Здравствуйте, Для получения значения ячейки есть функция GetCell. Если Вам нужно узнать занята строка или нет, используйте ее.
Работа с таблицей клиентского портфеля, -
Пользователь
Сообщений: Регистрация: 23.01.2015
04.01.2017 14:51:14
Здравствуйте,
Цитата
Андрей А написал: Или сначала как-то узнать все возможные комбинации (client_code + firmid), чтобы потом для каждой из них получить портфель..
Узнать можно из таблицы лимитов по деньгам.
Цитата
Андрей А написал: . Следующий фрагмент кода в итоговую таблицу почему-то не заносит ничего
Вы неверно используете функцию. Она возвращает массив состоящий из параметров клиентского портфеля, но не набор строк клиентского портфеля. Иными словами, функция GET_NUMBER_OF(MAP) вообще лишняя. И цикл перебора тоже. Попробуйте на простом примере
В заключении, язык QPILE признан устаревшим и уже давно не развивается. Рекомендуем работать на QLua который пришел на его замену. Документация лежит в папке с терминалом, файл QLUA.chm
получение параметров индикатора, обращение к line
Пользователь
Сообщений: Регистрация: 23.01.2015
26.12.2016 14:12:14
Цитата
Sergey Gorokhov написал: ЦитатаБорис Гудылин написал: То, что индикатор смог один раз отработать нормально (ведь, могут же!), дает мне надежду, что разработчики возводят на себя поклеп. Нужно их пояснение. Проблема изучается. Постараемся в ближайшее время дать ответ.
В текущей реализации свойства линии доступны в OnCalculate только при добавлении индикатора. На основе Вашего обращения мы зарегистрировали пожелание на доработку.
Робот на Луа +API брокера
Пользователь
Сообщений: Регистрация: 23.01.2015
26.12.2016 07:33:41
Космонавт, Ваш вопрос в чем? Как отправить транзакцию через брокерский API или как брокер эту транзакцию обработает? Вам уже три человека сказало что эти вопросы надо решать не здесь а с Вашим брокером. Касаемо советов, для начала просто объясните ему суть проблемы.
получение параметров индикатора, обращение к line
Пользователь
Сообщений: Регистрация: 23.01.2015
26.12.2016 07:07:23
Цитата
ROBOBORO написал: Как вообще пользоваться Settings? В скрипте(не индикаторе) могу ли потестировать и понять как оно работает и что вообще позволяет делать?
Если скрипт не индикатор, то в нем таблица Settings ничем не отличается от любой другой таблицы.
Цитата
Старатель написал: 1. Исправьте ошибку с лишними пересчётами индикаторов при их добавлении или изменении.
Мы знаем об этой проблеме и уже работаем над ее устранением.
Цитата
Борис Гудылин написал: То, что индикатор смог один раз отработать нормально (ведь, могут же!), дает мне надежду, что разработчики возводят на себя поклеп. Нужно их пояснение.
Проблема изучается. Постараемся в ближайшее время дать ответ.
Робот на Луа +API брокера
Пользователь
Сообщений: Регистрация: 23.01.2015
26.12.2016 07:01:40
Цитата
Космонавт написал: Господа, спасибо за ответы, но они все о другом. Как торговать через АПИ?
О том как торговать через API брокера никто лучше брокера не расскажет. В связи с чем, рекомендуем обратиться к брокеру.
Это не сложнее чем делать то что никто до Вас не делал. Вам всего-то нужно подавать транзакцию через sendTransaction с каким, нибудь уникальным TRANS_ID и далее ждать ответа в событии OnTransReply
Цитата
Александр Ковальский написал: подключится ли библиотека? Или надо что-то ещё дописать?
Если trans2quik.dll будет лежать в той же папке что и lua скрипт, напишите так:
Код
ScriptPath = getScriptPath()
package.cpath = ScriptPath .. "\\?.dll;".. package.cpath
package.path = ScriptPath .. "\\?.lua;".. package.path
local api = require('trans2quik')
assert(api)
Однако, как уже было сказано, нам не известно будет ли оно работать или нет, так как никто до этого такую схему не делал. Проверьте самостоятельно.
Подключение библиотеки Trans2QUIK.dll
Пользователь
Сообщений: Регистрация: 23.01.2015
23.12.2016 11:33:51
Цитата
Александр Ковальский написал: Но, к сожалению, я в программировании "чайник" или даже ещё хуже
Тем более, не надо делать то что никто до Вас не делал.
Цитата
Александр Ковальский написал: Поэтому, чтобы написать модуль подобный TRANS2QUIK_SEND_SYNC_TRANSACTION мне нужно жизнь положить.
А зачем Вам это? В QLua есть замечательная функция sendTransaction
Цитата
Александр Ковальский написал: К сожалению, в описании QLua ничего нет про функцию require.
Потому что это функция не QLua, а обычного Lua и описана она в документации на обычный Lua
Цитата
Александр Ковальский написал: 1. Подключится ли библиотека при таком коде: 2. Будут ли работать из Lua все её функции?
никто никогда такого не делал, поэтому увы с ответом подсказать не можем.
Для подключения библиотек в Lua существует функция require. Однако совершенно не понятно зачем это нужно, ведь в Lua есть все что есть в Trans2QUIK и даже больше. На наш взгляд такая схема абсолютно лишена смысла.
CreateDataSource, не грузятся данные при формир. через CreateDataSource
Как по формуле узнать последние 50 значений X из 100 имеющихся? Никак. Просто потому что для расчета надо знать чему равно X1 и от него уже подсчитать все остальные.
Вот по этому, еще в четвертый раз повторяем.
Цитата
Sergey Gorokhov написал: Индикатор RSI строится по EMA, которому нужен расчет по предыдущим значениям.
Если Вам нужно получить последние 50 свечек, будьте добры предварительно подсчитать и первые свечки. Просто такая формула.
Вызов RSI
Пользователь
Сообщений: Регистрация: 23.01.2015
22.12.2016 08:34:50
Цитата
Космонавт написал: Придётся Вас "добить" формулой EMA.
Как по Вашему что такое "EMAi-1" ?? Вы не поверите, но это предыдущее значение EMA
Вот именно что в расчетах используется скользящая средняя.
То есть в третий раз повторяем ответ:
Цитата
Индикатор RSI строится по EMA, которому нужен расчет по предыдущим значениям.
Вызов RSI
Пользователь
Сообщений: Регистрация: 23.01.2015
22.12.2016 08:19:08
Космонавт, Это Вы не уловили нить ответа. RSI требует согласно формуле, свои предыдущие значения. Это особенность данного индикатора. Даже если Вам надо только 50 последних свечей он в принципе не сможет Вам их дать не проведя расчет предыдущих. Просто такая формула.
Sergey Gorokhov написал: Индикатор RSI строится по EMA, которому нужен расчет по предыдущим значениям.
Цитата
Космонавт написал: И ещё не понятно, рационально ли рассчитывать RSI в колбеке SetUpdateCallback?
Рационально или нет решать Вам.
Цитата
Космонавт написал: С этой точки зрения, правильно ли помещать CreateDataSource внутри main в цикле перебора бумаг?
CreateDataSource достаточно вызвать 1 раз, не важно где. Постоянно гонять его в цикле совершенно никакого смысла нет.
Функция CreateDataSource никогда не возвращает ошибку, И это создаёт большие проблемы при разработке. В неё можно запихнуть любой мусор, и она скажет: "Всё отлично".
Пользователь
Сообщений: Регистрация: 23.01.2015
21.12.2016 05:55:12
Цитата
Антон Кыт. написал: Хорошо, зарегистрируйте пожалуйста доработки - "Проверка существования бумаги в классе" - "Проверка указания правильного интервала" (В данный момент можно без проблем заказать интервал "17")
Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
Цитата
Антон Кыт. написал: метод датасорса ds:ServerSize()
Он и сейчас есть ds:Size()
Функция CreateDataSource никогда не возвращает ошибку, И это создаёт большие проблемы при разработке. В неё можно запихнуть любой мусор, и она скажет: "Всё отлично".
Пользователь
Сообщений: Регистрация: 23.01.2015
20.12.2016 16:19:56
Здравствуйте,
Цитата
Антон Кыт. написал: То есть имеется ошибка в реализации данной функции! Прошу исправить.
Не видим ошибки в функции. Так как в документации четко сказано
Цитата
Если указан неверный код класса или параметр, то возвращается «nil». При этом error_desc содержит описание ошибки.
Вы же, экспериментируете с кодом инструмента.
Касаемо остального, Вы сами как пользователь для себя должны определить чем лично Вам надо торговать а чем нет. Программа в этом месте даже больший враг чем Вы. Либо попросите Вашего брокера настроить блокировку на те инструменты которые он посчитает неликвидом.
С нашей стороны, можем только предложить зарегистрировать от Вас пожелание на проверку существования бумаги в классе.