Market Scanner
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
PARAMETER = bid // Использовать вместо истории цены инструмента историю его параметра
Под ним пример: CONDITION = C(-1) < EMA(-1,12,C)
История параметра инструмента очень важна, но из примера непонятно как это сделать. Параметр инструмента задается функцией PARAM, единственный аргумент которой сам параметр, но нет индекса свечи. В приведенном выше примере используются функции у которых в аргументах есть индексы свечи.
Вопрос: можно ли например сравнить оборот по инструменту в свече -1 и в свече 0? Т.е. как использовать PARAMETER= bid для получения истории параметра.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
По аналогии с графиками квика. Вы можете построить график цены инструмента, а можете построить график его параметра - bid, numcontracts, оборот в деньгах и тому подобное.
Функция PARAM не имеет к вышенаписанному никакого отношения. Она возвращает текущее значение произвольного параметра инструмента. Другими словами, вы можете ей получить любую цифру из таблицы текущих торгов квика
Для вашей задачи нужно указать в настройках секции название вашего параметра оборота (не помню как он точно называется, посмотрите самостоятельно) и оперировать функциями C(0) и С(-1)
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Вчера тестировал свои условия и секций было 2, сейчас их стало 4, но немного больше параметров и тишина, никаких срабатываний событий.
Что влияет на увеличение нагрузки сканера? Количество запрошенных инструментов, таймфрейм, количество условий в CONDITION?
Много ли для возможностей Квика 4 секции по всем инструментам мосбиржи на таймфрейме 5 минут?
Подобный вопрос о тишине уже задавался в форуме, поэтому хотелось бы понимать в чем есть смысл урезать условия для облегчения вычислительной задачи.
С начала сессии сегодня ни одного оповещения.
Только что проверил руками выполнение условий по нескольким инструментам, при этом в сканере тишина. Как можно это исправить?
Очередное дополнение: сканер сегодня молчит, снизил нагрузку до 3 условий, повысил таймфрейм, отключил по максимуму условия и все равно тишина. Еще раз отмечу, что проверка руками показывает, что условия должны были сработать. Тот же самый RSI сегодня ходил ниже 35 ни по одной бумаге, проверил на нескольких, очевидно таких больше. Но сканер не сработал.
Оставил одну секцию по RSI с минимумом условий, сканер стал выдавать сообщения. Но в таком варианте использования возможности значительно сужаются, т.е. можно смотреть 1-2 индикатора при минимуме условий. Поэтому очень актуальны советы по оптимизации задачи сканеру. Влияет ли на сканер производительность ПК?
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Я вот время тестов создал ему инифайл, в котором было 500 секций - кроме невероятного размера экранной таблицы ничего для него не изменилось.
Причину "молчания" нужно искать в другом месте
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Может быть что то иное.
Если вы АБСОЛЮТНО уверены, что все делаете правильно, а все не получается - пришлите мне ваш инифайл, я запущу и посмотрю, что происходит
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
1. В справке в примерах приводится C(0) в качестве текущей цены инструмента. Также в справке приводится, что "C(indx) - Значение Close свечи с номером indx". В одном из своих ответов Вы написали пример: CONDITION = C() ~= C(-1), где C() это текущее значение цены/параметра.
Так как же правильно указывать текущую цену и цену в момент Close?
2. В описании скрипта приведен список индикаторов, часть из которых сопровождается ссылками на Вашу реализацию соответствующего индикатора. Для того, чтобы использовать их в Сканере их нужно у Вас купить или они уже реализованы в Сканере и к ним можно обращаться?
3. Можно ли привести пример условий, приведенных в описании скрипта:
- Узнать был ли гэп на открытии и каков его размер
- Узнать, в каких инструментах произошел пробой канала Дончиана
5. Можно ли сообщение с сигналом записывать в файл, чтобы сигнал мог прочитать другой скрипт?
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
C() или C(0) - цена текущей свечи
С(-1) - цена предыдущей
С(-2) - цена предпоедвлущей.
0,-1,-2,-3 и так далее - это индексы (indx) свечей. Индексы это то же самое что и номера справа на графике, начиная с 0
Индикаторы. Ничего покупать не нужно. Они уже встроены в сканер
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Очень просто. Создайте секцию на нужно инструменте на дневном таймфрейме.
Вычтите из открытия текущего дня закрытие вчерашнего. Вот вам величина гэпа
Condition=O(0) - C(-1)
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Параметр run запускает внешнюю программу
Как то так можно сделать
RUN=echo yahoo! > file.ext
И в файл file.ext допишется строка yahoo!
Опять же. Пишу с телефона, демонстрирую идею как. Детали уже на вашей совести. Может команда будет не RUN, а RUN_ON, не помню. смотрите хелп в scaner.ini
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Это универсальный подход в случае любых индикаторов, имеющих несколько линий
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
[Пробой уровня индикатора HHV снизу вверх]
CLASSCODE = SPBFUT // Код класса
SECCODE = RI*,GZZ? // Код бумаг(и). Можно использовать маски ? (любой символ) и * (несколько символов).
TIMEFRAME = 60 // Таймфрейм. Можно задавать аббревиатурами типа M1,M2 и т.д. или количеством секунд
CONDITION = C(0) < HHV(-1,12)
Правильно ли приведено условие? Как понимаю тут текущая цена ниже HHV на предыдущей свече, а если бы был пробой, то должна была быть выше? Или же подобное условие можно было бы записать как hhv(0,12)>hhv(-1,12), т.е. текущий максимум превысил предыдущий. Или я что-то неправильно понимаю?
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
CONDITION = C(-2) < HHV(-2,12) and C(-1) >= HHV(-1,12)
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Команда EXECUTE_ON или RUN_ON = echo TEST > D:\QUIK\test.txt не приводит к результату.
Командой EXECUTE_ON можно запустить программу, например notepad с выводом в него текста, но непонятно как сохранять.
В документации требуемого примера или иных соответствующих команд нет.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Как часто он выдает сообщения при выполнении условия?
Например, при задании заведомо верного условия C(0)>275 на минутном таймфрейме сообщения должны выводиться каждую минуту? В таблице скрипта выводится только одно сообщение в начале работы скрипта.
Аналогичный вопрос может быть по условию C(0)>C(-1), да и по любому другому.
Из работы скрипта вижу, что при совпадении условия сообщение не генерируется если сообщение об этом условии уже было выведено.
Как тогда мониторить что текущая свеча выше предыдущей?
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
В момент прекращения выполнения условия выводится сообщение message_off.
Соответственно, если было _on и не было сообщения _off - условие продолжает выполняться
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
CLASSCODE = QJSIM
SECCODE = GAZP
TIMEFRAME = 60
CONDITION = true
EXECUTE_ON=cmd /c echo Show must go on! >> e:\robot\file.ext
EXECUTE_OFF=cmd /c echo Open your mind! >> e:\robot\file.ext
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
ISCONNECTED() для этого или нет? Добавлял его в разные части блока и в CONDITION, и перед ним ничего не получилось.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
CONDITION=ISCONNECTED()==1 and (ваше условие)
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Если есть - можно получить его в скрипте
Если нет - он программно недоступен в принципе
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
"is_margin_sec".
«0» – не маржинальная;
«1» – маржинальная.
can_buy - Оценка количества лотов, доступных на покупку по указанной цене
can_sell - Оценка количества лотов, доступных на продажу по указанной цене
Можно это через сканер узнать?
А с этим можно что-нибудь сделать или это особенность работы квика?Нет ISCONNECTED() не помогает. Оказывается скрипт начинает спамить не когда нет связи(тогда он молчит), а когда квик пытается восстановить соединение. Скрипт первее пытается исполнится и недает квику переподключиться.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Типа такого:
Condition=SIZE() > 10 and (ваше условие)
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
В выражении можно использовать любые конструкции языка луа вплоть до объявления и вызова функций и классов.
Поэтому вы вполне можете получить значения указанной вами встроенной функцией. Вопрос лишь в том, чтобы вы смогли это написать
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
