Я не особо умею работать в LUA. Подскажите, как же тогда работать с тем чего нет, а потом есть, но может исчезнуть? )) nil string.format("%0."..scale.."f", X )
function fn(flags,order_num)
if bit.band(flags, 1)==1 then
return nil
end
i=i+1
return true
end
function main()
is_run,i = true,0
while is_run do
SearchItems("orders", i, getNumberOf("orders")-1, fn, "flags")
message ( "последняя "..tostring( i ))
sleep(2000)
end
end
function OnStop(s)
is_run = false
end
Все дело было в return nil, return true. Вот теперь работает. Спасибо!
Sergey Gorokhov написал: Просто запомнить номер строки и в следующий раз указать его в SearchItems. не понятно в чем сложность
Тоже не понимаю в чем, но сложность остается. ))
Код
function fn(flags,order_num)
i=i+1
if bit.band(flags, 1)==1 then
message ( "активна "..tostring(i).." "..tostring(order_num))
-- return i
end
return true
end
function main()
is_run,i = true,0
while is_run do
SearchItems("orders", i, getNumberOf("orders")-1, fn, "flags,order_num")
message ( "последняя "..tostring( i ))
sleep(2000)
end
end
function OnStop(s)
is_run = false
end
Парни, подскажите пожалуйста! Как через SearchItems, можно запомнить первую активную заявку в таблице "orders". И в следующий раз начинать с этой строки?
SearchItems (с 0 по end) в 5й строке активная заявка SearchItems (с 5 по end) в 10й строке активная заявка SearchItems (с 10 по end)
Серега написал: Если я не ошибаюсь, раньше SearchItems ("all_trades",0,getNumberOf ("all_trades")-1) обрабатывал строки с "0" до последней.
У Вас в функции не хватает параметров, в частности функции обратного вызова.
Да, это понятно. Для примера:
Код
function fn(seccode,flags,qty)
if seccode=="SiH9" then
message ( tostring(qty) ) -- выдает только строку =0, а должен все строки
message ( tostring(flags) )
message ( tostring(seccode) )
end
end
function main()
SearchItems("orders", 0, getNumberOf("orders")-1, fn, "sec_code,flags,qty")
end
Да, в любом коде, берет только первую строку. (Напишите свой пример, чтобы долго не придираться. А то сейчас растянем) А раньше брал с 0 строки по последнюю строку в таблице. Те LUA, которые раньше с SearchItems работали, теперь обрабатывают этой функцией только первую заданную ("0" нулевую) строку. QUIK 7.24.1.15
Если я не ошибаюсь, раньше SearchItems ("all_trades",0,getNumberOf ("all_trades")-1) обрабатывал строки с "0" до последней. Сейчас только одну. Может я чего не так делаю?
Пользовался бесплатным сервисом https://aws.amazon.com/ru/free/ Установил QUIK 6.17, инструменты RI Si. 1 ядро, памяти 512Мб маловато, но у меня все работало.
Всё верно стакан присутствует, график тоже. Сейчас в стакане почти никого, цена RI болтается на 94 000. Сделок почти нет. 15 или 16го все было как на реальных торгах. Полные стаканы, цена не отличалась от реальной.
Egor Zaytsev: "На демо и не обязательно должны совпадать котировки." На прошлой неделе совпадали. Было гораздо удобнее.
91.209.122.220 15100 info - это демо сервер? Раньше на демо RIZ6 котировки были как на реальном RIZ6 Сейчас демо RIZ6 = 94000 Меня одного так глючит? Кто тогда там сделки делает? ))) Какая сейчас котировка на демо RIZ6 = ???
Только что открыл http://arqatech.com/ru/support/demo/ 91.209.122.220 15100 info Ваш доступ на демо сервере НЕ работает. RIZ6 = 94 000 и никаких движений.
function OnInit ()
LastTrade=0
end
function OnTrade(trades)
if LastTrade >= trades.trade_num then return end
message( "- LastTrade " ..tostring( trades.order_num ).." trade_num " ..tostring( trades.trade_num) )
LastTrade = trades.trade_num
end
function OnInit()
lent_=getNumberOf("trades")
end
function main()
is_run = true while is_run do
sleep(100) end
end
function OnTrade(trades)
lent=getNumberOf("trades")
if lent~=lent_ then
message( "-order_num " ..tostring( trades.order_num ).." trade_num " ..tostring( trades.trade_num) )
lent_=lent
end
end
Помогите решить проблемму с множеством колбеков OnTrade() А то никак не могу перейти с версии QUIK 6.17 на более новую. Скучаю по багам в новых версиях. )))
Расход компьютерных ресурсов, при включении "Темной темы": График = 20% - 30% Стакан: 10% - 30% Один график + один стакан = 30% - 50% Окна залипли и не могу перенести их в др. место. Сам QUIK с трудом передвигается. Итог: минутная радость работы в тёмную.
В обычном светлом варианте, все в норме.
Пацаны ребята молодцы! Чётко !!! За%:?сь... Вот это улучшение. Кто хотел улучшений? Пользуйтесь. )))
Один и тот же счет. Пример как работают стопы через QUIK и QuotPro. 1. QuotPro получает котировку и закрывает позицию по рынку. 2. Стопы через QUIK ставятся на сервере брокера.
В первом варианте закрываю позицию по наилучшей цене. Во втором варианте постоянное проскальзывание.
"Mail на SMS" Стоимость услуги в МТС =0руб Еще в 2008 подключил. Компьютер может СМСки слать на телефон. 7912ххххххх@sms.ural.mts.ru (для некоторых регионов отличается)
1. Ордер в стакан 2. Правой кнопкой по этому ордеру в таблице Заявки. Стоп заявка "по исполнению" 3. Тейк-профит и стоп-лимит по заявке После исполнения заявки, выставляются тейк и стоп. После сработки одного из них, второй остается и ожидает своей очереди. Придется снимать руками.
1. Текущая чистая позиция постоянно меняется (11 12 13 12 11 10 ). И долго может быть !=0 2. Вариационная маржа приходит с опозданием. Расшифрую: 13:00:00 позиция Si закрыта =0, маржа=1000руб 13:00:25 позиция также=0, биржа обновила маржу =1200руб 13:01:25 позиция все еще=0, биржа снова обновила маржу =1250руб Дальше маржа не меняется, это не RI.