1. Не сохраняется фильтр по времени на графиках при закрытии программы. 2. Для своих индикаторах квик стал привязывать количество знаков которые показывает на графике, к количеству знаков после запятой инструмента, на который наложен индикатор. Какая логика? Если индикатор рассчитывает например какой-то коэффициент, который менше нуля, а у фишки, для которой он рассчитывается, значения целые, то индикатор показывает в значениях только нули. 3. Если нажать на стакане кнопку "снять все активные заявки из окна котировок", то даже при снятой галочке в настройках "запрашивать подтверждение для групповых операций" всё равно запрашивает.
Режим связанных окон: текущие торги --> обезличенные сделки
Пользователь
Сообщений: Регистрация: 01.06.2015
03.11.2020 11:10:00
Попробовал по совету техподдержки воспользоваться таким простым и удобным способом настройки фильтрации таблиц с обезличенными сделками. Упс! Ничего не вышло. Квик 8,7,1,3. Горят красненький якорь и красненькая цепочка. А реакции (связи) никакой. Может кто подскажет?
Открытие файла и память
Пользователь
Сообщений: Регистрация: 01.06.2015
18.10.2020 13:51:01
Вот такой простенький код даёт 1 МБ прироста памяти в час. Некритично, но непонятно почему. Так и должно быть или я что-то делаю не так?
Код
local stopped = false
function OnStop(flag)
stopped = true
end
function f11()
local fpath = getScriptPath() .. "\\tos11.log"
local f = io.open(fpath, "w+")
f:close()
f = nil
end
function main()
while not stopped do
f11()
sleep(100)
end
end
getCandlesByIndex что не так?
Пользователь
Сообщений: Регистрация: 01.06.2015
24.10.2017 12:12:02
написал простейший индикатор берущий данные из другой области диаграммы
Код
function RF()
return function(index)
if C(index) then
ind, n, l = getCandlesByIndex (Settings.tag, 0, index - 1, 1)
return ind[0].close
end
return nil
end
end
Вроде работает. Но. При загрузке квика выдает нули. Чтобы появились данные нужно нажать "применить" или "ОК". И что еще хуже, просто на глаз видно, что индикатор запаздывает причем до нескольких секунд. Что-то у меня не так или так и задумано?
Синхронизация 2 графиков
Пользователь
Сообщений: Регистрация: 01.06.2015
18.10.2017 17:00:06
Если два графика расположены в двух областях одной диаграммы, то нужно ли бары обязательно синхронизировать по времени баров или можно быть уверенным, что если индексы совпадают, то и время тоже?
Проблема с DELETE_ALL_ITEMS()
Пользователь
Сообщений: Регистрация: 01.06.2015
01.08.2017 20:27:24
У меня портфель делает некий расчет и выводит в таблицу, используя функцию:
Код
' Функция заполнить таблицу
' -----------------------------
FUNC FILL_TBL()
val1 = bar_time
val2 = signal_pos
val3 = current_pos
val4 = buy_quantity
val5 = sell_quantity
val6 = trans_id
val7 = pos_bal
val8 = status
map1=create_map()[IMG]c:\Users\ВГ\Pictures\portf.JPG[/IMG]
map1=SET_VALUE(map1,"val1",val1)
map1=SET_VALUE(map1,"val2",val2)
map1=SET_VALUE(map1,"val3",val3)
map1=SET_VALUE(map1,"val4",val4)
map1=SET_VALUE(map1,"val5",val5)
map1=SET_VALUE(map1,"val6",val6)
map1=SET_VALUE(map1,"val7",val7)
map1=SET_VALUE(map1,"val8",val8)
DELETE_ALL_ITEMS()
add_item(1,map1)
BGC = "DEFAULT_COLOR"
FC = "DEFAULT_COLOR"
if error <> 0 or check_deal >= 10 or check_frun <> 0
BGC = "RGB(250,200,150)"
end if
if status = "STOP"
BGC = "RGB(250,150,150)"
end if
if trade_on_of = "0"
FC = "RGB(50,200,50)"
end if
SET_ROW_COLOR_EX(1, BGC, "DEFAULT_COLOR", FC, "DEFAULT_COLOR")
tt = t_time(0)
WRITELN(logfile_path, signal_pos & "," & current_pos & "," & pos_bal & "," & buy_quantity & "," & sell_quantity & "," & last_price & "," & last_time & "," & best_bid & "," & best_offer & "," & status)
WRITELN(logfile_path, "END" & "," & tt)
END FUNC
То есть при каждом расчете удаляет строки и пишет ровно 1 строку. Все работало много лет. Но месяц другой назад он вдруг не с того, не с сего начинает добавлять строки не удаляя. Причем как-то хаотично, не в такт с периодом расчета, с пропусками и по две строки. Причем нумерация строк плывет. Образец в приложении.
Сначала это происходило иногда и где-то под конец вечерки. Но сегодня уже под конец основной. Хотелось бы понять, что делать.
Квик 6.14.0.12 Финам. И что любопытно точно такой же портфель нормально работает в БКС 6.16.1.15 и 7.2.1.5.
код ошибки 1381
Пользователь
Сообщений: Регистрация: 01.06.2015
17.03.2017 18:05:34
Невозможно создать график - код ошибки 1381 Что значит и почему невозможно?
Заявка -> Сообщение
Пользователь
Сообщений: Регистрация: 01.06.2015
22.02.2017 13:55:29
Посылаю заявку в скрипте луа sendTransaction, квик выдает сообщение "Заявка 25109199245 успешно зарегистрирована." Но я не прошу мне сообщать. И в купайле sendTransaction все делает тихо. В чем фишка?
Ширину понятно как установить. А как вывести целое число с двумя, например знаками? Или строки выровнить в право, а не влево?
SetRangeValue
Пользователь
Сообщений: Регистрация: 01.06.2015
10.02.2017 12:53:27
Замечательная казалось бы функция, позволяющая вставлять точки гуртом, а не по одиночке. SetRangeValue(1, index-range, index-1, nil) Но она принимает только скаляр, то есть нарисовать можно только горизонтальную линию или все стереть. И кстати почему с помощью SetRangeValue и SetValue нельзя поставить значение на последней свечке? В чем смысл такого ограничения?
Sleep в индикаторе
Пользователь
Сообщений: Регистрация: 01.06.2015
09.02.2017 17:20:34
Такое впечатление, что если повесить много даже простых индикаторов, квик начинает подтормаживать. Как часто рассчитываются индикаторы? На каждом тике? Как можно ограничить частоту расчета? Куда бы можно было вставить слип? Не очень понятно.
dofile
Пользователь
Сообщений: Регистрация: 01.06.2015
03.02.2017 13:33:09
Использую dofile для постоянной подгрузки данных в виде таблицы из текстового файла типа: qq={113.00,113.00,-0.99,-1.03,-0.79,-0.93,-0.66,-0.84,} Подлиннее конечно. Но раз в минут 15-20, луа сообщает об ошибке: " '}' expected near '<eof>' ". Похоже он обращается к еще не закрытому и недописанному файлу. Некритично, так как продолжает работать, но неприятно. Может что посоветуете?
Последний индекс
Пользователь
Сообщений: Регистрация: 01.06.2015
23.01.2017 21:40:44
Как узнать что индекс в OnCalculate(index) является последним?
Матлаб из Клуа
Пользователь
Сообщений: Регистрация: 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
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)
Может кто что подскажет?
Глюк БКС
Пользователь
Сообщений: Регистрация: 01.06.2015
09.06.2015 13:21:49
Таблица Позиции по счетам Вар. маржа обнулена. В таблице параметров все нормально, а при обращении из купайла Пред. оценка, шаг цены и его стоимость обнулены.
позиции по фьючам
Пользователь
Сообщений: Регистрация: 01.06.2015
01.06.2015 15:26:33
Раньше в таблице позиции по фьчам в столбце стоимость позиции после дневного клиринга показывалась вариационка дообеденная, а сейчас нули?