Alexey89 (Автор тем)

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

Страницы: 1
Данные по бумагам в портфеле скриптом lua, Данные по бумагам в портфеле скриптом lua
 
Пытаюсь получить данные по бумагам в портфеле скриптом. Выдает то ошибки, то nill
неделю ковыряюсь, не понимаю в чем ошибка((
в портфеле одна акция Роснефти, нужно что бы при запуске скрипта вывел месседж что в портфеле 1 акция Роснефти.

 sec_code = "SIBN"
 Firm_ID = "MC00025000XX"
 Kod_klienta = "4XXXN"
ACCOUNT = "L01-00000F00"
limit_kind = "1"
 res = getDepo(Kod_klienta, Firm_ID, sec_code, ACCOUNT)
local lots = ("depo_current_balance")
message("Текущий остаток=" ..lots)


или


sec_code = "SIBN"
Firm_ID = "MC00025000XX"
Kod_klienta = "4XXXN"
ACCOUNT = "L01-00000F00"

function LB()
n = getNumberOf("depo_limits")
value = 0
res = nil
for y = 0, n-1 do
trade = getItem("depo_limits", y)
if (trade["client_code"] == Kod_klienta) and
(trade["firmid"] == Firm_ID) and
(trade["sec_code"] == sec_code) and
(trade["trdaccid"] == ACCOUNT) and
(trade["limit_kind"] == 2) then
res = trade["currentbal"]
break
end
end
return res
end

message(tostring(LB()), 0)


Выдают nill
Создать таблицу. Получить данные из таблицы другим скриптом., Создать таблицу. Получить данные из таблицы другим скриптом.
 
скрипт таблицы

function main()
   win001 = AllocTable()
   AddColumn(win001, 0, "Показатель", true, QTABLE_STRING_TYPE, 15)
   AddColumn(win001, 1, "Значение", true, QTABLE_DOUBLE_TYPE, 15)
   AddColumn(win001, 2, "Значение", true, QTABLE_DOUBLE_TYPE, 5)
   AddColumn(win001, 3, "Значение", true, QTABLE_DOUBLE_TYPE, 10)
     
CreateWindow(win001)
   SetWindowCaption(win001, "Table1")

  for fff=1,7 do
InsertRow(win001,fff)
end
SetCell(win001,1,0,"Остаток средств:");
SetCell(win001,2,0,"+--","-------------+");
SetCell(win001,3,0,"Кол-во заявок на продажу");
SetCell(win001,4,0,"Сумма заявок на продажу");

SetCell(win001, 1, 2, "34", 0)  
SetCell(win001, 3, 2, "55", 0)      


end


скрипты типа

if Table1 then
   -- Таблица существует
   -- Далее можно получить доступ к элементам таблицы
   local value = getNumberOf(win001, 3, 2)
   message(value)
else
   -- Таблица не существует
   message("Таблица не найдена")
end  


таблицы не видят. почему не понимаю.  По названию и идентификатору обращаюсь. Таблица существует, я ее вижу.  
Получить sec_code из метки индикатора, Получить sec_code из метки индикатора
 
Есть индикатор  

Settings = {
   Name = "goodmode1"
}

function Init()
   return 1
end

function OnCalculate(Index)
   if Index == 1 then
       local info = getDataSourceInfo()
       --message(info.sec_code)
       
       -- Создаем метку с информацией sec_code
       local labelSize = 100 -- размер метки
       local labelX = 10 -- координата X метки (посередине графика)
       local labelY = 10 -- координата Y метки (посередине графика)
       local secCodeLabel = tostring(info.sec_code)
       AddLabel(labelX, labelY, secCodeLabel, RGB(255, 255, 0), labelSize)
       
       -- Выводим значение метки в сообщении
       message("Значение метки: " .. secCodeLabel)
   end
   
   return 0
end


График заякорен к ТТТ и при выборе инструмента в ТТТ выдает его название, вроде это название так же записывается в метку на графике ( метку кстати ни разу не получилось увидеть, надеюсь она есть)

Делаю скрипт что-бы при запуске скрипта, значение метки выводилось сообщением.

function OnInit()
   local labelValue = GetLabelParams("goodmode1", "Метка")
   message("Значение метки: " .. tostring(labelValue))
end

Такой скрипт отображает nill.  Код вроде правильный, что не так?  Как проверить есть ли метка?  
Получить sec_code при выборе бумаги в ТТТ., Получить sec_code при выборе бумаги в ТТТ.
 
 Идентификатор индикатора WW. Квик перезагружал многократно. Запускаю скрипт - даже ошибок не выдает. Ничего. Никакой реакции.  

function OnCalculate(Index)
  if Index == 1 then
     local info = getDataSourceInfo("WW");
     message(info.sec_code)
  end
  return 0
end


Код  message('x= ' getNumCandles('WW'))  отрабатывает замечательно, число свечей показывает мгновенно.  Тоесть привязка по идентификатору WW работает.  Что там может быть? Почему не работает код?  
Как получить sec_code по идентификатору графика?, Как получить sec_code по идентификатору графика?
 
Присвоил графику идентификатор WWWbond.
Код работает. Выдает число свечек.

x = getNumCandles('WWWbond')

message('x= ' ..x)

Пытаюсь разными способами получить по этому идентификатору WWWbond sec_code. Никак не получается, такая возможность вообще есть?

Код не работает.

graphic_id = 'WWWbond'
sec_code = getSecurityInfo(graphic_id)
message("График " .. sec_code)
Скрипт который выставляет заявку исходя из объема портфеля и предыдущей исполненной заявки, Возникают непонятные проблемы с запросом информации о портфеле и заявке. Постоянно возвращается nil, что бы не спросил.
 
 Возникают непонятные проблемы с запросом информации о портфеле и заявке. Постоянно возвращается nil, что бы не спросил.  


function main()
   portfolio = getPortfolioInfo("all")
   message(tostring(portfolio))
end

ИЛИ

function main()
   portfolio = getParamEx("all")
   message(tostring(portfolio))
end



Думаю где-то что-то я сильно не понимаю. Мнение такое что getPortfolioInfo и  getParamEx не имеет доступа к портфелю или таблице заявок. Параметры бумаг конкретных могу получать. Например цену последней сделки Лукойла выдает легко. Использую Сберквик. Куда копать?  
Страницы: 1
Наверх