Иван Сергеевич (Все сообщения пользователя)

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

Страницы: 1
Как получить значение Лимита открытых позиций по фьючерсам или как получить элемент из таблицы?
 
Цитата
Nikolay написал:
getFuturesLimit(p_firmid, p_account, 0, "SUR") возвращает таблицу. В ней есть поле cbplimit типа number.
Спасибо, уважаемый, пятница трудного дня...
Вопрос решен, по вашему совету строка дает нужный результат, спасибо еще раз!
Код
hh = getFuturesLimit(p_firmid, p_account, 0, "SUR").cbplimit
Как получить значение Лимита открытых позиций по фьючерсам или как получить элемент из таблицы?
 
Цитата
Nikolay написал:
первым идет код фирмы, а не код класса. Это же лимиты всей срочной секции, а не одного класса.А фирма firmid   = SPBFUT000000
Код
local p_firmid       = "SPBFUT000000"
local p_account      = "SPBFUT000up"
if getFuturesLimit(p_firmid, p_account, 0, "SUR") == true then
   message(debug.getinfo(1).currentline.." ++++ " )
else
   message(debug.getinfo(1).currentline.." ---- " )
end
исправил, результат тот же, таблица пуста, сообщение "---"
Как получить значение Лимита открытых позиций по фьючерсам или как получить элемент из таблицы?
 
Цитата
Nikolay написал:
Нет. значение же не true, зачем с ним сравнивать. Зада же посмотреть, что в таблице. 4 - цикла, значит там 4 - записи
Спасибо за совет, вот такой результат:
i: 1 : currcode =   SUR; limit_type = 0; cbplplanned = 217209.68; trdaccid = SPBFUT000up; firmid   = SPBFUT000000; cbp_prev_limit = 286111.0; varmargin = -8384.0;   cbplused_for_positions = 64403.72; cbplimit = 281613.4; accruedint = 0.0;   real_varmargin = 0.0; kgo = 1.0; options_premium = 0.0; ts_comission = 0.0;   liquidity_coef = 0.0; cbplused = 64403.72; cbplused_for_orders = 0.0
i: 2 : currcode = ; limit_type = 3;   cbplplanned = -113410.0; trdaccid = SPBFUT000up; firmid = SPBFUT000000;   cbp_prev_limit = 9.6; varmargin = -4488.0; cbplused_for_positions =   -44508.68; cbplimit = 0.0; accruedint = 0.0; real_varmargin = 0.0; kgo = 0.0;   options_premium = 9.6; ts_comission = 9.6; liquidity_coef = 0.0; cbplused =   0.0; cbplused_for_orders = 0.0
i: 3 : currcode = SUR; limit_type = 6;   cbplplanned = 0.0; trdaccid = SPBFUT000up; firmid = SPBFUT000000;   cbp_prev_limit = -49006.28; varmargin = 0.0; cbplused_for_positions = 0.0;   cbplimit = -49006.28; accruedint = 0.0; real_varmargin = 0.0; kgo = 0.0; options_premium   = 0.0; ts_comission = 0.0; liquidity_coef = 0.0; cbplused = 0.0;   cbplused_for_orders = 0.0
i: 4 : currcode = RUB; limit_type = 7;   cbplplanned = 0.0; trdaccid = SPBFUT000up; firmid = SPBFUT000000;   cbp_prev_limit = -49006.28; varmargin = 0.0; cbplused_for_positions = 0.0;   cbplimit = -49006.28; accruedint = 1.0; real_varmargin = 0.0; kgo = 0.0; options_premium   = 0.0; ts_comission = 0.0; liquidity_coef = 0.0; cbplused = 0.0;   cbplused_for_orders = 0.0
Как понимаю, если я у явно указывал "SUR", значит должен был получить значение cbplimit = 281613.4 (зачем/почему в таблице есть и другие варианты limit_type не понимаю)
При этом для "SUR" 2 варианта: c limit_type = 0 «Денежные средства» и 6 «Суммарные залоговые средства в иностранной валюте (в рублях)» (взято из актуального QLUA.chm)
Почему некорректно получаются данные из табл. не понимаю.
Что можете посоветовать, уважаемые?
Как получить значение Лимита открытых позиций по фьючерсам или как получить элемент из таблицы?
 
Цитата
Nikolay написал:
futures_client_limits
я самоучка с неглубокими знаниями :) вот так правильно? Результат тот же - второе сообщ. с "-" говорит о том, что таблица пуста, кстати пройдена за 4 цикла/итераций
Код
for i = 0,getNumberOf("futures_client_limits") - 1 do
   if getItem("futures_client_limits",i).cbplimit == true then
      message(debug.getinfo(1).currentline.." + " )
   else
      message(debug.getinfo(1).currentline.." - " )
   end
end
Как получить значение Лимита открытых позиций по фьючерсам или как получить элемент из таблицы?
 
Цитата
Daniil Pozdnyakov написал:
Здравствуйте.

На QUIK Junior функция getFuturesLimit работает корректно (См. скриншот)

На основе этого предлагаем проверить корректность вводимых Вами параметров в функции getFuturesLimit()
Здравствуйте, в чем у меня с Вашим примером разница? У меня таблица пустая почему-то. См. скриншот и код:
Код
local p_classcode   = "SPBFUT"
local p_account      = "SPBFUT000up"
if getFuturesLimit(p_classcode, p_account, 0, "SUR") == true then
   message(debug.getinfo(1).currentline.." ++++ " )
else
   message(debug.getinfo(1).currentline.." ---- " )
end
Как получить значение Лимита открытых позиций по фьючерсам или как получить элемент из таблицы?
 
Цитата
Иван Сергеевич написал:
Приветствую всех, спустя много лет, тот же вопрос поддержке, ошибка  attempt to index a nil value (local 'FutLimit  ')  при попытке взять данные из таблицы «Ограничения по клиентским счетам»
Демо версия Quik 9.3.3.3 отсюда  https://arqatech.com/ru/support/demo/ , код ниже
Код
  FutLimit =  getFuturesLimit ( "SPBFUT" ,  "SPBFUT*****" ,  0 ,  "SUR" ).cbplimit
  
поправка, эта ошибка при попытке торгов на учебном сервере, на реальном же счете у брокера все норм
Как получить значение Лимита открытых позиций по фьючерсам или как получить элемент из таблицы?
 
Приветствую всех, спустя много лет, тот же вопрос поддержке, ошибка attempt to index a nil value (local 'FutLimit') при попытке взять данные из таблицы «Ограничения по клиентским счетам»
Демо версия Quik 9.3.3.3 отсюда https://arqatech.com/ru/support/demo/, код ниже
Код
FutLimit=getFuturesLimit("SPBFUT", "SPBFUT*****", 0, "SUR").cbplimit
Получение данных линии MACD и сигнальной линии с одного графика индикатора MACD
 
Спасибо! Разобрался, что все линии на графике имеют свои номера
Получение данных линии MACD и сигнальной линии с одного графика индикатора MACD
 
Добрый день, можно ли каким либо образом получить данные двух линий с одного графика MACD (основной и сигнальной) при помощи getCandlesByIndex и идентификатора графика?
Или придется открывать 2 графика, с первого брать данные основной линии, а с другой экспоненциальной скользящей средней (EМАa) и уже в коде вычислять по формуле:
Signal = EМАa(ЕМАs(P) − EMAl(P)), т.к. MACD = ЕМАs(P) − EMAl(P)
Страницы: 1
Наверх