Как програмно переключаться между созданными таблицами?, нужно программно активировать конкретную таблицу из созданных ранее, чтобы обрабатывались клавиши применительно к этой таблице.
Пользователь
Сообщений: Регистрация: 26.10.2022
07.04.2025 22:32:54
Добрый день. Имею в роботе 2 своих таблицы - основную (из которой ведётся торговля путём нажатия клавиш из заданной ф-ии через SetTableNotificationCallback) и вспомогательную (в которой выводятся некоторые данные по торговому инструменту). Вспомогательная появляется, когда в основной таблице мышкой выделяется какой-либо торговый инструмент, появляется рядом с выбранным мышкой инструментом с помощью ф-ии SetWindowPos. При этом активируется вспомогательная таблица и основная перестаёт реагировать на нажатие клавиш клавиатуры. Как программно активировать обратно основную таблицу (но не при помощи SetWindowPos - таблица большая и некомфорто моргает, когда используешь эту функцию)? Или сделать так, чтобы не активировалась вспомогательная таблица? Сейчас это делаю кликом мышки по шапке основной таблицы, чтобы обраьно её активировать, но это неудобно делать каждый раз после смены инстумента.
Лимитные заявки с ограниченным сроком действия, Сделать возможность отправлять лимитные заявки с ограниченным сроком действия
Пользователь
Сообщений: Регистрация: 26.10.2022
25.07.2024 09:30:38
Актуально для роботов, которые выставляют много лимиток. Часто возникает проблема: либо при разрыве связи, либо при вылете квика - лимитки остаются висеть и потом исполняются, когда торговые условия уже изминились (если бы квик не вылетел или связь не пропала, бот бы эти лимитки ранее изменил или модифицировал, а так они исполняются уже на невыгодных условиях). Прошу сделать возможность выставлять лимитки, ограниченные по сроку действия в секундах или до определённого времени. Т.о. если квик вылетит или пропадёт надолго связь, рынок не успеет далеко уехать от тех условий, по которым эти лимитки выставлялись - лимитки через заданное время (например через 10 минут после выставляния) сами отменятся.
Тип фьючерса - Расчётный/Поставочный как узнать через скрипт?, Не могу найти в описании ни в getSecurityInfo ни в getParamEx такую возможность.
Пользователь
Сообщений: Регистрация: 26.10.2022
22.07.2024 09:55:13
Тип фьючерса - Расчётный/Поставочный как узнать через скрипт?
Не могу найти в описании ни в getSecurityInfo ни в getParamEx такую возможность.
Ошибка: Значение "" превышает допустимый размер, постоянно пишется ошибка: Значение "" превышает допустимый размер
Пользователь
Сообщений: Регистрация: 26.10.2022
18.06.2024 11:01:11
По всем инструментам всё хорошо, как взял инструмент VKH5, при обращении скриптом к его заявке постоянно пишется ошибка: Значение "" превышает допустимый размер Как исправить? Скрин во вложении:
Как через скрипт узнать цвет ячейки таблицы?, Как через скрипт узнать цвет ячейки таблицы?
Пользователь
Сообщений: Регистрация: 26.10.2022
11.06.2024 16:20:35
Есть функция BOOLEAN SetColor(NUMBER t_id, NUMBER row, NUMBER col, NUMBER b_color, NUMBER f_color, NUMBER sel_b_color, NUMBER sel_f_color), которой раскрашиваются ячейки таблицы.
Как в дальнейшем программно получить цвета в заданной ячейки таблицы, например фона и текста? Есть ли что-то типа функции GetColor?
Удаления из системы неактивных заявок?, Можно ли в квике где-то включить опцию, чтобы сами удалялись из квика (из памяти приложения, из списка заявок) неактивные заявки?
Пользователь
Сообщений: Регистрация: 26.10.2022
01.06.2024 16:25:52
Добрый день. Можно ли в квике где-то включить опцию, чтобы сами удалялись из квика (из памяти приложения, из списка заявок) неактивные заявки?
Проблема следующая - написал бота, который часто выставляет/снимает заявки по многим инструментам. К концу дня накапливается несколько десятков тысяч снятых заявок. Что приводит к проблеме со скоростью работы бота. Для обхода заявок использую цикл типа: 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?
Пользователь
Сообщений: Регистрация: 26.10.2022
12.03.2024 12:37:28
Для получиния позиций по бумагам, акциям например, использую 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 заявки."., Где смотреть подробности?
Пользователь
Сообщений: Регистрация: 26.10.2022
26.02.2024 13:22:19
Где искать подробности, чего не хватает в таблице транзакции по ошибке: Ошибка создания заявки. [GW][4103] "Неполное сведение FOK заявки.".
Функция getDepoEx возвращает nil на имеющийся в портфеле инструмент, В каких случая такой возможно?
Пользователь
Сообщений: Регистрация: 26.10.2022
26.10.2022 09:35:59
Моя функция для получения количества бумаг+ордеров по инструменту:
-- Получает текущую чистую позицию по инструменту 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 на реально существующую бумагу в портфеле?