BlackBoar написал: У меня оно наступает только при закрытии терминала, при остановке сценария кнопкой не наступает.
Все правильно, оно и не должно так срабатывать, Вы же сами привели цитату из документации. Окно Версии компонентов, находятся в меню Система - О программе - Компоненты
Цитата
BlackBoar написал: Дополнительный вопрос по OnClose. У меня по результатам прогона нескольких сценариев OnClose если случается то всегда до OnStop. Следует ли считать такую последовательность гарантированой? Исходя из общей логики того что они в одном потоке вроде должно быть именно так.
Терминал можно закрыть по разному, например через диспетчер задач, или просто выключить компьютер. Проверьте этот момент.
Цитата
BlackBoar написал: Вопрос, следует ли мне всегда размещать IsRun = false в конце OnStop или можно не забивать себе такими нюансами голову?
А как Вам нужно? Если хотите чтобы OnStop был последний, верните из него таймер
ext_order_status это параметр "Расширенный статус" в таблице заявок.
Цитата
Ирина написал: Неплохо было бы указывать в руководстве, что где используется. Напарываться на неправильную работу скрипта неприятно, и найти подобную неявную ошибку сложно.
Цитата
Ирина написал: Вот же, для других параметров в "Руководстве пользователя QLua" указано: "Поле для получения параметров по западным площадкам". Для ext_order_status такого нет, что и вводит в заблуждение и неправильное применение.
Как уже говорилось, чтобы получить данные, достаточно просто убедиться что они есть. Если их нет то и получить ничего не получится. К сожалению в одном документе нет возможности описать все нюансы всех торговых площадок которые поддерживаются QUIK.
Ирина написал: Т.е. параметр попросту не работает?
Прежде чем смотреть данные через LUA посмотрите есть ли они в терминале QUIK. Если нет то и в LUA Вы их не увидите. Поле ext_order_status заполняется не для каждой биржи. Если не знали, QUIK работает не только с МБ.
Геннадий написал: Sergey Gorokhov, возникает окошко стоп-заявки, в котором нет места для ввода данных по желаемому тейк-профиту - см. картинку.
Это уже другой вопрос, ранее этого скриншота не было. Проблема исправляется настройкой терминала. меню Система - Настройки - Основные настройки - Торговля - Заявки - Формы ввода, снять галку "Применять стандартные формы ввода".
Геннадий написал: Sergey Gorokhov, прошу прощения за настойчивость, но проблема у меня в другом. Мне не тяжело выбирать классы, если они подставляются. Моя проблема в том, что я НЕ МОГУ ВЫСТАВИТЬ ЗАЯВКУ С "ТЭЙК ПРОФИТОМ" по любой бумаге, терминал не дает нужных "кнопок".
К сожалению не понятно в чем проблема. Вы навели курсор на пункт Новая стоп-заявка. Терминал Вам предлагает список классов в которых можно выставить стоп заявку. В чем возникла трудность? Вы не знаете какой классы выбрать? Или что?
Геннадий написал: Sergey Gorokhov, русал приведен в качестве примера, аналогичная проблемка и по остальным бумагам...
Это не меняет ответа. Любая бумага, вполне честно может торговаться в разных классах. И это абсолютно нормально. А при наставлении заявок из таблицы лимитов, никакой привязки к классам нет, потому что Вы можете купить бумагу в одном классе и продать в другом и это тоже абсолютно нормально. В результате, когда Вы пытаетесь выставить заявку из таблицы лимитов по бумагам, то терминал не знает в каком классе Вы хотите торговать и предлагает Вам самостоятельно сделать выбор.
Для других таблиц, где каждая строка с инструментом и так уже привязана к конкретному классу, такой проблемы нет. Потому что класс и так уже определен.
Если Вам не нужны "лишние" классы Вы можете попросить брокера их отключить.
Геннадий, Всё в порядке, просто инструмент RUSAL есть в нескольких классах. Терминал Вам как раз и предлагает список, классов где есть этот инструмент. Вам остается только выбрать нужный.
Алексей Сергеевич написал: Первая. Подскажите пожалуйста как справиться с такой ситуацией. У меня вообще нет доступных счетов(все этапы регистрации и установки пройдены успешно).
По данному вопросу рекомендуем обратиться к брокеру.
Цитата
Алексей Сергеевич написал: Вторая. В некоторых настройках программа не дает возможным нажимать на кнопку(т.е. кнопка просто горит серым, например когда изменил столбцы таблицы и хочешь подтвердить, кнопка "ДА" не активна, как будто ничего и не менял).
В данном случае, кнопка не активна т.к. не указана валюта расчетов. Валюты Вы не сможете выбрать, пока не будет решена проблема со счетами. Т.е. у этой проблемы те же причины что и у первой и надо обратиться к брокеру.
Уточните какая ошибка возникает при неудачной попытке? Если Вы не видите ошибку, это не значит что ее нет. Посмотреть можно в таблице транзакций или в таблице сообщений терминала QUIK
Ирина написал: Расскажите, пожалуйста, для чего нужен "расширенный статус заявки", поле orders.ext_order_status? И для активных, и для снятых, и для исполненных = 0 ...
В документации на терминал QUIK в приведены следующие статусы для этого поля:
Цитата
Расширенный статус заявки. Возможные значения: «» (пусто); «Заявка активна»; «Заявка частично исполнена»; «Заявка исполнена»; «Заявка отменена»; «Заявка заменена»; «Заявка в состоянии отмены»; «Заявка отвергнута»; «Приостановлено исполнение заявки»; «Заявка в состоянии регистрации»; «Заявка снята по времени действия»; «Заявка в состоянии замены»
Андрей написал: Есть исходники встроенных индикаторов квика, можно ли как то "срастить" их со своим ботом
если речь про "Все индикаторы на Lua" то Вы можете добавить функции нужного индикатора в свой код. В readme файле даже есть пример на этот счет
Код
--Пример расчета индикатора Moving Average по источнику данных созданному через CreateDataSource:
dofile(getWorkingFolder().."\\LuaIndicators\\MA.lua")
function main()
func = MA()
t_id = AllocTable()
AddColumn(t_id,1,"Price",true,QTABLE_INT_TYPE,10)
AddColumn(t_id,2,"MA",true,QTABLE_INT_TYPE,10)
CreateWindow(t_id)
SetWindowCaption(t_id,"MA")
ds = CreateDataSource("TQBR", "LKOH", INTERVAL_M1)
sleep(100)
for i=1,ds:Size() do
ma_out=func(i, {Period=9, Metod = EMA, VType=CLOSE}, ds)
tmp=InsertRow(t_id,-1)
SetCell(t_id,tmp,1,tostring(ds:C(i)),ds:C(i))
SetCell(t_id,tmp,2,tostring(ma_out),ma_out)
end
end
Иван написал: Есть возможность переноса на 30 дней.
Комментарий не понятен. Т.е. на демо перенос работает? И что значит на 30 дней? Стоп заявки можно либо переносить на любой срок, либо не переносить, а так чтобы переносить только на определённое время возможности нет
Цитата
Иван написал: Это вот на демо версии пробовал. Может на реальном счёте будет работать?
Илья написал: Здравствуйте! Ситуация такая... я пользовался услугами одного брокера и, соответственно, квик был скачан с его сайта. Теперь у меня другой брокер и квик поменялся. Так вот в новом квике индикаторов меньше, чем было (версия 7 у обоих). Как я могу перенести стандартный индикатор из одной программы в другую? В частности интересует индекс силы Элдера. Спасибо!
Здравствуйте, В QUIK есть встроенные индикаторы которые есть всегда и не зависят от какого-то брокера. И среди них есть индикатор Elder's Force Index («Индекс силы Элдера») Т.е. его не может не быть, он есть всегда и у всех, проверьте внимательней в списке индикаторов.
Кроме встроенных в QUIK, есть еще Lua индикаторы, вот они могут отличаться. Посмотрите наличие папки LuaIndicators в каталоге с терминалом QUIK в котором есть нужный индикатор. Если такой каталог имеется, достаточно его просто скопировать в каталог с новым терминалом.
Сергей написал: Добрый день, а Вы можете написать индикаторы Laguerre на языке lua? Или подскажите где взять?))))
Здравствуйте, К сожалению нет т.к. это не является нашей задачей. Вы можете попросить написать нужный Вам индикатор у других участников форума, создав для этого ветку в разделе про Lua.
Андрей, это зависит от настроек терминала Система - Настройки - Основные настройки - Программа - Получение данных, если снять галку "Запрашивать данные раз в" то параметр будет обновляться при каждом изменении
Eldar написал: кстати, по поводу документации. не могу найти описание всех param_name для getParamEx в документации. как можно узнать?
В документации на терминал QUI (не QLUA) можно найти список некоторых параметров: -Раздел 8. Алгоритмический язык QPILE --Функции для получения значений Таблицы текущих торгов ---Значения параметров функций
К сожалению привести полный список не представляется возможным, т.к. на разных рынках разные параметры и даже более того, на одних и тех же классах у разных брокеров, список доступных параметров может быть разным. Для того чтобы однозначно определить имя любого нужного параметра, достаточно построить таблицу текущих торгов и вывести ее по DDE с галкой "Формальные заголовки"
Sergey Gorokhov написал: Индикатор фракталов предполагает установку значений на предыдущей свечке а не на текущей. В связи с чем, рекомендуется устанавливать значения функцией SetValue
Здравствуйте, Сам скрипт составлен некорректно. Индикатор фракталов предполагает установку значений на предыдущей свечке а не на текущей. В связи с чем, рекомендуется устанавливать значения функцией SetValue На нашем сайтеВы можете найти готовые примеры индикаторов на LUA рекомендуем использовать скрипт из примера.
Иван Ру написал: Однако, позиционируется ярлык на 1-2 бара раньше чем нужно? С чем это может быть связано? С путаницей времени начала и конца свечи? Иди с тем, что к началу бара привязывается край значка?
Описанная проблема у нас не воспроизводится. Возможно причина не в смещении координат метки, а в ее визуальном отображении. Попробуйте добавить параметр ALIGNMENT = "RIGHT",
AlexanderKk написал: getParamEx - таблица. КАК мне получить просто чистовое значение аналогично GET_PARAM (CLASSCODE,SECCODE, "last")?! На qpile
Да верно, getParamEx возвращает таблицу. В документации приведены поля таблицы param_type, param_value, param_image, result Следовательно Вам нужно взять какое то из нужных полей. Например x = getParamEx(CLASSCODE, SECCODE, "last").param_value
ak56, Согласно документации, функция getFuturesHolding возвращает nil в случае ошибки. Отсутствие данных в этом случае можно считать ошибкой. Из nil нельзя выдернут значение totalnet об этом и говорит ошибка "attempt to index a nil value".
Для решения добавьте проверку:
Код
T_FuturesHolding = getFuturesHolding(Settings.FIRM_ID,Settings.ACCOUNT,Settings.SECCODE, 0)
if T_FuturesHolding then
totalnet = T_FuturesHolding.totalnet
end
AlexanderKk написал: - В описании getParamEx нет ни примеров, ни таблицы возможных значений STRING param_name.
Это есть в документации на терминал QUIK -Раздел 8. Алгоритмический язык QPILE --Функции для получения значений Таблицы текущих торгов ---Значения параметров функций
В QLUA параметры те же самые.
Цитата
AlexanderKk написал: - В описании getCandlesByIndex также нет примеров, что такое "строковый идентификатор" (где его брать?), .
Из документации на терминал -Раздел 4. Работа с графиками --Настройка графика ---Настройка вида графика
Цитата
«Идентификатор» – уникальный строковый идентификатор, присваиваемый графику. Идентификатор используется при получении доступа к указанному графику средствами языка QLua или QPILE.
Цитата
AlexanderKk написал: не понятно с "индексами свечки" (первая "ноль", а если мне нужна посделняя?.
Значит надо брать всего свечек (getNumCandles) минус 1
Цитата
AlexanderKk написал: Приведите, пожалуйста, пример getCandlesByIndex. Мне нужен обьем последней свечи.
tag = "qwerty" t, n, l = getCandlesByIndex(tag, 0, getNumCandles (tag) - 1, 1) v = t[0].volume --объем последней свечи.
Здравствуйте, К сожалению в QLUA нет возможности изменить параметры расчета клиентского портфеля. Функции выводят всегда в валюте SUR по тегу EQTV. Но Вы можете умножить полученные значения на курс доллара, который можно взять из класса CROSSRATE
AlexanderKk написал: - как получить цену последней сделки ? аналогично GET_PARAM (CLASSCODE,SECCODE, "last") на qpale
getParamEx(CLASSCODE, SECCODE, "last") Из документации QLUA.chm -Функции взаимодействия скрипта Lua и Рабочего места QUIK --Функции получения значений Таблицы текущих торгов ---getParamEx
Цитата
AlexanderKk написал: - как получить обьем сделок за период?
За период? т.е. с графика? Если так то для работы с графиком есть функция getCandlesByIndex или CreateDataSource Из документации QLUA.chm -Функции взаимодействия скрипта Lua и Рабочего места QUIK --Функции для работы с графиками
Алекс Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
Никто не говорил что формулы SMMA одинаковые. В случае с AO мы говорили про SMA а не SMMA. В QUIK формула SMMA приведена в документации и Вы согласились что расчет в QUIK соответствует формуле.
В Ttradingview Вы привели совсем другую формулу, не такую как в QUIK
Хотя вынуждены признать что наша формула в открытых источниках действительно встречается реже. Можем предложить использовать Lua индикаторы Там тоже есть алигатор. Если в его настройках в параметре Metod указать MMA вместо SMMA, то Вы получите график такой же как в Ttradingview.
Алекс написал: А зачем вы берете в расчете столько свечей? Если мы рассчитываем значение скользящей с периодом 5 то берется 5ть последних значений.
Потому что формула говорит что нужно взять предыдущее значение индикатора. Иначе как посчитать значение индикатора на 200й свече если для ее расчета надо взять значение индикатора (а не цены) с 199? А для 199, надо взять с 198 а для 198 взять с 197 и т.д.
Цитата
Алекс написал: Тогда это явно противоречие формуле и смыслу.
Как раз ровно в формуле это и сказано, взять предыдущее значение индикатора.
Вы неверно выполнили расчет. В формуле четко сказано что при расчете очередной свечи используется предыдущее значение индикатора. Это уже само по себе означает, что для получения последнего значения следует провести расчет всего индикатора с самой при самой первой свечки. Нельзя просто взять и посчитать индикатор на последних 5 свечках имея в арсенале куда больше значений. Требуется провести расчет по всем.
Алекс, Как уже говорилось, наши формулы приведены в документации и их расчет легко проверить. Если Вы считаете что наши формулы некорректны, то менять их мы не готовы. Если же расчет не совпадает с формулой из документации, готовы разбираться. На данный момент, нам не понятно где Вы смотрите данные и по какой формуле там производится расчет. Интересует именно сама формула, а нее название.
rinat написал: ничего из приведенного в инструкции в тестовой конфигурации
Что изменится от того что поменяется версия в инструкции? На сколько нам известно сама инструкция до сих пор актуальна. Если не так, уточните конкретней что надо актуализировать?
Цитата
rinat написал: что ж, под вин10 и 64 бит вы не стремитесь
Кто сказал? Мы стремимся и еще как, сейчас в приоритете серверное ПО, до терминала тоже дело дойдет. Фраза "в ближайшем будущем не планируется" совершенно не значит что этого никогда не будет.
Алекс, Наша формула совпадает с формулой из открытых источников Если формула у них и у нас одинаковая, значит отличается не формула а данные по которым происходит расчет. Обратите внимание что даже визуально видно что в QUIK свечки не такие как в Tradingview, MT5. Естественно индикатор будет выглядеть по другому если данные на которых он строится другие. И никакой Вильямс Вам в этом вопросе не поможет. Почему данные в Tradingview, MT5 отличаются вопрос не к нам. У нас данные берутся из официальных источников по официальным же каналам.
Алекс написал: вопрос в том как вы считаете это SMMA?
-Раздел 4. Работа с графиками --Инструменты технического анализа ---Скользящие средние
Цитата
Цитата
Алекс написал: Так что не просто есть серьезные сомнения в расчете индикатора. Или нужно еще и расчет сделать чтобы убедить вас в том что у вас что-то не то с аллигатором?
Наша формула приведена в документации. Если расчеты в терминале не соответствуют формуле из нашей документации, то готовы разбираться. Если формула не такая как Вы ожидаете, к сожалению мы не готовы ее поменять.
Алекс, Здравствуйте, Если есть сомнения в расчете индикатора, формулы приведены в документации и Вы можете повторить их расчет по этим формулам. Как происходит расчет в Tradingview и MT5, к сожалению затруднимся подсказать. Возможно виноваты настройки индикатора, проверьте этот момент.