Добрый день. Он не нуждается в деинсталляции - достаточно просто удалить вручную папку с программой. После этого практически никаких следов от нее не останется.
getSecurityInfo(ClassCode, secCode) возвращает значения nil
Пользователь
Сообщений: Регистрация: 31.01.2015
24.02.2015 12:11:16
Цитата
Серж пишет: И там ещё смайлы какие-то непонятные. В коде не должно быть смайлов.
Это наверное форум тупит - преобразовывает последовательность обычных символов в смайлы
T()
Пользователь
Сообщений: Регистрация: 31.01.2015
23.02.2015 19:29:22
Вообще интересно, как именно, то есть на основе каких данных разработчики строят в терминале Таблицу изменений параметров. Возможно, что в базе данных терминала все-таки хранится порядковый номер в пределах одной секунды того момента времени (временного среза), когда было получено изменение того или иного параметра, относящегося к любому инструменту (из числа тех, по которым в терминал поступают изменения параметров). Но тогда непонятно, почему нельзя было предоставить возможность получать значение этого номера с помощью QLua. Поэтому у меня даже возникли сомнения в том, можно ли полностью доверять той информации, которая отображается в Таблице изменений параметров. Хотя не исключено, что эта таблица строится как-то иначе, без использования подобных номеров. В связи с этим хотелось бы услышать от разработчиков, хотя бы вкратце, как же именно реализовано построение Таблицы изменений параметров в терминале.
T()
Пользователь
Сообщений: Регистрация: 31.01.2015
23.02.2015 18:27:48
Для всех параметров ТТП ms всегда будет равно 0.
T()
Пользователь
Сообщений: Регистрация: 31.01.2015
23.02.2015 18:03:35
Цитата
Серж пишет: Я не решал подобных задач, но полагаю, что для тех параметров, которые изменяются реже одного раза в мс (а это все параметры из ТТП), можно построить таблицу соответствий вида:
Код
{par1_i, par2_i},
где par1_i, par2_i - значение каждого параметра, синхронизированные по значению ms
К сожалению, этого сделать не получится, так как в ТТП время записей приведено с точностью до целых секунд. Миллисекунд там нет. Кстати, видел, что разработчики не так давно писали (еще на старом форуме) о том, что биржа теперь может транслировать миллисекунды для ТТП по инструментам с рынка FORTS. Однако разработчики пока еще не решились добавить этот параметр в ТТП.
В какой таблице найти информацию о short
Пользователь
Сообщений: Регистрация: 31.01.2015
23.02.2015 15:52:10
В таблице "Клиентский портфель" нажмите право кнопкой мыши на любой строке и выберите пункт контекстного меню "Открыть таблицу [Купить/Продать]. В открывшейся таблице для тех акций, которые доступны для short, в колонке "Тип" присутствует буква К.
T()
Пользователь
Сообщений: Регистрация: 31.01.2015
23.02.2015 15:34:14
Вы далеко не первый, кто задумывался над этим вопросом:
К сожалению, на сегодняшний день средств для решения описанной Вами задачи не существует.
Где находятся файлы Quik
Пользователь
Сообщений: Регистрация: 31.01.2015
21.02.2015 16:25:20
1) Иногда брокеры предусматривают несколько разных настроек подключения к одному и тому же серверу (через разных провайдеров брокера). Это делается на случай выхода из строя интернет-канала одного из провайдеров. Дополнительных денег от вас это не требует. Более точную информацию вы можете получить у своего брокера. 2) Да, только к этим айпи. 3) Правильно. 4) Если выход в интернет у вас организован через прокси-сервер (например, при нахождении внутри корпоративной сети), то необходимо прописать настройки этого прокси-сервера в меню Настройки / Соединение с Интернетом.
Облигации в таблице "Состояние счёта"
Пользователь
Сообщений: Регистрация: 31.01.2015
21.02.2015 14:08:16
Цитата
олег пишет: Прошу удалить тему . Вместо таблици с параметрами получилась .......
Ничего, кому надо увидеть картинку - нажмут "цитировать" на вашем сообщении и все увидят :D
Дмитрий пишет: Вопрос немного не по теме - а айсберг заявки можно выставлять не только по акциям на фондовой секции Московской биржи, но также и на других секциях (на валютном, на срочном рынке)?
Sergey Gorokhov пишет: По возможностям, айсберг через модуль, мало чем отличается от айсберга на фондовой секции.
Это как? Айсберг-заявки официально поддерживаются на валютном и срочном рынках?
С чего Вы взяли. Я не помню чтобы такое кто-то говорил
Добрый день! А судя по информации на сайте биржи, с 3 октября 2011 на валютном рынке участники торгов могут выставлять заявки типа «скрыть количество» ( заявки «Айсберг»):
Размер шрифта
Пользователь
Сообщений: Регистрация: 31.01.2015
20.02.2015 15:52:23
Цитата
Владимир пишет: В настройках программы не нашел (пропустил?)
Настройки / Основные... / Программа / Шрифты
Где находятся файлы Quik
Пользователь
Сообщений: Регистрация: 31.01.2015
20.02.2015 00:14:23
Все файлы хранятся в папке с файлом info.exe и ее подпапках (подкаталогах). Если при перемещении не находит ключ - значит, надо проверить какой путь к нему указан в настройках. Обычно эти пути прописаны в файлах signalcom.ini , SSLPro_Pr.ini Если ключ лежит в подпапке программы Quik, а путь в файле настроек указан абсолютный, то он при перемещении программы не будет найден. Либо исправьте полный путь, либо пропишите относительный (считая, что папка с файлом info.exe является текущей).
Изменить заявку
Пользователь
Сообщений: Регистрация: 31.01.2015
19.02.2015 22:35:34
Цитата
swerg пишет: На некоторых рынках да, на некоторых - нет.
А на каких именно? Вы имеете в виду использование функции sendTransaction с ACTION = MOVE_ORDERS, которая работает только на рынке FORTS ?
Как с помощью кода открыть график и отформатировать его по шаблону?, Как с помощью кода открыть график и отформатировать его по шаблону?
Пользователь
Сообщений: Регистрация: 31.01.2015
19.02.2015 15:56:45
И если не прицепить к открытому в терминале графику индикатор, то его значения (индикатора) она тоже не вернет?
Как с помощью кода открыть график и отформатировать его по шаблону?, Как с помощью кода открыть график и отформатировать его по шаблону?
Пользователь
Сообщений: Регистрация: 31.01.2015
19.02.2015 15:19:28
А для того чтобы получить доступ к данным графика цены или стандартного индикатора с помощью функции GET_CANDLE языка QPILE - их обязательно предварительно открывать в терминале? Или же она работает по принципу CreateDataSource из QLua, то есть независимо от наличия в терминале открытого графика?
Как с помощью кода открыть график и отформатировать его по шаблону?, Как с помощью кода открыть график и отформатировать его по шаблону?
Пользователь
Сообщений: Регистрация: 31.01.2015
19.02.2015 13:51:36
Цитата
sam063rus пишет: что мешает Вам самим написать аналоги стандартных индикаторов на qlua
То, что это займет какое-то время... И мысль о том, зачем заново писать то, что уже написано? Кстати, а готовых текстов этих стандартных индикаторов на QLua Вам не встречалось?
Как с помощью кода открыть график и отформатировать его по шаблону?, Как с помощью кода открыть график и отформатировать его по шаблону?
Пользователь
Сообщений: Регистрация: 31.01.2015
19.02.2015 13:37:39
, то что Вы пишете - очень печально. Я, например, задавался вопросом - что если мне понадобится проанализировать, какие сигналы выдает тот или иной имеющийся в Quik индикатор на графиках по нескольким десяткам разных инструментов на разных временных интервалах. Я так понимаю, что прицепив индикатор к графику цены, этому индикатору можно присвоить идентификатор, по которому затем получать в скрипте его значения с помощью getCandlesByIndex. Но добавлять индикатор на график цены можно только вручную, так же как и присваивать ему идентификатор (tag). Очевидно, что при количестве инструментов в несколько десятков, помноженных на несколько таймфреймов, эта задача становится практически невыполнима. Если бы разработчики хотя бы сделали аналог функции CreateDataSource для индикаторов, с помощью которой можно было бы получать их значения, привязав как-то индикатор к данным, получаемым с помощью этой функции (CreateDataSource) по определенному инструменту - то отсутствие возможности автоматического открытия графиков и добавления на них индикаторов было бы не так страшно.
вопрос разработчикам, что такое Идентификатор сессии
Пользователь
Сообщений: Регистрация: 31.01.2015
17.02.2015 13:28:35
Здравствуйте! Скажите, пожалуйста, что означает поле Идентификатор сессии в Информационном окне (строка из 36 символов)? Для чего он нужен? И почему у одного брокера значение этого идентификатора одинаковое для двух разных серверов (в течение одного дня), а у другого - всегда разное (т.е. для каждого сервера свой идентификатор). О чем это говорит?
модуль "Стратегия"
Пользователь
Сообщений: Регистрация: 31.01.2015
17.02.2015 12:06:27
Имеется в виду одна из закладок внизу экрана? У меня такой нет... А об этом модуле можно что-то прочитать в документации или на сайте разработчиков?
модуль "Стратегия"
Пользователь
Сообщений: Регистрация: 31.01.2015
17.02.2015 11:55:09
А где его можно найти в меню терминала? Я впервые слышу о таком модуле...
Создание "вечного робота"., Переподключение QUIK и Lua-скрипта на следующий день.
Пользователь
Сообщений: Регистрация: 31.01.2015
16.02.2015 17:54:27
Цитата
Евгений пишет: а просто getSTime() нельзя использовать для проверки подключения?
А в QLua или в QPILE есть такая функция?
Сделать заявку своей, средствами qlua
Пользователь
Сообщений: Регистрация: 31.01.2015
16.02.2015 15:00:39
Цитата
lergen пишет: поправлюсь - работали две аналогичных копии терминала
Терминалы работали с разными брокерами?
Вертикальная сетка, Привязка вертикальной сетки к режиму торгов
Пользователь
Сообщений: Регистрация: 31.01.2015
16.02.2015 10:54:37
Тут надо еще учесть, что реальное расписание может отличаться от приведенного. Например, в дни экспирации опционов Вечерний клиринговый сеанс продлевается до 19:10. Плюс бывают всякие нештатные ситуации, правда реже.
не добавляются строки в таблицу
Пользователь
Сообщений: Регистрация: 31.01.2015
15.02.2015 23:35:26
Цитата
Серж пишет: Но если всё же решитесь на этот подвиг, то вот
Спасибо, но можно обойтись без этой таблицы - достаточно использовать функцию string.char(par2)
не добавляются строки в таблицу
Пользователь
Сообщений: Регистрация: 31.01.2015
15.02.2015 23:05:28
Подскажите еще, пожалуйста - можно ли в клетки этих экранных таблиц, созданных с помощью Lua, вводить какие-то данные? Есть ли более простой способ сделать это, чем перехват нажатий клавиш внутри функции, заданной с помощью SetTableNotificationCallback() ?
не добавляются строки в таблицу
Пользователь
Сообщений: Регистрация: 31.01.2015
15.02.2015 12:45:56
, и Вам спасибо! :) Не ожидал, что столько ответов получу на свой вопрос.
Цитата
Серж пишет: Функции работы с таблицами, в т.ч. DestroyTable() не работают после нажатия кнопки "Остановить", поэтому их вызов надо размещать в колбеке OnStop().
А об этом где-то разработчики писали или это тоже из разряда нигде не упоминающихся особенностей?
не добавляются строки в таблицу
Пользователь
Сообщений: Регистрация: 31.01.2015
15.02.2015 12:28:27
и , спасибо за помощь! Про порядок вызова функций в документации, к сожалению, ничего не сказано. Использование враппера, судя по его тексту, скорей всего привело бы к той же самой ошибке при добавлении строк, если бы я добавлял их функцией QTable:AddLine() до вызова QTable:Show(). Во всяком случае в примере его использования из справки сначала идет Show, а уже потом AddLine. Наверное, при работе с большим числом таблиц удобней было бы использовать quik_table_wrapper.lua, но мне было нужно создать одну простейшую таблицу для эмуляции работы экранной кнопки типа старт/стоп и одной настройки в виде check box. С экранными таблицами раньше не работал, поэтому решил пока не заморачиваться изучением текста quik_table_wrapper.lua.
не добавляются строки в таблицу
Пользователь
Сообщений: Регистрация: 31.01.2015
15.02.2015 01:04:48
Цитата
sam063rus пишет: решил обойтись без quik_table_wrapper.lua ? )))))
А что, без него никак нельзя?
не добавляются строки в таблицу
Пользователь
Сообщений: Регистрация: 31.01.2015
15.02.2015 00:30:19
Здравствуйте! Пытаюсь создать таблицу для последующего вывода на экран. Но почему-то в нее не добавляются строки. Вдобавок не отображается заголовок окна. И при вызове функции DestroyTable() окно не закрывается (хотя должно, как я понял из документации). Что я делаю неправильно? Вот код:
Код
stopped = false
function OnStop(stop_flag)
stopped = true
end
function main()
t_id = AllocTable()
res = AddColumn(t_id,1,"col1",true,QTABLE_CACHED_STRING_TYPE,30)
message("AddColumn - " .. tostring(res), 1)
res = AddColumn(t_id,2,"col2",true,QTABLE_CACHED_STRING_TYPE,30)
message("AddColumn - " .. tostring(res), 1)
row1 = InsertRow(t_id, -1)
message("InsertRow - " .. tostring(row1), 1)
row2 = InsertRow(t_id, -1)
message("InsertRow - " .. tostring(row2), 1)
SetWindowCaption(t_id, "Моя таблица")
CreateWindow(t_id)
while not stopped do
sleep(1000)
end
DestroyTable(t_id)
end
Из сообщений в терминале видно, что InsertRow в обоих случаях возвращает 0.
Список доступных для транзакций инструментов, получение списка инструментов для совершения транзакций с учетом различных аккаунтов у одного и того же брокера.
Пользователь
Сообщений: Регистрация: 31.01.2015
14.02.2015 14:12:04
Цитата
Серж пишет: Это сняло бы большую часть вопросов, т.к. чаще ограничения ставятся на весь класс.
Совсем не обязательно. Знаю случай, когда брокер ограничивал список инструментов в пределах класса "фьючерсы", по которым можно было совершать сделки.
Автоматическое переключение на другой сервер
Пользователь
Сообщений: Регистрация: 31.01.2015
14.02.2015 00:34:50
Понятно :) Значит, это Ваш личный выбор - или повышенная безопасность или возможность автоматического восстановления соединения.
Сделать заявку своей, средствами qlua
Пользователь
Сообщений: Регистрация: 31.01.2015
13.02.2015 22:29:02
А где-то можно прочитать подробности о сути этой эмуляции - как именно она реализована?
Сделать заявку своей, средствами qlua
Пользователь
Сообщений: Регистрация: 31.01.2015
13.02.2015 22:15:18
Вопрос немного не по теме - а айсберг заявки можно выставлять не только по акциям на фондовой секции Московской биржи, но также и на других секциях (на валютном, на срочном рынке)?
Сделать заявку своей, средствами qlua
Пользователь
Сообщений: Регистрация: 31.01.2015
13.02.2015 21:51:39
А разве автор темы спрашивал про стоп-заявку? У него написано просто "заявка".
вопрос разработчикам, структура файлов с графиками
Пользователь
Сообщений: Регистрация: 31.01.2015
13.02.2015 20:59:35
Уважаемые разработчики, сегодня обнаружил ошибку в работе обновленной версии вашей утилиты QMinEditor.exe (кстати, путем обратной конвертации полученных с ее помощью текстовых файлов в двоичный формат, который вы так и не захотели опубликовать). Ошибка заключается в следующем: если в двоичном файле с данными графика есть свечи, где цена отрицательная (меньше 0), то в текстовый файл вместо нее выводится 0. Отрицательные цены встречаются по инструментам типа "спред" (класс FUTSPREAD) - посмотрите, например, минутные интервалы по спредам GZH5GZM5 и RIM5RIU5.
Автоматическое переключение на другой сервер
Пользователь
Сообщений: Регистрация: 31.01.2015
13.02.2015 17:28:50
, за последнее время я пользовался услугами двух широко известных брокеров и у обоих есть возможность не защищать ключ паролем, а путь к ключевому носителю задавался только один раз.
работа с фьючерсами
Пользователь
Сообщений: Регистрация: 31.01.2015
13.02.2015 15:49:12
Я на досуге перечитаю еще раз спецификацию контракта на нефть сорта брент. А пока может нас рассудят другие? :D
Автоматическое переключение на другой сервер
Пользователь
Сообщений: Регистрация: 31.01.2015
13.02.2015 15:41:52
Может, я что-то не понимаю, но по-моему есть возможность использовать ЭЦП без запроса пароля и прописать место ключевого контейнера только один раз.
работа с фьючерсами
Пользователь
Сообщений: Регистрация: 31.01.2015
13.02.2015 15:36:09
Цитата
Серж пишет: Вы неверно рассчитываете вариационную маржу. Согласно вариационная маржа рассчитывается как разница произведений цены на стоимость минимального шага цены, делённых на минимальный шаг цены.
Я знаю, что привел грубый расчет, которые не полностью соответствует описанной в спецификации методике. Просто чтобы не усложнять пример. Я просто хотел показать, что Ваше утверждение:
Цитата
Серж пишет: Так, если бы вы купили брент по 100$ при курсе 30 руб./$, а продали по 50$ при курсе 60 руб./$, то в рублях вы бы ничего не заработали и не потеряли.
в общем случае не соответствует действительности. Именно из-за особенностей расчета вар.маржи в приведенном Вами примере мы можем получить как прибыль, так и убыток.
работа с фьючерсами
Пользователь
Сообщений: Регистрация: 31.01.2015
13.02.2015 15:19:36
Цитата
Серж пишет: Т.е., когда вы открыли шорт по брен, вам надо было открыть лонг по доллару на сумму 100$. В момент закрытия позиции по брен, вы закрываете лонг по доллару на 50$. И ваш финансовый результат составит 50$.
Ваша схема годится только для реальной торговли на спотовом рынке с поставкой: продали нефть, получили полностью ее цену в рублях, перевели в доллары (в итоге имеем 100$), потом через какое-то время купили обратно рубли на 50$ и закрыли позицию по нефти. В сухом остатке имеем 50$.
А при торговле фьючерсами в приведенном Вами примере фин.результат составит уже не 50$, а (37.5$ + 25$) = 62,5$ 37.5$ - от продажи фьючерса на нефть, а 25$ - от купленного фьючерса на курс доллар-рубль (50$*60 - 50$*30 = 1500 руб. = 1500/60 долл. = 25$) И зачем в данном случае открывать длинную позицию по фьючерсу на курс доллар-рубль на сумму 100 долларов, если потом закрывать ее только на 50? Что мне делать с оставшейся позицией на 50? А если ее тоже закрыть, то фин.результат и вовсе окажется равным 87,5$.
работа с фьючерсами
Пользователь
Сообщений: Регистрация: 31.01.2015
13.02.2015 14:28:37
Цитата
Серж пишет: Если бы вы сразу конвертировали рубли в 100$, то ваш финансовый результат составил бы порядка 50$
Вы имели в виду - купил фьючерс на доллар-рубль? Если просто купить доллары, то их как было 100, так и останется столько же, независимо от курса. Но Вы правы только при условии что рубль обесценился на столько же, на сколько нефть. А вот в 2008-2009 году рубль не падал так же сильно, как нефть.
Цитата
Серж пишет: Вы оплачиваете фьючерс именно в рублях, т.к. депозит рублёвый.
Строго говоря я его не оплачиваю, а всего лишь вношу гарантийное обеспечение, из которого может быть списана вар.маржа. Это все-таки несколько разные вещи. Ведь если бы я действительно оплачивал фьючерс в рублях и продавал потом за рубли, то не имело бы никакого значения как меняется курс в каждый из тех дней, когда у меня есть открытая позиция. Было бы достаточно учитывать только курс на день покупки и на день продажи фьючерса.
Автоматическое переключение на другой сервер
Пользователь
Сообщений: Регистрация: 31.01.2015
13.02.2015 14:05:46
Цитата
Серж пишет: Нужно, чтобы QUIK переключался на другой сервер через заданное количество неудачных попыток подключения.
А Вы попробуйте добавить в список соединений несколько одинаковых (на один и тот же сервер). Тогда он будет их перебирать столько раз, сколько Вам нужно, пока не дойдет до соединения с другим сервером. Решение корявое, но пока разработчики внесут исправление в программу (если вообще внесут) - это может решить Вашу проблему.
работа с фьючерсами
Пользователь
Сообщений: Регистрация: 31.01.2015
13.02.2015 13:42:24
Еще большая засада заключается в том, что если Вы купили сегодня фьючерс по 60, а он за день упал до 50, то с Вас спишут 10$ маржи, переведя в рубли по курсу, например, 70 (10*70 = 700 рублей). Завтра фьючерс вырос обратно до 60$. Вы не закрываете позицию, надеясь на дальнейший рост. Если курс на этот день окажется не 70, а 60, то Вам зачислят маржу в размере 600 рублей (10*60). На следующий день, видя, что цена не растет, Вы закрыли позицию по цене 60$. А курс доллара опять вырос до 70. Согласно Вашему примеру на день закрытия позиции Вы должны получить нулевой результат (60$*70 - 60$*70). Но на самом деле Вы окажетесь в убытке на 100 рублей (разница между списанной в первый день и зачисленной во второй день маржой).
работа с фьючерсами
Пользователь
Сообщений: Регистрация: 31.01.2015
13.02.2015 13:30:17
Цитата
Дмитрий пишет: Засада в данном случае лишь в том, что курс этот меняется постоянно.
Поясню в чем именно засада - если Вы продали фьючерс по 100, а купили по 50, то по идее должны заработать 50 долларов. Но так как этот доход зачисляется Вам не единовременно при закрытии позиции, а каждый день небольшими частями, причем пересчитывается при этом в рубли по курсу на день зачисления, то при равномерном росте курса доллара за это время с 30 до 60 средний курс окажется 45. Поэтому к тому моменту когда Вы закроете позицию и решите сконвертировать свою прибыль в доллары, Вы сможете купить лишь 45*50/60 = 37,5 долларов.
работа с фьючерсами
Пользователь
Сообщений: Регистрация: 31.01.2015
13.02.2015 13:23:25
Цитата
Дмитрий пишет: Поэтому даже при неизменном курсе доллара происходило бы зачисление вар.маржи и, соответственно, росла бы прибыль.
Я хотел сказать, что при любом курсе доллара все равно зачислялась бы вариационная маржа.
работа с фьючерсами
Пользователь
Сообщений: Регистрация: 31.01.2015
13.02.2015 13:20:26
, в данном случае не все так просто. Результатом прибыльной продажи фьючерса на нефть является ежедневное зачисление вариационной маржи (грубо говоря, разницы между ценами фьючерса в долларах на начало и на конец сессии), пересчитанной из долларов в рубли по текущему курсу. Поэтому даже при неизменном курсе доллара происходило бы зачисление вар.маржи и, соответственно, росла бы прибыль. Т.е. Вы не оплачиваете стоимость нефти в рублях, покупая фьючерс, так же как и не получаете ее стоимость в рублях, продав его. Вы получаете доход или убыток в виде разницы между ценой покупки и продажи фьючерса, выраженной в долларах, которая умножается на курс доллара к рублю. Засада в данном случае лишь в том, что курс этот меняется постоянно.
вопрос разработчикам, структура файлов с графиками
Пользователь
Сообщений: Регистрация: 31.01.2015
12.02.2015 22:23:52
, вообще согласен с Вами, структура dat-файла весьма проста - можно разобрать за полчаса, особенно с Вашими подсказками ( за которые спасибо :) )
вопрос разработчикам, структура файлов с графиками
Пользователь
Сообщений: Регистрация: 31.01.2015
12.02.2015 18:34:46
Цитата
sam063rus пишет: да уж... только ленивый до сих пор не понял формат dat-файлов ))))
Я привык прислушиваться к советам разработчиков:
Цитата
Александр Шумилин пишет: Так или иначе мы не рекомендуем Вам настраиваться на работу с данным файлом напрямую. ... с нашей помощью или без неё можно попробовать его-таки"читать" - но на этом пути могут подстерегать другие неприятности. Как например есть ненулевая вероятность , что внутренний формат dat-файла может быть изменён в очередной версии программы, в целях оптимизации, например. И узнаете Вы об этом в тот момент, когда Ваш алгоритм перестанет работать.
Кстати, на случай изменения внутреннего формата dat-файла можно было бы предусмотреть в его заголовке поле, содержащее номер версии этого формата - чтобы терминал сразу мог обнаружить, если такой файл был сформирован утилитой, рассчитанной на работу со старым форматом (и сообщить об этом).