Александр (Автор тем)

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

Страницы: 1
Лимитные заявки с ограниченным сроком действия, Сделать возможность отправлять лимитные заявки с ограниченным сроком действия
 
Актуально для роботов, которые выставляют много лимиток. Часто возникает проблема: либо при разрыве связи, либо при вылете квика - лимитки остаются висеть и потом исполняются, когда торговые условия уже изминились (если бы квик не вылетел или связь не пропала, бот бы эти лимитки ранее изменил или модифицировал, а так они исполняются уже на невыгодных условиях). Прошу сделать возможность выставлять лимитки, ограниченные по сроку действия в секундах или до определённого времени. Т.о. если квик вылетит или пропадёт надолго связь, рынок не успеет далеко уехать от тех условий, по которым эти лимитки выставлялись - лимитки через заданное время (например через 10 минут после выставляния) сами отменятся.
Тип фьючерса - Расчётный/Поставочный как узнать через скрипт?, Не могу найти в описании ни в getSecurityInfo ни в getParamEx такую возможность.
 
Тип фьючерса - Расчётный/Поставочный как узнать через скрипт?

Не могу найти в описании ни в getSecurityInfo ни в getParamEx такую возможность.  
Ошибка: Значение "" превышает допустимый размер, постоянно пишется ошибка: Значение "" превышает допустимый размер
 
По всем инструментам всё хорошо, как взял инструмент VKH5, при обращении скриптом к его заявке постоянно пишется ошибка: Значение "" превышает допустимый размер
Как исправить?
Скрин во вложении:
Как через скрипт узнать цвет ячейки таблицы?, Как через скрипт узнать цвет ячейки таблицы?
 
Есть функция BOOLEAN SetColor(NUMBER t_id, NUMBER row, NUMBER col, NUMBER b_color, NUMBER f_color, NUMBER sel_b_color, NUMBER sel_f_color), которой раскрашиваются ячейки таблицы.

Как в дальнейшем программно получить цвета в заданной ячейки таблицы, например фона и текста? Есть ли что-то типа функции GetColor?
Удаления из системы неактивных заявок?, Можно ли в квике где-то включить опцию, чтобы сами удалялись из квика (из памяти приложения, из списка заявок) неактивные заявки?
 
Добрый день.
Можно ли в квике где-то включить опцию, чтобы сами удалялись из квика (из памяти приложения, из списка заявок) неактивные заявки?

Проблема следующая - написал бота, который часто выставляет/снимает заявки по многим инструментам. К концу дня накапливается несколько десятков тысяч снятых заявок. Что приводит к проблеме со скоростью работы бота. Для обхода заявок использую цикл типа:
local n=getNumberOf('orders') - 1;
for i=n, 0, -1 do
local order = getItem('orders', i)
if  CheckBit(order.flags, 0)==true then
...
Который перебирает все заявки, бот работаем только с активными.
Но сама переборка всех заявок от первой до последней начинает отнимать секунды времени.

Можно ли в квике где-то включить опцию, чтобы сами удалялись из квика (из памяти приложения, из списка заявок) неактивные заявки?
Как получить информацию о количестве у меня на покупку/продажу лотов типа CNYRUB_TOM?, Как получить информацию о количестве у меня на покупку/продажу лотов типа CNYRUB_TOM?
 
Для получиния позиций по бумагам, акциям например, использую getNumberOf("depo_limits") и getItem("depo_limits", y);
Для фьютчерсов - getNumberOf("futures_client_holding") и getItem("futures_client_holding", y).

Для получения денежных позиций (класс CETS, бумаги типа CNYRUB_TOM ) что нужно использовать?
Открыл заявки на покупку и продажу CNYRUB_TOM  по соотвествующим ценам. Заявки активны.
Пробую испльзовать getNumberOf("account_positions") и getItem("account_positions", y), но getNumberOf("account_positions") выдаёт 0, хотя заявки на покупку/продажу по CETS есть.

Пример моего кода для акций (TQBR)
local tempPositions={};
local n = getNumberOf("depo_limits");
for y = 0, n-1 do
local trade = getItem("depo_limits", y);
local temp_stock_info=getSecurityInfo(GetClassBySecEx(trade.sec_code),trade.sec_code);
if temp_stock_info~=nil and trade.limit_kind== 365 then
tempPositions[trade.sec_code]={};
tempPositions[trade.sec_code][-1]=trade.locked_sell/temp_stock_info.lot_size;
tempPositions[trade.sec_code][0]=trade.currentbal/temp_stock_info.lot_size;
tempPositions[trade.sec_code][1]=trade.locked_buy/temp_stock_info.lot_size;

end;
end;

Прошу подсказать, что использовать, чтобы получить подобный массив данных по позициям для CETS
Ошибка создания заявки. [GW][4103] "Неполное сведение FOK заявки."., Где смотреть подробности?
 
Где искать подробности, чего не хватает в таблице транзакции по ошибке: Ошибка создания заявки. [GW][4103] "Неполное сведение FOK заявки.".
Функция getDepoEx возвращает nil на имеющийся в портфеле инструмент, В каких случая такой возможно?
 
Моя функция для получения количества бумаг+ордеров по инструменту:

-- Получает текущую чистую позицию по инструменту
function GetTotalPos(stock_id,firm_id,client_code_id,account_id,pos_type)
local temp_stock1=getDepoEx(firm_id, client_code_id,stock_id, account_id, 2)
local temp_stock_info=getSecurityInfo(GetClassBySec(stock_id),stock_id)

if temp_stock1==nil then
message (temp_stock_info.name..' nilll ');
sleep(1000);
return nil;
else

local pos=temp_stock1.currentbal+temp_stock1.locked_buy;

if pos_type==0 then pos=temp_stock1.currentbal; end;
if pos_type==1 then pos=temp_stock1.currentbal+temp_stock1.locked_buy; end;
if pos_type==2 then pos=temp_stock1.locked_buy; end;
if pos_type==-1 then pos=temp_stock1.currentbal+temp_stock1.locked_sell; end;
if pos_type==-2 then pos=temp_stock1.locked_sell; end;

return pos/temp_stock_info.lot_size
end

end

Периодически при пробегании по всему портфелю бумаг возвращает nil на существующие в портфеле бумаги. Иногда. Раз в 3-5 минут. Почему такое может происходить? параметры переданы верно. Бумага в портфеле есть, но иногда getDepoEx её не видит. Какие есть скрытые особенности у getDepoEx, из за чего бы она могла выдавать nil на реально существующую бумагу в портфеле?
Страницы: 1
Наверх