В 22:04 - время загрузки индикатора - совпадение только действительно на последней свечке, а потом их - совпадений - больше и больше пока не станут практически все.
Вот именно! И как тогда "можно узнать сравнив номер текущей с результатом функции Size()", если они для всех свечек после добавления индикатора совпадают? Какой индекс последний?
Николай Камынин написал: Может не имеет смысла вычислять 2+2 на матлабе?
В принципе согласен, всякие там нейросети как-то не дали особого преимущества, а посчитать МА можно и в экселе. Но МЛ надежен, удобен, универсален. Так что там у меня всё и системы и базы и типа бухгалтерии с выводом в эксель. Оргцентр в общем. API C для LUA полно, но в основном наоборот из С в LUA. Пока не нашел, что мне бы нужно или не понял. Си не знаю. Кстати, Луа только Си с плюсами принимает, а то бы на шарпе я бы мог.
С Амиброкером не вышло, а вот с Матлабом похоже выходит:
Код
--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(r))
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
Смешно - и там эксель не закрывается. Ну и зачем мне эти тысячи функций клуа, если они не работают нормально. Танцы с бубнами давно как надоели. Что купайл, что клуа можно использовать только для отслеживания позиции. Так купайла вполне достаточно.
Индикаторы на клуа считаются по многу раз - даже когда их удаляешь! По всей истории, когда на графике всего 500 свечек. Тоже не просто исправить или "кому это надо". Статфункций нет. Предлагается изобретать велосипед. Даже хэлпа вменяемого нет. Сравнить с тем же Амиброкером - там видно, что человек старается. Все описано с примерами, а что описано - работает. Язык для трейдера старается сделать проще и удобнее а не предлагает изучать тонкости объектно-ориентированного программирования.
Хотел вот на досуге ознакомиться с клуа, после того, как купайлу чуть не сделали аборт... Да уж Конечно, если купайл все-таки прибьют, придется скрипты для отслеживания позиций переписать на клуа. Но не более. И это через 16 лет как вышла Омега Трейд Стейшн 2000.
Не вопрос. Просто функция main выполняется в отдельном потоке, т.е. она не мешает работе основного функционала терминала QUIK. Если скрипт маленький можно и без мэйн.
[/QUOTE]Я для работы с амиброкером делал свои плагины на СИ и для ами и для квика. У амиброкера есть хороший api и хорошее описание.[/QUOTE] На СИ понятно, хотелось бы напрямую...
Посмотрел - кода создаешь новую ТОС с фильтром, то этот фильтр автоматически устанавливается в: заказ данных - поток ОС. Если его обратно снять там, то все ТОСы начинают грузиться по своим фильтрам.
У меня версия 7215 бкс. Если открыта ТОС например с выводом всех фьючерсов без фильтра, а потом создать вторую ТОС с каким-то одним фьчерсом, то и в первой все остальные кроме этого перестают выводиться (???). Впрочем и раньше замечал - по непонятным причинам переставали выводиться какие-то фьючерсы и приходилось перезагружать ТОС.
Vitaly Skorobogatov написал: Ввиду того, что мы получили более чем достаточное вполне количество объективных обоснований того, что QPILE пока нужен и в ряде случаев QLUA его не заменяет - принятие решения о прекращении поддержки откладывается на неопределенный срок. За сравнительную информацию о недостатках LUA в QUIK спасибо, мы ее учтем и используем при дальнейшем планировании развития QLUA.
Sergey Gorokhov написал: Просто Вам повезло не столкнуться с проблемами вот и все. В данный момент мы уже отказались от дальнейшего развития QPILE Дальше стоит вопрос об отказе поддержки. То что раньше приходилось "делать раз в 10 лет" делаться более не будет.
Сталкивался и не раз - нововведения любимая игра бюрократов и биржа не исключение. Но я уже писал вам, что переделка логики робота это проблема на стороне пользователя. А какие уж такие проблемы и трудозатраты на вашей стороне вы так и не показали. Из-за копеечного вопроса вы показываете полное пренебрежение интересами клиентов. Лицемерно пишите, что интересуетесь мнением клиентов, а потом проговариваетесь, что вопрос решен.
Вот это пренебрежение и лицемерие даже в большей степени основание подумать с вами расстаться, чтобы через пару лет не пришлось срочно переходить с клуа на какой-нибудь супер новомодный Си с тремя плюсами с миллионами функций, которых не было в старом клуа, и на что вы самоотверженно бросите все свои силы.
В общем, давайте, стреляйте себе в ногу из-за копеечного вопроса.
Sergey Gorokhov написал: То что с документацией есть сложности к сожалению правда, мы стараемся исправить этот недочет. В лубом случае если возникнет недопонимание, служба поддержки всегда готова помочь.
Уж как минимум прежде чем заставлять переходить с купайла на клуа надо бы разобраться и устранить "недочеты" (уж точно он не один), а не обещать стараться. Откровенное пренебрежение к клиентам и как вы стараетесь давно всем ясно.
Sergey Gorokhov написал: Да пришлось кардинально менять логику роботов QPILE, так как кардинально изменились сами принципы торговли. Если Вам повезло не застать этот период или не столкнуться с переходом, это не значит что другим повезло также.
А причем здесь логика роботов? Эта проблема была на стороне пользователей. А на вашей - добавить стандартную табличку. Всего делов, а не логику менять. Неподъёмная работа раз в 10 лет. И из-за этого столько проблем для пользователя. Да еще под соусом - купайл говно,морально устарел. Лицемерие сплошное.
Sergey Gorokhov написал: те где есть упоминание про вид лимита: GET_CLIENT_MARGINAL_PORTFOLIO_INFO_EX GET_CLIENT_MARGINAL_BUY_SELL_INFO_EX + дать доступ к полю LIMIT_KIND из таблиц MONEY_LIMITS и DEPO_LIMITS
И что? Пришлось менять логику самого купайла? Добавлять "сотни тысяч" функций, которых нет в купайле, но есть в клуа? И это раз в 10 лет. Сколько трудов ушло на добавление новой обычной таблички... О ужас! А заставить сотни клиентов переучиваться и перелопачивать полностью свои наработки, да еще не известно с каким результатом - это фигня, конечно, по сравнению с этим.
Sergey Gorokhov написал: Это потому что была поддержка, а теперь мы планируем ее убрать. То есть не факт что оно дальше будет работать
Можете привести конкретный пример за последние 10 лет когда без поддержки купайл перестал бы работать?
Тема не только вызвала резонанс, но и показала четкое разделение мнений: те кто работает на рынке - руки прочь от купайла, те кто программирует - купайл говно и в скобочках "могу переписать любую прогу с QPILE на LUA, но не бесплатно". Ну всё понятно...
Sergey Gorokhov написал: рано или поздно возникнет ситуация, при которой Ваши алгоритмы будут просто не подготовлены к текущей ситуации на рынке так как биржа постоянно обновляется.
А ручонки-то чешутся... У меня купайл с 2005 года работает. И ничего, все обновления пережил. Отключение переживет вряд ли. Единственная просьба: о решении сообщить заранее, за месяц хотя бы. И не через форум, а сообщением в квике. Заранее благодарен.
Таблица Позиции по счетам Вар. маржа обнулена. В таблице параметров все нормально, а при обращении из купайла Пред. оценка, шаг цены и его стоимость обнулены.