Таблица с использованием getParamEx. Не подтягивает цену открытия., В таблице расчетов использую цену открытия, последнюю, HIGH/LOW. По акциям всё идёт хорошо, но по фьючерсам в цене открытия стоит 0
Сергей, Всё просто. Функция getParamEx может вернуть только те параметры которые есть в таблице текущих торгов. А для фьючерсов нет такого параметра "Цена открытия" (OPEN) и никогда не было. Вы можете убедиться в этом самостоятельно открыв Таблицу Текущих Торгов по фьючерсами. Но есть другой, наиболее близкий по смыслу параметр "Цена первой сделки в тек. сессии", его имя FIRSTOPEN
S C написал: подскажите пожалуйста какой параметр для индексов ставить или дайте ссылку на список возможных параметров или подскажите где я ошибся если ошибка в другом?
Для того чтобы узнать имя нужного параметра, достаточно вывести в Excel таблицу текущих торгов по DDE с установленным признаком "Формальные заголовки"
Suntor, Не вижу смысла продолжать диалог. Вам уже несколько раз были объяснены причины и как оно работает. Если интересно почему брокер у себя что то не настроил это вопрос к брокеру.
Кто сказал что у нас есть сеть серверов? Вы явно не понимаете что мы производитель ПО, а используют его брокера, у которых своя сеть к нам никакого отношения не имеющая.
Цитата
Suntor написал: и сама перебрасывать заявки на другие сервера в случае необходимости.
Вам уже 100 раз было сказано У БРОКЕРА ЕСТЬ ТАКАЯ ВОЗМОЖНОСТЬ Что не понятно?
Suntor написал: У меня просто ни разу такой ситуации не возникало, поэтому я и не представляю как это на практике выглядит.
Значит можете сказать спасибо Вашему брокеру за стабильную работу.
Цитата
Suntor написал: как другой сервер узнает о наличии оной?
А ему не надо "узнавать" Все стопы одновременно присутствуют на всех серверах брокера. Вы же когда переключаетесь с одного сервера на другой, стопы не пропадают не так ли? И как уже говорилось, каждый конкретный стоп принадлежит конкретному серверу. В таблице стопа заявок ,в колонке "Сервер" будет написано "Чужой" если стоп заявка принадлежит не к тому серверу к которому Вы подключены.
Цитата
Suntor написал: Если же сервера между собой обмениваются информацией о стоп-заявках, то почему другой сервер сразу не может подхватить эти стоп-заявки без ручного нажимания на пункт «сделать своей»
А от куда серверу должно быть известно что это надо сделать? И как уже говорилось и еще раз повторим, у брокера есть возможность перенести стоп заявки без участия клиента и тыкать «сделать своей» в этом случае не обязательно.
Цитата
Suntor написал: Зачем? какая-то избыточная функция лишняя.
Как уже говорилось и еще раз повторим, это надо чтобы стоп заявка не срабатывала одновременно на всех контурах брокера. Допустим есть два сервера. На каждом из них одинаковый набор стоп заявок. Допустим одновременно на все сервера приехала обезличенная сделка, по которой сервер должен принять решение об исполнении стоп заявки. Если бы не было признака свой/чужой, все сервера бы сразу исполнили стоп заявки. И Вы получили бы не одно исполнение, а несколько. Сидеть и ждать пока другой сервер сообщит исполнил он стоп или нет, никто не будет. Ибо это затормозит остальные стопы. А так как есть признак свой/чужой, то стоп исполнится только на одном сервере, а второй не дожидаясь синхронизации спокойно будет работать дальше.
sav 312, По возможности тяжелые циклы лучше не использовать вне main. Т.к. всё кроме main крутится в основном потоке терминала. А значит пока цикл не закончится новая информация в терминале не обработается.
Андрей Пахомов написал: ни к.л. реакции от QUIKа вообще нету.
Это не так. То что Вы не видите реакцию, не значит что ее нет. Во первых, в терминале есть таблица сообщений, куда можно выводить результат функции sendTransaction через переменную res.
Код
message(res)
Во вторых, в терминале есть таблица транзакций, куда транслируется результат транзакций без дополнительных усилий. В третьих, в самом окне Lua скриптов выводятся сообщения при ошибках синтаксиса. Таким образом можно понять что не так с параметрами транзакции.
Цитата
Андрей Пахомов написал: Что здесь не правильно, чего не хватает и что лишнее (или без каких параметров можно обойтись)?
Как минимум в коде видна одна синтаксическая ошибка
Потому что B это переменная, которой у Вас не существует. А "B" (в кавычках) это уже конкретное значение.
Цитата
Андрей Пахомов написал: И как можно выставить отдельно тейк-профит и стоп-заявку с тейк-профитом?
Вопрос не понятен. Уточните что Вам требуется в терминах QUIK. Если Вам надо задать тейк профит, то это указывается в параметре STOP_ORDER_KIND Описание параметров приведено в руководстве QUIK -Раздел 6. Совместная работа с другими приложениями --Импорт транзакций ---Формат .tri-файла с параметрами транзакций
Suntor написал: Я не могу понять, для чего нужен пункт меню «Сделать стоп заявку своей». В какой момент может возникнуть потребность в этом пункте?
Как уже говорилось, стоп заявка привязана к конкретному серверу. Если этот конкретный сервер сломается, чтобы стоп заявка начала работать, ее надо привязать к другому серверу. Для этого и нужен пункт «Сделать стоп заявку своей». Т.е. Вы подключаетесь к рабочему серверу и делаете стоп своим. Если не сделаете, то стоп не сыграет. Как уже говорилось, у брокера есть возможность перенести стопы на другой сервер без участия клиента, но не все брокера это делают.
sav 312 написал: Подскажите пожалуйста как перевести время из строки ТВС в секунды.
Не понятно с чем возникла сложность. Получить время можно из параметра datetime, там есть hour, min, sec см документацию QLUA.chm глава "Структуры данных" - "Обезличенные сделки"
Далее умножаете часы на 3600 минуты на 60 и складываете полученную цифру с секундами.
Сделать выборку через SearchItems и в функции fn добавить нужное условие. При этом надо обязательно добавить условие на нужный класс, т.к. время на разных рынках может не совпадать друг с другом.
Цитата
sav 312 написал: В каком виде нужно получать время в каждой из строк ТВС и с каким временем его сравнивать?
Проще всего перевести время в секунды и сравнить с текущим временем. А вот с чем сравнивать, это уже сложнее. Время os.time или os.date это время Вашего компьютера, которое вполне честно может не совпадать с временем биржи. Время SERVERTIME из getInfoParam это время сервера QUIK, уже лучше, но только если Вы уверены в своем брокере и качестве интернет соединения, если не уверены, лучше не пытаться. Остается два варианта, либо сравнивать со временем самой последней строки в ТВС, либо максимально точно синхронизировать время Вашего компьютера с временем биржи.
Suntor, Стоп заявки хранятся на сервере, а не на рабочем месте. При этом каждая стоп заявка привязана к конкретному серверу. Если серверов два или больше, всё равно стоп заявка принадлежит только какому-то одному серверу. Это значит что Вы можете вообще выключить компьютер и всё равно стоп заявка сработает. Следовательно не важно куда Вы подключитесь, пока нужный сервер работает, стоп заявка может исполниться.
Здравствуйте, Должен работать тот сервер к которому стоп заявка принадлежит. Если будет работать другой сервер то стоп заявка не сработает пока Вы ее не сделаете "своей" (в таблице стоп заявок выполнить пункт "Сделать стоп заявку своей") Либо пока сам брокер не переместит стоп заявки на работающий сервер. В таком случае стоп заявка может сработать без Вас. Если Все сервера брокера не работают то стоп заявки не сработают.
Sergey Gorokhov написал: Вы что то путаете никакого направления (купля/продажа) на свечках графика нет и никогда не было.
Странно, а мне показалось, что именно свеча указывает направление движения на графике, если скажем свеча бычья и на свече цена открытия ниже цены закрытия, то график цены идет вверх в данный момент времени на текущем таймфрейме. Вот смотрите на примере. Не ужели мне снится, что в 10.00 график был ниже чем в 10.01?
Вам Suntor говорил про направление сделок, Вы же говорите что это направление графика. Это НЕ одно и тоже, хоть и связь есть. Следовательно Вы явно путаете направление сделки (купля/продажа) и движение цены. Свечка раскрашивается НЕ от направления сделок, а от направления цены. Кто сказал что допустим не может быть сделок по разным ценам но с одним направлением? В итоге свечка раскрасится но не факт что так как Вы ожидаете, ибо это зависит от движения цены.
Цитата
Andrey.R написал: Я думаю пример у вас не очень точный, шаг цены как правило бывает не как у вас в 3м порядке, а в 5м или 6м. И если брать ваш пример, то разница в 1 рубль предполагает 1000 промежуточных шагов в цене, а в плотном стакане такого быть не может. Именно это я и хотел спросить почему? А если брать конкретно ваш пример , то на графике при визуальном рассмотрении отклонение в один рубль будет практически на одной высоте, и ответ ваш к моему вопросу не имеет никакого отношения.
Вы сказали что не понимаете почему может возникнуть разница между ценой закрытия предыдущей свечи и открытием следующей. Без какой либо конкретики. И ответ Вам был без какой либо конкретики. И углубляться в шаг цены тут вообще не уместно. Т.к. Вам был приведен теоретический пример и это очевидно.
Не нравится теоретический пример, давайте из жизни, это ровным счетом ничего не меняет. Конкретно акции, там торгуется аж 33 инструмента с шагом цены 1. Согласитесь это очень даже не мало. Если Вы торгуете каким то одним инструментом то так и говорите про него, а не в теории. Смотрим минутные свечки Магнит (MGNT). 2018/06/08 12:54:00, закрытие 4905 2018/06/08 12:55:00, открытие 4906
Почему нет? кто сказал что не может быть двух сделок по разным ценам? То что они случились в момент появления свечки абсолютно нормально. Не верите глазам своим, посмотрите сами на таблицу обезличенных сделок. Сделка номер 2842457007 от 2018-Jun-08 12:54:59.572 по цене 4905 Следом идет сделка номер 2842457053 от 2018-Jun-08 12:55:00.770 по цене 4906
Не нравится этот пример, найдите другой, благо их тысячи.
Цитата
Andrey.R написал: мне казалось что форум для новичков,
Это форум для всех. Отдельного для новичков не существует. По крайней мере у нас. Не обязательно иметь многолетний стаж, чтобы понять очевидные вещи. Если для Вас вопрос не очевиден, представьте себе что будет если Вы вдруг правы и что начнется если кто то вдруг получит власть менять старые цены как угодно. Допустим проснулись сегодня с утра, а Вам власть говорит что вчера бензин стоил 5 руб. Хотя Вы и все вокруг точно помните что это было не так.
Andrey.R написал: направление мы видим в свече на графике,
Вы что то путаете никакого направления (купля/продажа) на свечках графика нет и никогда не было. На свечках только голые цифры, без какой либо маркировки покупка это или продажа. цена падает, свечка краснеет, цена ростет, свечка зеленеет. Всё. Никаких направлений.
Цитата
Andrey.R написал: То они вполне могут изменить цену открытия и закрытия на любом произвольном уровне.
На произвольном уровне? Вы серьезно? Никто не может поменять то что уже случилось.. Если речь про реалтайм торговлю то да можно поднять цену рынка или опустить, Вы тоже можете это делать.
Цитата
Andrey.R написал: просто при анализе последовательности свечей не всегда Закрытие условно первой совпадает с открытием условно 2й. Почему такое возможно при сильно волантильном рынке с плотным стаканом?
Легко. в 11:59:59.999 Вася купил у Пети за 100р. а в 12:00:00.001 Саша купил у Вовы за 101р. Вот и получится что у минутной свечки 11:59 закрытие будет 100р. а открытие у свечки 12:00 будет 101р. Не все же торгуют по рыночной цене, есть стоп заявки, есть лимитированные заявки и т.д.
Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
Сергей Гусаков написал: А нет опции автосоединения при разрыве?
В меню Система - Соединения, галка «Восстанавливать связь автоматически через ... секунд с ... до ...». Подробнее в документации: -Раздел 1. Подготовка к работе --Настройка параметров соединения
Ирина написал: Но хотелось бы записи в виде таблицы с параметрами что ли, как в функции sendTransaction.
согласно документации, если последний параметр в функции SearchItems не задан то в функцию передается таблица со всеми параметрами. пример
Код
t1 = SearchItems ("all_trades",0,getNumberOf ("all_trades")-1, function(T) if (T.qty == 103) and (T.class_code== "SPBFUT") and (T.sec_code== "RIM3") then return true else return false end end)
Sergey Gorokhov написал: Никто не мешает задавать набор контролируемых параметров в функции SearchItems
Непонятно. Приведите пример.
В функции SearchItems последним параметром Вы задаете список параметров которые следует смотреть в функции fn. Пример есть в документации QLUA.chm:
Код
function fn(par1, par2, par3)
if par1 == 103 and par2 == "SPBFUT" and par3 == "RIM3" then
return true
else
return false
end
end
t1 = SearchItems("all_trades", 0, getNumberOf("all_trades")-1, fn, [B]"qty,class_code, sec_code"[/B])
Александр написал: после обновления в обычной лимитной заявке появилась вот такая функция
Этот функционал уже существует очень долго, еще с 6-х версий терминала.
Цитата
Александр написал: это заинтересовало, но ни в одной справке и ни на одном видеохостинге я не нашел конкретного объяснения этого доп. условия.
из документации на терминал QUIK:
Цитата
Выбор цены исполнения заявки: «По одной цене» – заявка исполняется по одной цене. «По разным ценам» (по умолчанию) – заявка может быть исполнена по разным ценам.
Более подробно подскажут специалисты биржи, в их интерфейсе это параметр SPLITFLAG
Цитата
Александр написал: есть ли какое-то отличие по функциональному исполнению заявки на покупку ниже текущей цены через F2 с дополнительным условием "по разным ценам" , от заявки на покупку ниже текущей цены через F6 ?
Как уже было сказано и еще раз повторим:
Цитата
Sergey Gorokhov написал: Стоп-лимит при активации отправляет в систему обычную лимитную заявку с типом "поставить в очередь", и ценой "по разным ценам"
Это не вопрос веры. Меня, как и вас, интересует конкретный ответ: каким образом при срабатывания стопа на покупку по цене 200р была задействована цена 150р, которая ниже этого стопа?
При чем тут стоп? В нашем примере ничего не было про стоп. О чем уже было явно сказано ранее:
Sergey Gorokhov написал: обычную лимитную заявку с типом "поставить в очередь", и ценой "по разным ценам"
Вы четко сказали что наш пример не корректный:
Цитата
Александр написал: То есть из вашего примера на самом деле человек купит 3кг по 200р, 2кг по 250р, ну и еще дороже у кого-нибудь остальные 5кг.
И даже более того Вы сказали что невозможно выставить лимитную заявку как нашем примере:
Цитата
Александр написал: Это невозможно, поскольку лимитные заявки выставляются на покупку только ниже текущей цены и на продажу - выше текущей цены.
Вам были представлены убедительные доказательства что это возможно, наш пример корректный и Вы ошибаетесь. Если говорить именно про стоп, а если точнее "стоп лимит", то наш пример к нему никак вообще не относится, простите внимательней к чему он вообще был написан.
В случае стопа, можно привести такой пример ситуации когда задействована цена 150:
Приходите на рынок и говорите "куплю 10кг апельсинов по 200р, когда цена последней сделки будет больше либо равна 150"
Допустим в этот момент продают по такой цене: 6шт за 150 3шт за 200 2шт за 250 Стоп смотрит НЕ на заявки в стакане, а на сделки
Допустим случилась сделка по цене 150 (кто то купил 1 штуку по 150), в стакане осталось висеть это: 5шт за 150 3шт за 200 2шт за 250 в результате Ваша стоп заявка выставит обычную лимитированную заявку с типом цены "по разным ценам" на покупку 10 по цене 200 Далее, уже сценарий идет ровно как в нашем примере:
Цитата
Sergey Gorokhov написал: Приходите на рынок и говорите "куплю 10кг апельсинов по 200р" а к Вам подходит мужик и говорит я продаю по 150 за кг, но у меня есть только 5кг, и подходит еще два мужика, у одного 3кг по 200 а у другого 2кг но по 250. Все, больше ни у кого апельсинов нет. Ваша заявка удовлетворит 5 по 150 и 3 по 200, итого купите 8кг. а 2 кг по 250 не купите, т.к. цена ХУЖЕ той которую Вы указали.
Это и есть ответ на Ваш вопрос:
Цитата
Александр написал: каким образом при срабатывания стопа на покупку по цене 200р была задействована цена 150р, которая ниже этого стопа?
Специально для Вас. Вот стакан: Ставим лимитную заявку на покупку 10 по 200 И она успешно выставляется и даже срабатывает! Как видно, купили 3шт по 200 и 5 по 150. В стакане осталось висеть на продажу 2 по 250 и наши оставшиеся на покупку 2 по 200. Т.е. ровно то что было сказано в примере:
Цитата
Sergey Gorokhov написал: Ваша заявка удовлетворит 5 по 150 и 3 по 200, итого купите 8кг. а 2 кг по 250 не купите, т.к. цена ХУЖЕ той которую Вы указали.
Александр написал: а наш участник хочет купить именно по 200р, то он сможет выставить лимитную заявку на покупку только ниже 150р
Если он хочет купить по 200 что ему мешает поставить заявку на 200? С чего вдруг он сможет только ниже 150? кто запрещает? Есть предложение, и есть спрос, кто сказал что нельзя удовлетворить предложение?
Цитата
Александр написал: А значит участник из данного конкретного примера с 3-мя заявками купит всего 5кг - 3кг. по 200р и 2кг. по 250р.) Как-то так.)
Простите но полный бред иначе не назовешь. Никто Вам не продаст по 250 пока Вы сами этого не захотите. А в примере явно сказано что хотите Вы купить по 200 а не по 250.
Просто попробуйте сами на нашем демо, если не верите.
Александр, Нет Вы не правы, посмотрите в стакан. Там есть заявки на покупку дешево ( в примере по 150) и на продажу дорого (в примере по 250), не задумывались почему они не удовлетворяют друг друга? По вашей логике вся московская биржа все годы ее существования работала не правильно так что ли?
Денис сапап написал: одсветить свою заявку, чтоб она постоянно была подсвечена, ане каждый раз ее приходилось включать?
Для того чтобы свои заявки подсвечивались, в свойствах стакана следует включить опцию "Выделять свои заявки"
Для того чтобы опция была включена "по умолчанию", нужно сохранить стакан в качестве шаблона (в контекстном меню стакана Шаблоны - Сохранить в шаблон) после чего установить созданный шаблон в качестве выбранного по умолчанию (в контекстном меню стакана Шаблоны - Настроить шаблоны)
Денис сапап, Т.е. Вам нужен график разницы между спросом и предложением? Если так то такого в QUIK нет. Его можно реализовать самостоятельно через Lua индикаторы
Большие ли отличия QLua от от Lua и где официальная документация?, Какая версия Lua в QLua, работают ли все функции Lua или только какой-то ограниченный набор (если так, то где прочитать, какой?), можно ли подключать модули и все как в обычном Lua? Есть ли где-то на официальном сайте документация?
Goodchild, Здравствуйте, Описанная в данном посте ошибка еще не была устранена. Как уже было сказано она будет исправлена в одной из следующих версий терминала, а не в текущей версии.
Здравствуйте, Все имеющиеся индикаторы технического анализа приведены в документации на терминал, глава "Раздел 4. Работа с графиками" раздел "Методы технического анализа" Если же под "Дельтой" Вы понимаете дельту опционов, то она есть в таблице "Доска опционов"
BashOrgRu, Для обычной (не стоп) заявки, для выставления в дополнительную торговую сессию (после 23х) в параметре "Условие исполнения" надо указать значение "Extended hours". Это требование торговой системы. А у Вас заявка отвергается т.к. это требование не было соблюдено. Что касается стоп заявок, то в текущей реализации для них изменение этого параметра, к сожалению не поддерживается.