Допустим мне нужно узнать разницу закрытия последнего бара к предыдущему и сообщить мессидж. Как вы предлагаете это сделать?
Последний индекс
Пользователь
Сообщений: Регистрация: 01.06.2015
23.01.2017 23:13:28
Нужно чтобы условие Size() == index сработало только один раз, а не много раз.
Последний индекс
Пользователь
Сообщений: Регистрация: 01.06.2015
23.01.2017 23:04:36
В 22:04 - время загрузки индикатора - совпадение только действительно на последней свечке, а потом их - совпадений - больше и больше пока не станут практически все.
Последний индекс
Пользователь
Сообщений: Регистрация: 01.06.2015
23.01.2017 23:01:15
Вот именно! И как тогда "можно узнать сравнив номер текущей с результатом функции Size()", если они для всех свечек после добавления индикатора совпадают? Какой индекс последний?
Последний индекс
Пользователь
Сообщений: Регистрация: 01.06.2015
23.01.2017 22:16:10
Вот код
Код
function OnCalculate(index)
return Size(), index
end
поместите на минутный график и подождите минуту
Последний индекс
Пользователь
Сообщений: Регистрация: 01.06.2015
23.01.2017 22:00:52
Цитата
Sergey Gorokhov написал: Последнюю на данный момент свечку, можно узнать сравнив номер текущей с результатом функции Size()
Пробовал - только пока не появится новая последняя свечка
Последний индекс
Пользователь
Сообщений: Регистрация: 01.06.2015
23.01.2017 21:40:44
Как узнать что индекс в OnCalculate(index) является последним?
Матлаб из Клуа
Пользователь
Сообщений: Регистрация: 01.06.2015
23.01.2017 18:26:52
Цитата
swerg написал: Где почитать подробнее про этот пункт?
Спасибо но там для меня сложновато и не очень надежно. А вот ваша StaticVar.dl кажется весьма может пригодиться. Спасибо.
Матлаб из Клуа
Пользователь
Сообщений: Регистрация: 01.06.2015
19.01.2017 09:26:06
Цитата
Николай Камынин написал: Может не имеет смысла вычислять 2+2 на матлабе?
В принципе согласен, всякие там нейросети как-то не дали особого преимущества, а посчитать МА можно и в экселе. Но МЛ надежен, удобен, универсален. Так что там у меня всё и системы и базы и типа бухгалтерии с выводом в эксель. Оргцентр в общем. API C для LUA полно, но в основном наоборот из С в LUA. Пока не нашел, что мне бы нужно или не понял. Си не знаю. Кстати, Луа только Си с плюсами принимает, а то бы на шарпе я бы мог.
Где почитать подробнее про этот пункт? А матлаб не так уж и сильно грузит, не знаю пока как быстр обмен по Кому.
Матлаб из Клуа
Пользователь
Сообщений: Регистрация: 01.06.2015
17.01.2017 11:43:47
С Амиброкером не вышло, а вот с Матлабом похоже выходит:
Код
--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
Amibroker из Клуа
Пользователь
Сообщений: Регистрация: 01.06.2015
14.01.2017 19:19:32
Цитата
swerg написал: Посмотрите подробнее здесь, там показано как COM-вызовы использовать в main() QLua
Спасибо за ссылку, а то от поддержки которая всегда поможет и этого не дождешься. Но не помогает.
Amibroker из Клуа
Пользователь
Сообщений: Регистрация: 01.06.2015
14.01.2017 19:16:38
Смешно - и там эксель не закрывается. Ну и зачем мне эти тысячи функций клуа, если они не работают нормально. Танцы с бубнами давно как надоели. Что купайл, что клуа можно использовать только для отслеживания позиции. Так купайла вполне достаточно.
Индикаторы на клуа считаются по многу раз - даже когда их удаляешь! По всей истории, когда на графике всего 500 свечек. Тоже не просто исправить или "кому это надо". Статфункций нет. Предлагается изобретать велосипед. Даже хэлпа вменяемого нет. Сравнить с тем же Амиброкером - там видно, что человек старается. Все описано с примерами, а что описано - работает. Язык для трейдера старается сделать проще и удобнее а не предлагает изучать тонкости объектно-ориентированного программирования.
Хотел вот на досуге ознакомиться с клуа, после того, как купайлу чуть не сделали аборт... Да уж Конечно, если купайл все-таки прибьют, придется скрипты для отслеживания позиций переписать на клуа. Но не более. И это через 16 лет как вышла Омега Трейд Стейшн 2000.
Amibroker из Клуа
Пользователь
Сообщений: Регистрация: 01.06.2015
12.01.2017 20:02:58
Sergey Gorokhov, QUIK clients support (Отказ от поддержки встроенного языка QPILE):
Цитата
Если у Вас возникнут проблемы с освоением Lua поддержка всегда поможет.
Ау! Где вы любители великого и могучего клуа? И всегда на поддержке. Как пинать купайл так сразу, а как помочь...
Не вопрос. Просто функция main выполняется в отдельном потоке, т.е. она не мешает работе основного функционала терминала QUIK. Если скрипт маленький можно и без мэйн.
Amibroker из Клуа
Пользователь
Сообщений: Регистрация: 01.06.2015
11.01.2017 23:32:14
Ладно, у Ами свои причуды. Но вот тут то чего не хватает: require "luacom"
Код
function main()
sh = luacom.CreateObject("WScript.Shell")
RetCode = sh.Run("c:\Hellolua.vbs", 0, True)
message(tostring(RetCode))
sh = nil
end
COM exception:(..\src\library\tLuaCOM.cpp,386):Не удается найти указанный файл. Слэши пробовал во всех ориентациях...
Amibroker из Клуа
Пользователь
Сообщений: Регистрация: 01.06.2015
11.01.2017 15:05:04
[/QUOTE]Я для работы с амиброкером делал свои плагины на СИ и для ами и для квика. У амиброкера есть хороший api и хорошее описание.[/QUOTE] На СИ понятно, хотелось бы напрямую...
Amibroker из Клуа
Пользователь
Сообщений: Регистрация: 01.06.2015
11.01.2017 12:16:57
Пытался подключиться к Ами
Код
require "luacom"
ami = luacom.CreateObject("Broker.Application")
ami.Visible = true
aa = ami:LoadDatabase("D:\\PF\\AmiBroker\\DB\\trade")
Работает. Но дальше облом...
Код
qq = ami:Import(0, "c:\\valg\\rt.txt")
Ошибки не выдает, но и ничего не делает (в логах импорта Ами просто пусто).
Код
st = ami.Stocks:Add("RTSI")
Ошибка - attempt to index field 'Stocks' (a function value)
Может кто что подскажет?
получение параметров индикатора, обращение к line
Пользователь
Сообщений: Регистрация: 01.06.2015
01.01.2017 17:22:09
Самое забавное индикатор пересчитывается даже при удалении.
Таблица обезличенных сделок не наполняется, С началом нового дня не приходят свежие даннные
Пользователь
Сообщений: Регистрация: 01.06.2015
26.12.2016 12:37:50
Или если ТОС с фьючами без фильтров снова запустить: редактировать - да, то фильтр в заказе данных автоматом снимется и данные подкачаются.
Таблица обезличенных сделок не наполняется, С началом нового дня не приходят свежие даннные
Пользователь
Сообщений: Регистрация: 01.06.2015
26.12.2016 12:28:50
Посмотрел - кода создаешь новую ТОС с фильтром, то этот фильтр автоматически устанавливается в: заказ данных - поток ОС. Если его обратно снять там, то все ТОСы начинают грузиться по своим фильтрам.
Таблица обезличенных сделок не наполняется, С началом нового дня не приходят свежие даннные
Пользователь
Сообщений: Регистрация: 01.06.2015
26.12.2016 12:16:42
У меня версия 7215 бкс. Если открыта ТОС например с выводом всех фьючерсов без фильтра, а потом создать вторую ТОС с каким-то одним фьчерсом, то и в первой все остальные кроме этого перестают выводиться (???). Впрочем и раньше замечал - по непонятным причинам переставали выводиться какие-то фьючерсы и приходилось перезагружать ТОС.
[ Закрыто] Отказ от поддержки встроенного языка QPILE, Отказ от поддержки встроенного языка QPILE
Пользователь
Сообщений: Регистрация: 01.06.2015
20.05.2016 16:28:35
Цитата
Vitaly Skorobogatov написал: Ввиду того, что мы получили более чем достаточное вполне количество объективных обоснований того, что QPILE пока нужен и в ряде случаев QLUA его не заменяет - принятие решения о прекращении поддержки откладывается на неопределенный срок. За сравнительную информацию о недостатках LUA в QUIK спасибо, мы ее учтем и используем при дальнейшем планировании развития QLUA.
И вам спасибо!
[ Закрыто] Отказ от поддержки встроенного языка QPILE, Отказ от поддержки встроенного языка QPILE
Пользователь
Сообщений: Регистрация: 01.06.2015
20.05.2016 11:30:55
Цитата
Sergey Gorokhov написал: Просто Вам повезло не столкнуться с проблемами вот и все. В данный момент мы уже отказались от дальнейшего развития QPILE Дальше стоит вопрос об отказе поддержки. То что раньше приходилось "делать раз в 10 лет" делаться более не будет.
Сталкивался и не раз - нововведения любимая игра бюрократов и биржа не исключение. Но я уже писал вам, что переделка логики робота это проблема на стороне пользователя. А какие уж такие проблемы и трудозатраты на вашей стороне вы так и не показали. Из-за копеечного вопроса вы показываете полное пренебрежение интересами клиентов. Лицемерно пишите, что интересуетесь мнением клиентов, а потом проговариваетесь, что вопрос решен.
Вот это пренебрежение и лицемерие даже в большей степени основание подумать с вами расстаться, чтобы через пару лет не пришлось срочно переходить с клуа на какой-нибудь супер новомодный Си с тремя плюсами с миллионами функций, которых не было в старом клуа, и на что вы самоотверженно бросите все свои силы.
В общем, давайте, стреляйте себе в ногу из-за копеечного вопроса.
[ Закрыто] Отказ от поддержки встроенного языка QPILE, Отказ от поддержки встроенного языка QPILE
Пользователь
Сообщений: Регистрация: 01.06.2015
20.05.2016 11:14:49
Цитата
Sergey Gorokhov написал: То что с документацией есть сложности к сожалению правда, мы стараемся исправить этот недочет. В лубом случае если возникнет недопонимание, служба поддержки всегда готова помочь.
Уж как минимум прежде чем заставлять переходить с купайла на клуа надо бы разобраться и устранить "недочеты" (уж точно он не один), а не обещать стараться. Откровенное пренебрежение к клиентам и как вы стараетесь давно всем ясно.
[ Закрыто] Отказ от поддержки встроенного языка QPILE, Отказ от поддержки встроенного языка QPILE
Пользователь
Сообщений: Регистрация: 01.06.2015
19.05.2016 15:25:10
Цитата
Sergey Gorokhov написал: Да пришлось кардинально менять логику роботов QPILE, так как кардинально изменились сами принципы торговли. Если Вам повезло не застать этот период или не столкнуться с переходом, это не значит что другим повезло также.
А причем здесь логика роботов? Эта проблема была на стороне пользователей. А на вашей - добавить стандартную табличку. Всего делов, а не логику менять. Неподъёмная работа раз в 10 лет. И из-за этого столько проблем для пользователя. Да еще под соусом - купайл говно,морально устарел. Лицемерие сплошное.
[ Закрыто] Отказ от поддержки встроенного языка QPILE, Отказ от поддержки встроенного языка QPILE
Пользователь
Сообщений: Регистрация: 01.06.2015
19.05.2016 14:48:10
Цитата
Sergey Gorokhov написал: те где есть упоминание про вид лимита: GET_CLIENT_MARGINAL_PORTFOLIO_INFO_EX GET_CLIENT_MARGINAL_BUY_SELL_INFO_EX + дать доступ к полю LIMIT_KIND из таблиц MONEY_LIMITS и DEPO_LIMITS
И что? Пришлось менять логику самого купайла? Добавлять "сотни тысяч" функций, которых нет в купайле, но есть в клуа? И это раз в 10 лет. Сколько трудов ушло на добавление новой обычной таблички... О ужас! А заставить сотни клиентов переучиваться и перелопачивать полностью свои наработки, да еще не известно с каким результатом - это фигня, конечно, по сравнению с этим.
[ Закрыто] Отказ от поддержки встроенного языка QPILE, Отказ от поддержки встроенного языка QPILE
Пользователь
Сообщений: Регистрация: 01.06.2015
19.05.2016 13:56:13
Цитата
Sergey Gorokhov написал: Например когда появилась Т+ схема лимитирования.
А конкретнее, какие новые функции пришлось добавлять в купайл?
[ Закрыто] Отказ от поддержки встроенного языка QPILE, Отказ от поддержки встроенного языка QPILE
Пользователь
Сообщений: Регистрация: 01.06.2015
19.05.2016 13:03:04
Цитата
Sergey Gorokhov написал: Это потому что была поддержка, а теперь мы планируем ее убрать. То есть не факт что оно дальше будет работать
Можете привести конкретный пример за последние 10 лет когда без поддержки купайл перестал бы работать?
Тема не только вызвала резонанс, но и показала четкое разделение мнений: те кто работает на рынке - руки прочь от купайла, те кто программирует - купайл говно и в скобочках "могу переписать любую прогу с QPILE на LUA, но не бесплатно". Ну всё понятно...
[ Закрыто] Отказ от поддержки встроенного языка QPILE, Отказ от поддержки встроенного языка QPILE
Пользователь
Сообщений: Регистрация: 01.06.2015
18.05.2016 19:51:19
Цитата
Sergey Gorokhov написал: рано или поздно возникнет ситуация, при которой Ваши алгоритмы будут просто не подготовлены к текущей ситуации на рынке так как биржа постоянно обновляется.
А ручонки-то чешутся... У меня купайл с 2005 года работает. И ничего, все обновления пережил. Отключение переживет вряд ли. Единственная просьба: о решении сообщить заранее, за месяц хотя бы. И не через форум, а сообщением в квике. Заранее благодарен.
Глюк БКС
Пользователь
Сообщений: Регистрация: 01.06.2015
09.06.2015 13:21:49
Таблица Позиции по счетам Вар. маржа обнулена. В таблице параметров все нормально, а при обращении из купайла Пред. оценка, шаг цены и его стоимость обнулены.
позиции по фьючам
Пользователь
Сообщений: Регистрация: 01.06.2015
01.06.2015 15:26:33
Раньше в таблице позиции по фьчам в столбце стоимость позиции после дневного клиринга показывалась вариационка дообеденная, а сейчас нули?