theorist (Автор тем)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Открывается позиция больше чем в заявке
 

У меня возникает такая ситуация при открытии и закрытии сделки:

Например, сегодня открыл сделку на покупку акций Сбербанка объемом 10 лот по рынку. В таблице сделок в столбце кол-во стояло «10», как и должно быть. Однако в таблице «состояние счета» в столбце «позиция» почему-то  стояло «200», как будто я купил  в 2 раза больше акций (если бы в настройках таблицы был выбран флаг «количество в лотах», то стояло бы наверно «20»).  В столбце «стоимость» сумма была тоже в 2 раза больше, чем я реально купил, если судить по таблице сделок.

Но это еще не все. Когда я закрыл сделку из таблицы «состояние счета» (нажав на «С Закрыть»), то было продано 20 лот, а не 10. В результате открылась нежелательная позиция в 10 лот на продажу. Я это случайно заметил, и закрыл ее, но уже не из таблицы «состояние счета»,  а путем  выставления заявки на покупку на 10 лот.

Прикладываю скриншот таблицы сделок. К сожалению скриншот таблицы «состояние счета» сделать забыл.

Просьба прокомментировать, как такое могло случиться?  


В таблице текущих торгов не все столбцы заполнены
 

Вопрос видимо к разработчикам Quik. В таблице текущих торгов для облигаций ОФЗ присутствуют не все данные. На скриншоте видно, что не заполнены столбцы «кол-во сделок», «длительность купона» и «доходность».  В то же время для облигации ВТБ Б-1-48, которая к ОФЗ не относится, эти данные есть.

При этом на другом терминале Quik по второму брокерскому счету таблица текущих торгов для ОФЗ полностью заполнена.

Кроме того, на этом втором терминале при редактировании таблицы текущих торгов  в выпадающем списке почему-то  больше разных ОФЗ, чем в первом терминале.

На первом (проблемном) терминале у меня раньше был ИИС, который я закрыл, но потом открыл новый ИИС и привязал его к этому же терминалу.    


Звуковой сигнал в интерпретаторе lua.exe, Как сделать сигнал beep при запуске программы с помощью lua.exe
 

Мне надо адаптировать свою программу тестирования на исторических данных так, чтобы она запускалась не из Quik, а интерпретатором lua.exe из командной строки (типа ..\lua.exe myprogram.lua). В конце программы запрограммирован звуковой сигнал beep для оповещения, что программа завершила работу. Это сделано 2-мя операторами: require("w32") и w32.MessageBeep(w32.MB_OK). Я записал в каталог, где сидит lua.exe, библиотеку w32.dll. Однако lua.exe выдает ошибку “запуск программы  невозможен, так как на компьютере отсутствует файл qlua.dll”.  Если добавить этот файл, то тогда требует еще какой-то файл QCtrls.dll. Что все это значит – я не понимаю.

В каталоге, где сидит lua.exe, есть файл lua54.dll.  Это видимо какая-то своя библиотека?  Пробовал заменить в вышеупомянутых 2-х операторах w32 на lua54, т.е. написал require("lua54”) и lua54.MessageBeep(lua54.MB_OK). Но этот финт не помог -   выдает ошибку Error loading module ‘lua54’ from file ‘D:\lua\lua54.dll’.

В общем сдаюсь. Может кто-то знает- как сделать, чтобы при запуске программы с помощью lua.exe работал сигнал beep?

Американские акции и фьючерсы, Где скачать по ним минутные данные?
 

Раньше в Quick можно было вывести  графики по иностранным индексам,  акциям и фьючерсам. Но с начала этого года их нет в списке инструментов. Техподдержка брокера ВТБ говорит, что теперь эти данные им не поставляют.

Мне нужны минутные данные в виде таблицы. На американских сайтах такая информация платная (на одном  например подписка стоит $ 450 в  год).

Может кто знает, где можно скачать минутные данные по наиболее ликвидным американским акциям и фьючерсам хотя бы за предыдущий торговый день?

Глубина истории на графиках акций, Как увеличить количество свечей?
 
Мне надо выполнить тестирование на исторических данных по акциям на 10 минутном графике, но не хватает глубины истории и из-за этого нельзя получить статистически значимые результаты.

В руководстве в разделе "перезаказ данных" написано, что на рабочем месте QUIK хранится до 65000 свечей. Такое количество свечей имеется только на минутном графике, а с увеличением периода оно уменьшается. На примере акций Сбербанка картина такая:
1 минута - 66061 свечей с 27.12.2017
5 минут - 21642 свечей с 10.05.2017
10 минут - 3106 свечей с 30.04.2018
1 час - 4270 свечей с 16.09.2016
1 день - 3142 свечей с 12.12.2005
В целом наблюдается закономерность: чем больше интервал графика, тем глубже история свечей. Поэтому непонятно, почему на 10 минутном графике  история начинается позднее, чем на 1 и 5 минутном графиках и свечей на порядок меньше. Может это связано с тем, что раньше я постоянно работал с 1м, 5м, 1ч и 1д, а 10 минутные графики никогда не вызывал?

Вопрос такой: можно ли увеличить глубину истории на 10 минутном графике соразмерно с другими периодами, скажем до 10000-15000 свечей?  может где-то есть архивы исторических данных?
Функция SetRangeValue рисует лишнюю линию, Как убрать линию, соединяющую уровни, заданные SetRangeValue
 
Когда в индикаторе с помощью функции SetRangeValue задаю горизонтальные отрезки на разных уровнях, то эти отрезки почему-то соединяются линией. Если ввести такой блок:

sz=Size()
SetRangeValue(1,sz-3,sz,100)
SetRangeValue(1,sz-7,sz-5,200)

то получится картина, как на скане внизу слева, а по идее в точке sz-4 должно быть пусто. Попробовал  добавить оператор SetValue(sz-4,1,nil), который казалось бы должен стереть эту линию, но это ничего не дает.

Все-же от ненужной  линии можно избавится, если в Settings задать Type=TYPE_POINT. Тогда вместо линии будут точки, как показано на другом скане внизу справа.  
Вроде на этом можно и забить кол, однако разве душа трейдера может смириться с этим? - Точки то совсем блекнут при растягивании графика, то сливаются в яркую линию при сжатии графика, в отличие от нормальной линии.

Интересно, есть ли другое решение этой проблемы,  с использованием Type=TYPE_LINE?  



 
Доступ к свечам открытого интереса фьючерсов
 
У свечей  на графике открытого интереса фьючерса такие же параметры как у свечей цены - H,L,O,C,V,T.
Можно ли  в Lua получить доступ к  свечам открытого интереса, например к закрытию C?
Комиссия за клиринг по фьючерсам
 
Возможно, это вопросы к НКЦ (национальному клиринговому центру), но если кто знает, то просьба ответить  хотя бы на часть вопросов насчет  комиссии за клиринг по фьючерсам:
1) Когда начисляется и списывается со счета эта комиссия - в дату заключения сделки? в дату закрытия сделки? в каждый клиринг, включая дневной (если сделка длится несколько дней)?
2) Верно ли то, что комиссия за клиринг по фьючерсам на российские акции равна 0,00425% от суммы контракта?
3) Чему равна комиссия по фьючерсу на золото - 1 или 2 руб?
4) Где я могу посмотреть комиссию за клиринг по своим сделкам? (в брокерском отчете, в личном кабинете в реестре комиссий и в отчетах в Quik эта комиссия не указана)

На сайте http://www.moex.com/s93  в п. 4  даются ссылки, где смотреть  клиринговые тарифы по фьючерсам. В "Тарифах клирингового центра" в п. 36.4 на стр. 65 говорится, что комиссия начисляется в дату ЗАКЛЮЧЕНИЯ сделки. В другом документе "Тарифы  *  кредитной организации ..." в п. 7 раздела V говорится, что комиссия начисляется в дату ИСПОЛНЕНИЯ фьючерсного контракта. По золоту в упомянутом разделе V тарифов указано 1 руб., а в таблице "клиринговые сборы за исполнение срочных контрактов (вызывается по одноименной ссылке в п. 4 сайта) - 2 руб. Разобраться в этих замечательных документах не так то просто.
Снятие всех заявок в Lua, Какой брать параметр trans_id?
 
В руководстве пользователя QUIK в разделе «Формат .tri-файла с параметрами транзакций» написано, что для снятия всех заявок обязательные параметры - «CLASSCODE», «TRANS_ID», «ACTION»,  «ACCOUNT».
Непонятно, как задавать TRANS_ID. Брать его для любой активной заявки? А если TRANS_ID будет соответствовать заявке, которая превратилась в сделку, то тогда функция снятия  всех заявок  не сработает? Правильно ли вообще написана у меня  эта функция?

function Close_all_order()
local Transaction={
ACCOUNT="L01-00000F00",
TRANS_ID=tostring(trans_id),
CLASSCODE="EQOB",
ACTION="KILL_ALL_ORDERS"}
local Res = sendTransaction(Transaction)
end

Идентификатор транзакции  trans_id  задается в основной программе и при открытии каждой заявки  увеличивается на 1:  trans_id=trans_id+1.
Откkючение маржинального кредитования в Quik
 
При покупке облигаций встает вопрос: можно ли отключить маржинальное кредитование в Quik?

Вопрос связан вот с чем: После отмены налога на доход с корпоративных облигаций доход по ним стал больше, чем по ОФЗ.  Однако корпоративные облигации неликвидны, спред между ценами покупки  продажи порядка 0,5 %. Пример – ВТБ Б-1-2.  Если для покупки этой облигации выставить лимитную заявку даже по  лучшей цене покупки в стакане, то не факт, что заявка в течение дня исполнится.  Поэтому неплохо бы выставлять сразу 2 или несколько заявок на разные облигации, для увеличения шансов на сделку. Но тогда может исполниться больше одной заявки  и войдешь в  маржу. Чтобы выйти из маржи, придется срочно продавать лишние облигации, а из-за большого спреда получишь значительный убыток. Если бы можно было отключить маржинальное кредитование, то данная проблема была бы решена, т.к. тогда после исчерпания собственных средств ненужные заявки не будут исполняться.
Информация из таблицы текущих торгов
 
При использовании функции getParamEx (class_code,  sec_code,  param_name) для получения параметров param_name из таблицы текущих торгов надо задавать class_code и  sec_code.  Приходится для sec_code  создавать массив километровой длины типа  sec_code  ={"ALRS","AFLT", ...,"FEES"}. А если список акций в таблице текущих торгов меняется то этот массив приходится  тоже менять.

Вопрос: можно ли просто прочитать все строки таблицы текущих торгов подряд без задания  class_code и  sec_code и определить параметры param_name?  
Страницы: 1
Наверх