Иван написал: Пересмотрел все виды стопов в Quik и не совсем понимаю как реализуется скользящий стоп на Lua? Это простое и банальное удаление и перевыставление стопа на Lua?
Смотрите условную заявку Тейк+Стоп. С ее помощью трейлинг стоп с фиксированным (неизменным) отступом от экстремума цены делается на раз.
текст в любой кодировке - это массив байт конец массива обозначается нулевым байтом, поэтому в массивах с текстом запрещен нулевой байт но если в массиве байтов нет нуля то это может быть массив не текста
В последней версии терминала 8 5 2 11 наблюдаю падения приложения при переносе мышкой (drag&drop) пользовательских индикаторов между диаграммами. При переносе встроенных индикаторов проблемы нет.
А вот с индикаторами пролем не заметил, и при использовании внешних библиотек тоже. Видимо, рубильник между вызовами oncalculate работает исправно, да и корутин нет.
А у меня и без dll скрипты разваливаются при использовании coroutine
Посреди скрипта вызов getScriptPath() начинает вдруг возвращать вместо тип string тип function. При старте скрипта возвращает правильно. Внешние библиотеки все убрал на время теста. На 5.1 работает все на ура.
1. Получаете список классов - getclasseslist 2. Для каждого класса (или для части классов) получаете список всех инструментов - getcclasssecurities для каждого инструмента проверяете, подходит ли он под вашу маску. Если подходит - добавляете его в таблицу
на выходе получится таблица из всех инструментов, подходящих под вашу маску. Что с ними делать - вам виднее.
Kolossi написал: Почему-то у меня все просто, наверное что-то не так делаю )
Робот сваливает логи в заданную папку, а Automator отправляет их мне по e-mail по расписанию. Сообщения, которые кладутся в аварийную папку, Automator отправляет немедленно.
В таком случае надо регулярно смотреть почту, тут идея немного другая - программа читает лог автоматически и анализирует его, информируя (включая звуковой сигнал) при необходимости. В общем - дополнительная автоматизация процесса и страховка когда Вы на отдыхе.
настройте телефон так, чтобы он выдавал уведомление со звуком при получении почты. Стардартная функция того же андроида или любых умных часов.
Святослав написал: Здравствуйте. Пишу индикатор. Мне нужно взять значение цены закрытия первого бара, чтобы постоянно использовать его в OnCalculate(). Проблема в том, что если брать цену первого бара в OnCalculate, то ОДНО И ТО ЖЕ значение первого бара будет браться каждый раз при выполнении OnCalculate() - то есть для каждой свечки/сделки. А это не рационально в плане производительности. Как вначале ОДНОКРАТНО получить значение цены первого бара (присвою глобальной переменной), а потом уже применять это значение в OnCalculate()?
foobar написал: Просьба добавить в таблицу Позиции по инструментам класс инструмента, как это сделано в большинстве других таблиц. Конечно, там уже есть ISIN, но он не у всех классов (например, CETS, SPBFUT). В таблице уже есть Код Инструмента, класс бы позволил однозначно идентифицировать инструмент при экспорте таблицы.
это невозможно.
дело в том, что акция лукойла есть акция лукойла вне зависимости от того, в каком классе она была куплена. Что в TQBR, что в неполных лотах, что на бирже Эфиопии
ЛуаСкрипт написал: 1. В версии Lua 5.1 ещё можно было использовать кириллические имена функций и переменных, потом эту возможность убрали. Qlua насколько я знаю основана на версии Lua-5.1. Можно ли вернуть эту возможность в Qlua - Вы я так понимаю её всё равно модифицируете для адаптации к QUIK. Т.к. QUIK и Qlua - рассчитана только на русскоязычных пользователей и её использование не русскоязычными пользователями как я понимаю не планируется, то отсутствие этой возможности вызывает недоумение. Все современные языки программирования это позволяют ... и проблем это не вызывает. Очень неудобно писать латинскими буквами названия облигаций и финансовых операций... это приводит к ошибкам и затемняет смысл и логику программы ... 2. Какая версия Lua используется Quik 8 ?
напишите элементарную программу. Она заменяет все кириллические лексемы во входном файле на их представление, скажем, в формате base64. Таким образом, с некоторыми ограничениями вы сможете писать названия функций и переменных кириллицей, а после прогона через эту программку получите допустимый луа текст.
А не знаете, как-то можно наладить взаимодействие торгового робота на lua с графиком? Было бы очень удобно отлаживаеться и контроллировать, если бы робот прямо на графике отображал свои решения
метки на графике. Но по опыту лог файл гораздо удобнее
Владимир написал: Добрый день! Подскажите, а как из lua скрипта нарисовать на графике линию тренда и прямоугольник? Те, что из меню "Нарисовать" https://prnt.sc/rnnefc
Я писал эту библиотеку для поддержки своих скриптов, чтобы иметь доступ к тем возможностям, которых нет в стандарте lua.
В ней много всего разного, что когда-либо требовалось мне, но я не делал никакого описания, так как планов распространения этой библиотеки в качестве отдельной штуковины у меня никогда не было. Если что-то потребуется - спрашивайте. Если оно потребовалось вам, наверное, когда-то это было нужно и мне...
Anton написал: Сам спрашиваю, сам отвечаю. 1) нет, к моменту вызова OnCleanUp все (точно все?) уже прибито; 2) на фоне ответа номер раз смысл вопроса теряется. Это как если бы в плюсах деструктор объекта вызывался после его деаллокации, типа "доводим до вашего сведения, что ваша дама убита". А? что? там же пойнтеры были, стой, верни, эх.
не все прибито. Например, таблицы не обязательно очищены. Или очищены, но не все. словом, полагаться нельзя ни на что .
Олег написал: Добрый день, скрипт на lua создает таблицу. Туда он выводит информация об индикаторах, которые берет с графика. Данные при отображении в таблице видны в виде: MA1= 0,044055 MA2= 0,04405 В третьей графе отображается их разница Delta=MA1-MA2, выводится она в виде: Delta= -5e-06 Как заставить lua вывести 0,000005?
код вывода: SetCell(TableID,7,2,tostring(Ma)) SetCell(TableID,8,2,tostring(MaPrev)) SetCell(TableID,7,4,tostring(RoundForStep(Ma-MaPrev,Step)))
RoundForStep - функция округления до шага цены инструмента. Работает верно.
используйте строковый столбец и функцию string.format
Вариант с current_candle будет выполняться быстрее на время поиска индекса в таблице на каждом обращении. Соответственно, если таких обращений сотня, то разницы нет никакой. А если миллионы, то несколько долей секунд выиграть получится.
Дмитрий написал: Сегодня вечером появились такие обозначения в нижней строке таблицы Состояние счета (Картинку прикрепляю). Кто-нибудь может пожалуйста пояснить, с чем это может быть связано? В настоящий момент шортовых позиций нет, по фьючерсам тоже нет (утром была небольшая позиция с фьючерсом).
Не обращайте внимания. Это терминал делит что то на ноль при расчетах и вылезает эта лабуда. Поправят, если карты лягут..
После последнего продления срока демо для пользователя qtest078 UID 3765 пропал доступ ко всем площадкам кроме акций и валют,. Пожалуйста, подключите все имеющиеся классы.
Исчезли дополнительные счета срочного и спотового рынка, необходимые для арбитража. Пожалуйста, добавьте по одному дополнительному счету для каждой площадки.
Как построить спред между двумя разными инструментами, ценами акций? Есть ли какой механизм или индикатор чтобы заносить 2 поля и потом на графике смотреть величину спреда?, Как построить спред между двумя разными инструментами, ценами акций? Есть ли какой механизм или индикатор чтобы заносить 2 поля и потом на графике смотреть величину спреда?
Eldar написал: Добрый день. Нет случаем у кого-нибудь Lua Sqlite3? пробую собрать проект в VS2017. исходники с lua.sqlite.org. убрал варнинги. поставил Lua 5.1.5 vc15 (другого не нашел поновее). остались ошибки типа "ссылка на неразрешенный внешний символ" в куче мест. видимо не подходит Lua.
пробовал с LuaRock, но со всеми плясками компилирует только x86, а не 64
Достаточно правильно написать робот в соответствии с задачей ежедневного использования.
в вопросе довольно много подводных камней, связанных со сменой сессии, переподключения к серверу, перезаказом данных, изменения (добавления, удаления, получения) параметров/доступных инструментов от сессии к сессии в произвольные моменты и так далее. Одним словом всего того, о чем нет даже упоминаний в документации.