Блог им. bosov

Матлаб из Клуа

    • 17 января 2017, 16:06
    • |
    • bosov
  • Еще
Для любителей матлаба, похоже с ним можно связаться из клуа

--require "w32" -- говорят что нужна, на практике не увидел
require "luacom"
local isrun = true

function OnStop(flag)
    isrun = false
end
function main()
--w32.CoInitialize(nil)

ML = luacom.CreateObject("matlab.application.single")
assert(ML)
ML.Visible = 1 -- не обязательно там все равно ничего в принципе не видно, но проще убить процесс если что

t = tos(0)
message("tos = " .. tostring(#t)) -- меньше 150 тк фильтр по "SPBFUT"

ML:PutWorkspaceData("C1", "base", t); -- отправляем в МЛ под именем С1
message("Put")
wd = ML:GetWorkspaceData('C1', 'base') -- а вот так получаем обратно
message("C1(1,1) = " .. tostring(wd[1][1]))
ML:Execute("r = TST;") -- в МЛ у меня эта функция пишет данные в файл и возвращает "1", если все гладко
r = ML:GetWorkspaceData('r', 'base') -- на прямую результат возвращает криво, так наверно удобнее
message("Execute TST = " .. tostring®)

ML:Quit()
ML = nil
--w32.CoUninitialize(nil)
message("end COM ML")
end

function tos(n) -- читает ТОС  в матрицу начиная с "n"
   local outcell = {}
   local cnt = 0
   nn = getNumberOf("all_trades")
   for i = n, 150 do -- для примера хватит 150 строчек, но максимум 1500 * 5
                                 -- приходится ограничить - у LuaVM случается грыжа при передаче в МЛ более чем 2000*5
      trade = getItem("all_trades", i)
      cc = trade["class_code"]
      if cc == "SPBFUT" then
         cnt = cnt + 1
         dt = trade["datetime"]
         dt = dt.hour*10000 + dt.min*100 + dt.sec
         outcell[cnt] = {trade.trade_num, trade.sec_code, trade.qty, trade.price, dt}
      end
   end
   return outcell
end
Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
537 | ★5
4 комментария
а с R можно так?
avatar
Vladimir, так вся соль, что клуа в квике…
avatar
bosov, ну я и спрашиваю из клуа не с матлабом, а с R связаться?
avatar
Vladimir, понял — не в курсе. Я МЛ дружу.
avatar

Читайте на SMART-LAB:
Фото
«Финам» запустил уникальный MCP-сервер для подключения брокерских счетов к AI-ассистентам
«Финам» объявил о запуске MCP-сервера  для торговой платформы FinamTrade . Новый сервис позволяет клиентам получать оперативные данные по...
Фото
Куда инвестировать на падающем рынке: три стратегии
Когда рынок падает, первый вопрос, который встает перед инвестором: сидеть в кеше или покупать на просадке? С одной стороны, любой позитив...
Фото
Акционеры ПАО «АПРИ» приняли решения по вопросам годового Общего собрания
Акционеры ПАО «АПРИ» приняли решения по вопросам годового Общего собрания Сегодня состоялось годовое заседание Общего собрания...

теги блога bosov

....все тэги



UPDONW
Новый дизайн