Получаю данные из терминала следующим образ: local tblAsk = getParamEx(CLASS_CODE, SEC_CODE, "OFFER") local tblBid = getParamEx(CLASS_CODE, SEC_CODE, "BID") local tblStatus = getParamEx(CLASS_CODE, SEC_CODE, "STATUS") local tblMinLot = getParamEx(CLASS_CODE, SEC_CODE, "LOTSIZE") local tblBalance = getMoneyEx(FIRM_ID, CLIENT_CODE, TAG, CURR_CODE,LIMIT_KIND) local tblTotalLot = getDepoEx(FIRM_ID, CLIENT_CODE, SEC_CODE, ACCOUNT ,LIMIT_KIND) local tblMinStepPrice = getParamEx(CLASS_CODE, SEC_CODE, "SEC_PRICE_STEP")
if tblAsk==nil then Ask=0 else Ask=tonumber(tblAsk.param_value) end if tblBid==nil then Bid=0 else Bid=tonumber(tblBid.param_value) end if tblStatus==nil then Status=0 else Status=tonumber(tblStatus.param_value) end if tblMinLot==nil then MinLot=0 else MinLot=tonumber(tblMinLot.param_value) end if tblBalance==nil then Balance=0 else Balance=tonumber(tblBalance.currentbal) end if tblTotalLot==nil then TotalLots=0 else TotalLots=tonumber(tblTotalLot.currentbal) end if tblMinStepPrice==nil then MinStepPrice=0 else MinStepPrice=tonumber(tblMinStepPrice.param_value) end
Если я не правильно получаю эти данные поправьте меня, чтоб было правильно. Потому как время от времени в переменные транслируются сосвсем левые данные, из-за чего робот начинает тупо набирать или продавать. Тема уже была такая( https://forum.quik.ru/messages/forum10/message45769/topic5506/#message45769) и видимо ниче не поменялось.
День добрый! Можно ли через "Вывод через DDE сервер" осуществить вывод двух разных таблиц( "Текущие торги " и " Состояние счета " ) на 1 лист в Excel в режиме онлайн? Спасибо.
Добрый день! Можно ли сверить инструменты в таблицах "Текущие торги" и в таблице "Состояние счета", на наличие инструментов? То есть если в таблице "Состояние счета" нет инструмента ,который есть в таблице "Текущие торги" выдать сообщение с кодом инструмента. Через getNumberOf("Текущие торги #2") пытаюсь получить доступ к количеству элементов в таблице чтобы организовать цикл перебора, выдает -1. Цель: получить доступ к элементам таблицы "Текущие торги" и организовать цикл по всем элементам. На каждом инструменте таблицы "Текущие торги" делаю цикл сверки по таблице "Состояние счета", если элемент не найдет, выдать сообщение с кодом инструмента и остановить циклы.
Добрый день! Вопрос, можно ли сделать перебор циклом строк таблицы Текущие торги и получение из них необходимых значений, например, код инстр., предлож., спрос , шаг цены и тд? Заранее спасибо.
После обновления терминала квик до версии 8.5.2.11 начались непонятки с получением значений позиция. Данные пытаюсь получить таким образом: local tblTotalLot = getDepoEx(FIRM_ID, CLIENT_CODE, SEC_CODE, ACCOUNT ,LIMIT_KIND) if tblTotalLot==nil then TotalLots=0 else TotalLots=tonumber(tblTotalLot.currentbal) end выводится через message :13:29:07 SELL tblTotalLot table: 0000000012D6DF70 TotalLots 7000.0 при закрытии ордера выводится через message :13:29:10 BUY tblTotalLot table: 0000000012D6E3B0 TotalLots 170.0 при закрытии ордера
То есть в переменную получяю большее значение по позиции, бот зыкравет, на следующем проходе получает нормально значени по позиции опять открывает. Скрипт до этого работал без нареканий. Звонил в техподдержку брокера, сказали у них никакх проблем.
День добрый! Подскажите знающие люди, правильно ли я пытаюсь получить параметры таблиц в переменные. Заранее спасибо. local tblAsk = getParamEx(CLASS_CODE, SEC_CODE, "OFFER") local tblBid = getParamEx(CLASS_CODE, SEC_CODE, "BID") local tblStatus = getParamEx(CLASS_CODE, SEC_CODE, "STATUS") local tblMinLot = getParamEx(CLASS_CODE, SEC_CODE, "LOTSIZE") local tblBalance = getMoneyEx(FIRM_ID, CLIENT_CODE, TAG, CURR_CODE,LIMIT_KIND) local tblTotalLot = getDepoEx(FIRM_ID, CLIENT_CODE, SEC_CODE, ACCOUNT ,LIMIT_KIND) local tblMinStepPrice = getParamEx(CLASS_CODE, SEC_CODE, "SEC_PRICE_STEP")
if tblAsk==nil then Ask=0 else Ask=tonumber(tblAsk.param_value) end if tblBid==nil then Bid=0 else Bid=tonumber(tblBid.param_value) end if tblStatus==nil then Status=0 else Status=tonumber(tblStatus.param_value) end if tblMinLot==nil then MinLot=0 else MinLot=tonumber(tblMinLot.param_value) end if tblBalance==nil then Balance=0 else Balance=tonumber(tblBalance.currentbal) end if tblTotalLot==nil then TotalLots=0 else TotalLots=tonumber(tblTotalLot.currentbal) end if tblMinStepPrice==nil then MinStepPrice=0 else MinStepPrice=tonumber(tblMinStepPrice.param_value) end