Тема: Нестандартный таймфрейм Quik
Здравствуйте коллеги, подскажите пожалуйста кто знает как сделать нестандартный таймфрейм?
Например 30 секунд, с чего начать ?
То есть что бы сделать такую же таблицу как в getCandlesByIndex
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
QUIK -> DDE → Lua: учебники, общие вопросы → Нестандартный таймфрейм Quik
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Здравствуйте коллеги, подскажите пожалуйста кто знает как сделать нестандартный таймфрейм?
Например 30 секунд, с чего начать ?
То есть что бы сделать такую же таблицу как в getCandlesByIndex
Здравствуйте коллеги, подскажите пожалуйста кто знает как сделать нестандартный таймфрейм?
Например 30 секунд, с чего начать ?
То есть что бы сделать такую же таблицу как в getCandlesByIndex
Здравствуйте, а откуда собираетесь данные получать для формирования баров?
Из getParamEx2(class_code, sec_code, "last").param_value
наверное лучше брать
Из getParamEx2(class_code, sec_code, "last").param_value
наверное лучше брать
не пойдет, getParamEx2 выдает снепшоты. обезличенные сделки, но нужно следить что они есть, брокер может их тупо перестать транслировать.
local exitflag
local ticker = "SiM1"
local tf = 30
local candles = {}
local function calculate(item)
if item.sec_code ~= ticker then return end
--так можно округлять только! до таймфрема 3600
local tm = math.floor(os.time(item.datetime)/tf) * tf
local price, qty = item.price, item.qty
if not candles[tm] then
local index = #candles+1
candles[index] = tm
candles[tm] =
{
O = price, H = price, L = price, C = price, V = qty, I = index
}
return
end
local bar = candles[tm]
if price > bar.H then bar.H = price end
if price < bar.L then bar.L = price end
bar.V = bar.V + qty
end
function main()
local last_row = 0
while not exitflag do
local row = getNumberOf("all_trades")
if row > last_row then
for i = last_row, row-1 do
calculate(getItem("all_trades",i))
if exitflag then break end
end
last_row = row
end
sleep(1)
end
---[[ проверка после остановки скрипта
local tm = candles[10]
local bar = candles[tm]
message(
os.date("%c", tm)..
"\n O= "..tostring(bar.O)..
"\n H= "..tostring(bar.H)..
"\n L= "..tostring(bar.L)..
"\n C= "..tostring(bar.C)..
"\n V= "..tostring(bar.V)..
"\n I= "..tostring(bar.I)..
"\n Всего баров: "..tostring(#candles)
)
--]]
end
function OnStop()
exitflag = true
return 300
end
Спасибо!
А снепшот это что? Могут быть пропуски данных?
Спасибо!
Пожалуйста
А снепшот это что? Могут быть пропуски данных?
снепшот это вырванный из потока данных снимок, конечно будут пропуски.
А можно ли в квике создать график с таким нестандартным таймфреймом?
А можно ли в квике создать график с таким нестандартным таймфреймом?
нет
А как сделать чтобы начало свечи по времени например для 30 сек как 1/2 60 сек свечи квика, то есть начало и цена открытия совпадала с открытием 1 минутной свечи, а конец и закрытие соответственно через 30 сек после начала 1 мин. или оно так и будет?
мой совет - переводите дату-время в unixime с милисекундами - получите целое число от начала эпохи. потом делите это число нацело на интервал. если 60000 это секунда, то делите на 30000. получите номер свечи, в которую нужно поместить данную сделку.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
QUIK -> DDE → Lua: учебники, общие вопросы → Нестандартный таймфрейм Quik
Форум работает на PunBB, при поддержке Informer Technologies, Inc