Интересный сканер. Мне нужно просканировать все бумаги, получить значения последних 7 дней. Значения - оборот, цена закрытия. В зависимости от сочетания значений за эти семь дней нужно сделать вывод. К примеру нужно выявить самый большой оборот за 7 дней и если текущий оборот его превышает - дать сигнал.
Сходу не смог разобраться сможет ли Ваш сканер это сделать
да, запросто.
Пасхалочка для Алексея Иванникова:
Как работает Get_candle ?
Пользователь
Сообщений: Регистрация: 30.01.2015
12.02.2018 21:48:27
Чтобы получать на курпайле свечки, должен быть открыт график каждого инструмента и каждому должен быть дан идентификатор.
Посмотрите , возможно он подойдёт для вашей задачи.
Пасхалочка для Алексея Иванникова:
Выставление лимитированной заявки с датой экспирации, Выставление лимитированной заявки с датой экспирации
Пользователь
Сообщений: Регистрация: 30.01.2015
31.01.2018 22:38:03
Цитата
Сергей написал: Разобрался. В Junior все работает.
Мешало, то что в "ACTION", писал "NEW_ORDER" . а надо было "Ввод заявки". ( трудно понять почему в этой ситуации одно можно, а другое нет)
Программирование на QPILE как проогулка по лабиринту... Нескольно часов подбираешь сочетание вроде бы разрешенных и эквивалентных значений параметров :(
Такая же история была с Айсберг заявкой.... пару дней потерял :((
Но вопросы остались : 1. Где можно почитать про параметры на кириллице. 2. Когда надо использовать те или другие? 3. Как понять какие из них сочетаются, а какие мешают друг другу.
И риторический вопрос:
Почему когда создаешь айсберг заявку на фондовом рынке надо писать К/П= Купля А когда заявку на срочном рынке с датой экспирации К/П= Покупка Такая же мура с некоторыми другими параметрами...
создайте в кармане транзакций нужную вам транзакцию и экспортируейте ее в текстовый файл. Все поля увидите.
Пасхалочка для Алексея Иванникова:
QLUA, вопросы начинающих.
Пользователь
Сообщений: Регистрация: 30.01.2015
31.01.2018 16:51:07
function oncalculate(indx)
if indx < Size() -200 then return end
do_calc(indx)
end
Пасхалочка для Алексея Иванникова:
Взаимодействие OLua и Lua под Виндой
Пользователь
Сообщений: Регистрация: 30.01.2015
27.01.2018 17:50:18
Стати, ни разу не получилось увидеть, как скрипт qlua, будучи запущенным из терминала, крутился бы на другом ядре. Возможно, дело в установленных ос или железе.
Пасхалочка для Алексея Иванникова:
Взаимодействие OLua и Lua под Виндой
Пользователь
Сообщений: Регистрация: 30.01.2015
27.01.2018 17:48:15
Функции qlua здесь не при чем.
достаточно написать цикл и заменить время выполнения из под ос и из под терминала.
я как-то задавался этим вопросом раньше и сейчас еще раз проверил - в терминале медленнее.
вопрос "почему" не по нужному адресу -не я приклеивал луа к квику.
Пасхалочка для Алексея Иванникова:
Взаимодействие OLua и Lua под Виндой
Пользователь
Сообщений: Регистрация: 30.01.2015
26.01.2018 22:12:14
Цитата
Николай Камынин написал: Что же касается исполнения луа программы в КВИКЕ и вне его то исполняются одинаковое время так как в квике ровно таже VM Lua.
в теории одинаково. На практике нет. В терминале скрипты исполняются медленнее.
написал: Придется написать небольшой робот, который после исполнения каждой заявки смотрит на ситуацию с деньгами и при необходимости снимает остальные заявки.
Только возникает проблема с отладкой робота. На демо-счете в таблице «Клиентский портфель» кредитное плечо 1,00 и я могу выставить заявку только в пределах собственных средств. К тому же на демо-счете интересующих меня облигаций ВТБ Б-1-1 и ВТБ Б-1-2 просто нет (хотя это не проблема, можно отладить на других облигациях ). Но не отлаживать же робот, который выставляет заявки, на реальном счете! Брокер – ВТБ24. Может у других брокеров демо-счета с плечом?
если будете писать сами - то придется потратиться на отладку на реальных торгах. Но сначала имеет смысл позвонить брокеру, где взяли демо.
если будете обращаться к программисту -это уже не ваши заботы
Пасхалочка для Алексея Иванникова:
Откkючение маржинального кредитования в Quik
Пользователь
Сообщений: Регистрация: 30.01.2015
24.01.2018 19:23:05
Что-то в этом роде..
Пасхалочка для Алексея Иванникова:
Откkючение маржинального кредитования в Quik
Пользователь
Сообщений: Регистрация: 30.01.2015
23.01.2018 23:39:24
Цитата
Виктор Столетов написал: При покупке облигаций встает вопрос: можно ли отключить маржинальное кредитование в Quik?
Вопрос связан вот с чем: После отмены налога на доход с корпоративных облигаций доход по ним стал больше, чем по ОФЗ. Однако корпоративные облигации неликвидны, спред между ценами покупки продажи порядка 0,5 %. Пример – ВТБ Б-1-2. Если для покупки этой облигации выставить лимитную заявку даже по лучшей цене покупки в стакане, то не факт, что заявка в течение дня исполнится. Поэтому неплохо бы выставлять сразу 2 или несколько заявок на разные облигации, для увеличения шансов на сделку. Но тогда может исполниться больше одной заявки и войдешь в маржу. Чтобы выйти из маржи, придется срочно продавать лишние облигации, а из-за большого спреда получишь значительный убыток. Если бы можно было отключить маржинальное кредитование, то данная проблема была бы решена, т.к. тогда после исчерпания собственных средств ненужные заявки не будут исполняться.
Придется написать небольшой робот, который после исполнения каждой заявки смотрит на ситуацию с деньгами и при необходимости снимает остальные заявки. Отключением маржинального кредитования ваш вопрос не решается.
Пасхалочка для Алексея Иванникова:
OnStop
Пользователь
Сообщений: Регистрация: 30.01.2015
22.01.2018 19:35:39
Замечательно
Пасхалочка для Алексея Иванникова:
Возможно ли написать скрипт для выявления лимитной проторговки в отобранных акциях, Возможно ли написать такое?
Пользователь
Сообщений: Регистрация: 30.01.2015
20.01.2018 13:25:31
Цитата
Igor написал: Условия: Есть больше количество выбранных акций для торговли параметрам - спред, цена, АТР и т.д.
Задача: Выявлять в этих акциях в торговую сессию ситуации удовлетворяющие условиям для входа: 3 свечи на 5м размером не менее 3с и не более 15с каждая, лоу или хай били в одну и туже цену
Каким образом можно реализовать такую задачу, чтобы получать в системе по отобранным акциям алерты?
с некоторой натяжкой можно. (Если я правильно понимаю термины "били" и как это "били" исполняют Лоу и хай.
проблем две.
1. Вычленять из таблицы всех сделок нужные последовательности сделок и группировать их. Задача эмпирическая.
2. Вытекает из первой. Для каждого инструмента придется получать с сервера таблицу обезличенных сделок. В случае если таких инструментов много (десятки и больше) и они ликвидны, терминал может порваться по причине нехватки памяти.
Пасхалочка для Алексея Иванникова:
Линии тренда
Пользователь
Сообщений: Регистрация: 30.01.2015
12.01.2018 09:44:55
Вертикальная линия рисуется меткой большой высоты и шириной 1-2 пикселя.
формировать изображения в Экселе можно путем создания страницы через механизм ole из луа : эксель эту страницу исполнить. Если там было построение диаграмм, они будут построены.
Пасхалочка для Алексея Иванникова:
Линии тренда
Пользователь
Сообщений: Регистрация: 30.01.2015
10.01.2018 22:13:48
Можно и в квике, но тут посложнее и не так удобно.
Алексей Злобин написал: Хорошо бы в будущих версиях сделали возможность построения линий...из LUA.
Добрый день,
Мы рассмотрели Ваше пожелание. По итогам его анализа сообщаем Вам, что реализация пожелания признана потенциально целесообразной. Если по результатам дальнейшего анализа, включающего юридические аспекты, анализ на непротиворечивость с общей политикой компании, никаких возражений не возникнет, мы постараемся включить Ваше пожелание в план доработок при выпуске одной из следующих версий нашего ПО.
Ну и чем все закончилось? Есть ли такая возможность сейчас? Можно ли из Lua (не LuaIndicators, а именно LUa) отрисовывать иные объекты кроме меток - линии, бары и т.п.? Крайне актуально!
Добрый день.
К сожалению, данный функционал на текущий момент не реализован.
Печаль! Почему же так??? Давно ведь просили. Когда ждать? Мне сейчас для построения стратегии необходимо визуализировать сконструированные в lua параметры, без такого функционала это сделать в квике неовзможно, увы. Единственный выход -- сбрасывать данные в текстовый файл, потом качать в эксель и там строить. Кучу времени придется гробить...
стройте линии в Экселе сразу из скрипта луа. Или в матлабе. Или ещё где-нибудь. Через файл совсем необязательно данные перекидывать
Пасхалочка для Алексея Иванникова:
UTF-8 BOM и QLua скрипты
Пользователь
Сообщений: Регистрация: 30.01.2015
03.01.2018 21:48:02
Цитата
Борис Мурашов написал: Добрый день, при создании файлов .lua в большинстве IDE файлы в UTF-8 кодировке создаются с BOM, при попытке исполнения таких скриптов возникает ошибка: "Syntax error while compiling *путь до файла скрипта*:1: unexpected symbol near 'п'". Удалять BOM руками для каждого нового скрипта уже после 3 раза немного надоедает. Если есть возможность исправить, то буду рад этому. Версия РМ 7.14.1.7. Спасибо.
lua машина кушает исходный текст в Анси. Использование других кодировок внесёт неопределенность в синтаксический анализатор.
поэтому вариантов 2. Или сменить ide на тот, где можно задать кодировку для типа исходного текста либо обучить idе предварительной транслитерации текста в Анси перед сохранением и дальнейшими действиями над текстом.
Пасхалочка для Алексея Иванникова:
Стоп заявки сервера
Пользователь
Сообщений: Регистрация: 30.01.2015
28.12.2017 11:15:31
Спасибо.
Пасхалочка для Алексея Иванникова:
Стоп заявки сервера
Пользователь
Сообщений: Регистрация: 30.01.2015
27.12.2017 23:38:45
Добрый день.
манипуляции со стоп заявками из луа подразумевают неявное "сделать стоп заявку своей" или нужно выписывать это явно?
Александр написал: Добрый день! Раз Quik не обладает такой возможностью, внесу данное предложение! Добавление инструментов на экспорт автоматом, имея список инструментов в текстовом файле, так называемый WatchList. Опишу проблему. Пользуюсь AmiBroker. В субботу провожу анализ, и отбираю то что буду в течении следующей недели отслеживать к примеру SPBEX:Акции. добавлять их все - это 530 инструментов. Руками их добавить не реально пробивая каждую отдельно. Предлагаю рассмотреть следующий вариант решения данного вопроса. В данном случае считаю нет необходимости, вносить изменения в саму программу. т.к. Quik хранит список инструментов для экспорта в файле metastock.dat то достаточно разработать утилиту такую же как для редактирования исторических данных QMinEditor. которая на вход будет принимать текстовый файл со списком инструментов, либо в строку ввода вбиваются инструменты через разделитель, и легким нажатием на кнопку Ок. вставляются в файл metastock.dat коды соответственно берутся из sec.dat При запуске Quik подхватывает metastock.dat и проблема экспорта списка инструментов решена! Готов оказать помощь в описание спецификаций такой утилиты. Никакой нагрузки ни на Quik, ни на сервера она давать не будет!
Добрый день.
Возможно лучше добавить возможность просто добавлять весь класс бумаг в настройках экспорта без дополнительных утилит? Такой вариант устроит?
Лучше - это дать возможность добавлять экспорт программно. А все остальные идеи -это полумеры, принципиально не меняющие ничего.
Пасхалочка для Алексея Иванникова:
Cteatedatasource
Пользователь
Сообщений: Регистрация: 30.01.2015
18.12.2017 10:27:36
Спасибо, Сергей
Пасхалочка для Алексея Иванникова:
Как запустить колбек не сразу?
Пользователь
Сообщений: Регистрация: 30.01.2015
15.12.2017 23:51:24
Function OnParam(xxx) if not enabled then return end
-- process callback logic end
function main()
initialize_variables() enabled =true
-- rest text end
Пасхалочка для Алексея Иванникова:
Cteatedatasource
Пользователь
Сообщений: Регистрация: 30.01.2015
15.12.2017 17:42:17
Цитата
Sergey Gorokhov написал: , Решение не в том чтобы останавливать скрипт, а в том чтобы добавить цикл ожидания появления нужного инструмента. Хотите не останавливать скрипт - пожалуйста, это Ваше право.
я вынес следующее предположение:
по колбекам oncleanup и onconnected я отписываюсь от всех существующих подписок, жду появления таблицы securities и пробую подписаться на все что мне нужно. Если на какой-то инструмент я подписаться не смог, значиь его пока нет в наличии.
когда он появится, я снова получу один из колбеков.
так задача всегда решается или опять будут подводные камни?
Пасхалочка для Алексея Иванникова:
Size()
Пользователь
Сообщений: Регистрация: 30.01.2015
15.12.2017 14:09:06
Таймфреймах может быть любым
время начала торгов -вообще неясная хрень. Нет такого понятия
Пасхалочка для Алексея Иванникова:
Cteatedatasource
Пользователь
Сообщений: Регистрация: 30.01.2015
15.12.2017 10:52:58
Какое решение?
увидеть, что подключен пока только шлюз акций, а нужно получать фьючерс, которого на акциях нет, но который станет доступным позже и по этому поводу останавливать скрипт?
вы про это решение? Это не решение а ерунда какая-то..
Пасхалочка для Алексея Иванникова:
Cteatedatasource
Пользователь
Сообщений: Регистрация: 30.01.2015
15.12.2017 10:06:14
Сергей.
мне все равно, что делает брокер или кто-то ещё.
Я оперирую в том пространстве, которое описано в документации на терминал и qlua.
там нет ничего по бутерброды брокера и прочую чушь.
поэьому для меня этого не существуют. Со своими брокерами и их серверами разбирайтесь сами до тех пор, пока в документации не появятся инструменты воздействия с ними
Я извиняюсь, что приходится писать длинно, но Сергей... Сосредоточьтесь и прекратите писать чушь.
может, кто-то из сотрудников компании сможет придти на помощь Сергею? Ответы в стиле бутерброда демонстрируют отсутствие идей.
Пасхалочка для Алексея Иванникова:
Cteatedatasource
Пользователь
Сообщений: Регистрация: 30.01.2015
15.12.2017 09:54:43
Цитата
Sergey Gorokhov написал: , Михаил, Надежного способа нет, т.к. брокер может вообще не запустить шлюз, например в случае аварии. надо ждать некоторое время (которое Вы сами укажите) и если за это время инструмент не появился то выдавать ошибку и останавливать скрипт. И именно об этом была речь выше.
сергей.
мне не нужно останавливать скрипт никогда. Он получает много данных из разных классов.
Даже если сейчас один из необходимых инструментов недоступен, он может стать доступным позже. И никакой причины останавливать скрипт нет.
терминал вы ведь не останавливаетесь, верно
все-таки...
я уже утомился получать ответы на свои вопросы про Квик в стиле "надёжно это сделать нельзя".
Пасхалочка для Алексея Иванникова:
Cteatedatasource
Пользователь
Сообщений: Регистрация: 30.01.2015
15.12.2017 09:31:15
Этот способ не покрывает все варианты.
напоимер, подключение шлюза после соединения с брокером. Типичный случай, когда подключена одна площадка, а вторая ещё нет (а по ней нужно получать данные).
давайте ещё попробуем. Надёжный способ обязательно должен быть!)))))))
Пасхалочка для Алексея Иванникова:
Size()
Пользователь
Сообщений: Регистрация: 30.01.2015
14.12.2017 20:49:57
Цитата
Николай Камынин написал: сравните время свечи и время сервера (биржи, брокера, точного времени - выбрать любое)
с часовыми поясами будут проблемы.
в квике есть настройка. Что то типа показывать время в часовом поясе биржи. Понятное дело, узнать это нельзя - "многахочите"
да и рассинхронизация в начале каждой свечи будет по любому в каждом из приведенных случаев - ещё больше геморроя.
Пасхалочка для Алексея Иванникова:
Size()
Пользователь
Сообщений: Регистрация: 30.01.2015
14.12.2017 15:30:30
Да, наверное так можно.
но очень уж гаденький способ.... Хотя за неимением...
Пасхалочка для Алексея Иванникова:
Cteatedatasource
Пользователь
Сообщений: Регистрация: 30.01.2015
14.12.2017 14:33:30
Сергей.
тогда скажите, как решить мою задачу?
нужно всего то однажды запуститься и потом всегда читать ТОС
Sergey Gorokhov написал: , Строго говоря отписку делать не обязательно, но в остальном можно рекомендовать вызов CreateDataSource всегда после успешного подключения к серверу. Но и тут есть нюанс. Дело в том что на первичную прокачку данных, в частности на получение списка инструментов, может потребоваться некоторое время. Если вызов функции CreateDataSource произойдет до получения описания инструмента, то заказа не произойдет т.к. будет считаться что такого инструмента нет. Забегая вперед, достоверно узнать когда появится инструмент и появится ли он вообще - нельзя. Можно добавить проверку, например на наличие инструмента в таблице securities, но и это не надежно, т.к. инструмент может пропасть (например случилась экспирация) или переехать в другой класс.
плюс к сказанному, еще может быть ситуация когда терминал подключился до запуска шлюза.
Значит, лoмoвoе решение сoстoит в тoм, чтoбы делать перезаказ пo каждoму onconnected и пo каждoму oncleanup.
Если вызов функции CreateDataSource произойдет до получения описания инструмента, то заказа не произойдет т.к. будет считаться что такого инструмента нет.
В этoм случае createdatasrc вернет oшибку, вернo?
Пасхалочка для Алексея Иванникова:
Cteatedatasource
Пользователь
Сообщений: Регистрация: 30.01.2015
14.12.2017 13:23:29
Сергей, спасибo за разъяснения.
Правильнo ли я пoнимаю, чтo для решения задачи, заключающейся в неoбхдимoсти oбеспечить пoлучение терминалoм таблицы oбезличенных сделoк,
небхoдимo oтслеживать onconneted/ondisconnected и пo первoму ВСЕГДА делать тикoвую пoдписку, а пo втoрoму ВСЕГДА делать oтписку?
(oncleanup для решения задачи не требуется)
Скрипт дoлжен рабoтать 24/7 и брабатывать ТOС
Пасхалочка для Алексея Иванникова:
Cteatedatasource
Пользователь
Сообщений: Регистрация: 30.01.2015
13.12.2017 12:23:03
У меня ещё несколько вопросов по этой функции.
1. Что происходит, если в момент обращения к функции нет соединения с сервером?
2. Будут ли запрашиваться данные с сервера после установления связи в пункте 1?
3. Что происходит с подпиской после смены сессии?
4. Что происходит с подпиской после выключения и включения терминала с работающим скриптом?
Пасхалочка для Алексея Иванникова:
Size()
Пользователь
Сообщений: Регистрация: 30.01.2015
13.12.2017 11:12:55
Цитата
Sergey Gorokhov написал: , Михаил, Должно показать бОльшее значение, на столько сколько добавилось свечек после добавления индикатора. И это правильно.
Сергей.
Я в сoвершенстве владею русским языкoм. Давайте пoчитаем, чтo ваша кoмпания пишет прo функцию Size:
Код
Size
Функция возвращает текущее количество свечек в источнике данных.
Формат вызова:
NUMBER Size()
Давайте вместе прoчтем и пoпрoбуем пoнять. Истoчник данных для индикатoра - этo инструмент. Кoличествo свечей инструмента не мoжет зависеть oт параметра "сдвиг" индикатoра (неужели не так?)))) Oнo зависит oт тoргoв, таймфрейма и глубины пoказа истoрии.
А у вас ("пo правильнoму") oнo зависит oт настрoйки какoгo-тo индикатoра.
Sergey Gorokhov написал: , Михаил, Должно показать бОльшее значение, на столько сколько добавилось свечек после добавления индикатора. И это правильно.
А теперь еще раз прoчитайте вoпрoс из первoгo сooбщения ветки
Пасхалочка для Алексея Иванникова:
Size()
Пользователь
Сообщений: Регистрация: 30.01.2015
13.12.2017 10:51:23
Цитата
Sergey Gorokhov написал: , не понятно что именно не так со срабатыванием OnCalculate при index = size()
"Не так " связанo с функцией Size()
Settings = { Name="xxx"}
function Init() return 1 end
function OnCalculate(indx) message(indx .. " " .. Size()) end
Налoжите на любoй инструмент. Пoсмoтрите, чтo вoзвращает Size()
Дoбавьте на диаграмму, скажем, скoльзящую среднюю, сдвинутую на пару интервалoв вправo. И снoва пoсмoтрите, чтo вoзвращает Size()
Пасхалочка для Алексея Иванникова:
Size()
Пользователь
Сообщений: Регистрация: 30.01.2015
13.12.2017 06:28:23
Сергей
там разговор был о первой свече.
а сейчас я спрашиваю о самой правой. Не волнуйтесь, этот косяк ещё не обсуждали.
Пасхалочка для Алексея Иванникова:
Size()
Пользователь
Сообщений: Регистрация: 30.01.2015
12.12.2017 19:24:43
Обращаюсь к разработчикам.
Как узнать в индикаторе (OnCalculate), что обрабатывается самая правая свеча?
Хотелось бы получить ответ, который работает всегда )))
Спасибо.
Пасхалочка для Алексея Иванникова:
OnStop
Пользователь
Сообщений: Регистрация: 30.01.2015
11.12.2017 15:03:45
Вот зачем вы засоряете мир этими сообщениями под копирку, я не понимаю.
никому неинтересно, что вы рассмотрели и что решили единогласным голосованием.
интерес представляет только пункт в списке улучшений очередной версии, чего дождаться крайне сложно.
а таких писулек я видел много, толку от них не какого.
Пасхалочка для Алексея Иванникова:
Аналог функции eval для lua, Аналог функции eval для lua
Пользователь
Сообщений: Регистрация: 30.01.2015
08.12.2017 16:27:17
Цитата
Sergey Gorokhov написал: Здравствуйте, Можно попробовать через loadstring
Код
function calculateString (str)
return assert(loadstring( "return " .. str))()
end
Nkmr нужнo пoнимать вoзникающие при этoм oграничения с upvalues
Пасхалочка для Алексея Иванникова:
Отметки на графике QUIK средствами QLUA
Пользователь
Сообщений: Регистрация: 30.01.2015
07.12.2017 20:04:10
Цитата
Владимир Павлов написал: Если следовать вашему Регламенту то задача "выделения библиотеки графических символов" может получить высший приоритет. - не влияет ни на какую функциональность - заинтересованность всеми слоями трейдеров - улучшает пользовательские свойства терминала.
Я бы сам занялся под вашим руководством, да кто-же мне даст...........
пожелания об этом регулярно возникают уже в течение десятка лет или даже больше. Видимо, разработчикам недосуг этим заниматься.
Пасхалочка для Алексея Иванникова:
Работа с метками на графике из Qpile
Пользователь
Сообщений: Регистрация: 30.01.2015
05.12.2017 22:48:10
Неверно сформулировал.
3. На каждом графике (не панели) своя нумерация.
Пасхалочка для Алексея Иванникова:
Работа с метками на графике из Qpile
Пользователь
Сообщений: Регистрация: 30.01.2015
05.12.2017 18:36:10
1. Много. )) Ограничение очень большое - терминал умрет раньше, чем вы дойдете до лимита.
2. Стандартного способа нет. Только попыткой получить метку по id в цикле от 1 до <много>. Способ дурной, но другого нет
3. Могут. А каждой диаграмме (не панели!) Своя нумерация
4. Нет. Id раздает терминал
Пасхалочка для Алексея Иванникова:
Очередные подарки
Пользователь
Сообщений: Регистрация: 30.01.2015
27.11.2017 12:08:42
Ошибочку исправлять будем или черт с ней , и так сожрут?