Есть ли возможность продлевать демо доступ, чтобы не регистрироваться каждый раз и не создавать отдельные ветки каждый месяц? Может быть стоит создать одну ветку где все желающие могли бы просить продлиться и закрепить ее вверху? Мой аккаунт U0132383 Спасибо!
Два (и более) счетов в Quik Junior
Пользователь
Сообщений: Регистрация: 07.03.2015
08.01.2019 00:32:43
Для разработки и тестирования стратегии требуется 2 счета в демо квике. Возможно ли такое и если да, то как организовать?
Какой бы я ни брал инструмент (Акции, Фьючерсы), какой бы ни брал параметр - все время получаю nil. Demo Quik 7.18.1.20
getParamEx возвращает все время 0
Пользователь
Сообщений: Регистрация: 07.03.2015
27.10.2017 00:23:01
В демо квике на демо сервере при запросе параметра получаю 0. Если открыть таблицу текущих торгов, то там тоже 0. Не смотря на то, что этот 0 подсвечивается то зеленым, то красным, что означает изменение параметра.
Код
function main()
local last_change = getParamEx('QJSIM', 'GAZP', "LASTCHANGE")
message("result:" .. tostring(last_change.result) .. ", value = " .. tostring(last_change.param_value) .. ", image = " .. tostring(last_change.last_change))
end
Значение "OPEN" возвращает корректно, а вот "CHANGE" опять 0. Это ограничения демо?
Пытаюсь применить условное форматирование как на скрине. И результат тоже не скрине.
Т.е. Крик считает все числа больше 10.5. То же самое с фильтром. Ставлю на эту же колонку условие "Меньше 500", но ни одна строка не исчезает. Ставлю "Больше 500" и исчезают все строки.
Еще такой вопрос: почему не смотря на то, что при инициализации таблицы я указал, что тип колонки double, перед установкой значения ячейки необходимо преобразовывать значение в строку иначе она в таблице не появляется?
CreateDataSource возвращает пустую таблицу, если использовать параметр param
Пользователь
Сообщений: Регистрация: 07.03.2015
16.10.2017 23:54:42
Версия Quik 7.11.1.5. Демо Код примера:
Код
stopped = false
function main()
ds, err = CreateDataSource('QJSIM', 'GAZP', INTERVAL_M1, 'bid')
while (err == "" or err == nil) and ds:Size() == 0 do
sleep(5)
end
if err ~= "" and err ~= nil then
message("Error: " .. err)
return
end
message("size:" .. tostring(ds:Size()))
ds:SetUpdateCallback(myFunc)
while stopped ~= true do
sleep(50)
end
end
function myFunc(index)
message(tostring(index))
end
На любой тикер и любой параметр param сервер возвращает пустую таблицу (т.е. ds:Size() всегда 0) пробовал выставлять sleep больше - не помогает. В любом случае должен был бы сработать callback, но ожидание в 5 минут после старта ничего не дало. Тот же самый код в версии 6 в демо quik возвращает таблицу с данными.
Падает квик на win2012R2
Пользователь
Сообщений: Регистрация: 07.03.2015
14.09.2016 18:31:55
Периодически падает квик на Windows 2012 R2. Вот с таким описанием:
Problem signature: Problem Event Name: APPCRASH Application Name: info.exe Application Version: 7.1.2.2 Application Timestamp: 56d7f483 Fault Module Name: StackHash_703e Fault Module Version: 6.3.9600.18194 Fault Module Timestamp: 569515fc Exception Code: c0000374 Exception Offset: PCH_92_FROM_ntdll+0x0003C7EC OS Version: 6.3.9600.2.0.0.16.7 Locale ID: 1049 Additional Information 1: 703e Additional Information 2: 703e5c8f7f5f646f47cc6f2ac4539596 Additional Information 3: 8d87 Additional Information 4: 8d878e87377747f9399d3df9a74bdbff
Read our privacy statement online:
If the online privacy statement is not available, please read our privacy statement offline: C:\Windows\system32\en-US\erofflps.txt
В чем причина?
Вид графика = Свечи.
Пользователь
Сообщений: Регистрация: 07.03.2015
13.09.2016 23:25:18
Как при таком виде графика, в коде задавать значения индикатора в виде HLOC?
Не найден указанный модуль.
Пользователь
Сообщений: Регистрация: 07.03.2015
09.09.2016 16:45:04
Написал собственную библиотеку для работы с Quik через lua. На компьютере, где велась разработка (Win7), все работает отлично. На другом компьютере с тем же квиком (WinServer 2012R2) получаю ошибку "error loading module 'MyDll' from file '.\MyDll.dll':The specified module could not be found." Проект собирал с конфигурацией "Release", "Win32", "Runtime libriry = Multi-threaded". Прошелся программой Dependency Walker - почти все зависимости есть (). Тот же release на компьютере, где писалась библиотека работает на ура. На сервере устанавливал vcredist_x64.exe и vcredist_x86.exe. Что еще я не сделал или сделал не так?
Определить очередь моей заявки в стакане в любой момент времени., Определение очереди.
Пользователь
Сообщений: Регистрация: 07.03.2015
16.02.2016 11:36:20
Добрый день.
Вопрос в названии темы. При постановке заявки я могу посчитать какое количество контрактов до меня по этой же цене. Но стакан ведь "живой", данные меняются, кто-то снимает заявки, кто-то ставит. Как в любой момент времени посчитать сколько контрактов передо мной?
Не понятные флаги в OnOrder., При отправке маркетной заявки по Фьючерсу Si, поле флаг равно 280.
Пользователь
Сообщений: Регистрация: 07.03.2015
07.12.2015 16:22:00
Как "280" разбивать на флаги, если максимум, что мы должны получить - это 255? Иногда проскальзывает "284". Проблема только с маркетными заявками отправляемыми программно. Код отправки:
Код
--Send limit or market order
function SendOrder(operation, price, quantity, type_order, comment)
-- Если это маркет заявка и цена не указана, то подставим цену в зависимости от типа заявки
if type_order == "M"
and price == 0 then
if operation == "B" then
price = tonumber(getParamEx(params.p_classcode, params.p_seccode, "pricemax").param_value)
elseif operation == "S" then
price = tonumber(getParamEx(params.p_classcode, params.p_seccode, "pricemin").param_value)
end
end
transaction = {
["CLASSCODE"] = params.p_classcode,
["ACTION"]="NEW_ORDER",
["ACCOUNT"]=params.account,
["OPERATION"] = operation,
["SECCODE"] = params.p_seccode,
["PRICE"] = tostring(round(price)),
["QUANTITY"] = tostring(quantity),
["TYPE"] = tostring(type_order),
["Условие исполнения"]=tostring("Поставить в очередь"),
["Переносить заявку"] = tostring("Да"),
["Дата экспирации"] = os.date("%Y%m%d", os.time() + 60 * 60 * 24),
}
--Check connection
if isConnected == 0 then
WriteLog("SendOrder", "Try to send limit in offline mode")
else
transaction.TRANS_ID = tostring(trans_id)
transaction.CLIENT_CODE = comment
res = sendTransaction(transaction)
end
if string.len(res) ~= 0 then
message(res)
end
end
"Нет прав на постановку стоп-заявки"., Ошибка при выставлении стоп-заявки.
Пользователь
Сообщений: Регистрация: 07.03.2015
28.11.2015 19:03:57
Код отправки:
Код
transaction = {
["CLASSCODE"] = class_code,
["SECCODE"] = sec_code,
["ACTION"] = "NEW_STOP_ORDER",
["ACCOUNT"] = account,
["OPERATION"] = operation,
["QUANTITY"] = tostring(quantity),
["STOPPRICE2"] = tostring(price)
["PRICE"] = tostring(price2),
["STOP_ORDER_KIND"] = "SIMPLE_STOP_ORDER",
["EXPIRY_DATE"] = "GTC",
}
--Check connection
if isConnected == 0 then
message("Try to send limit in offline mode", 1)
else
transaction.TRANS_ID = tostring(trans_id)
transaction.CLIENT_CODE = comment
res = sendTransaction(transaction)
if string.len(res) ~= 0 then
-- Ошибка отправки
message("send message = " .. tostring(res), 1)
end
end
После отправки небольшая пауза, а далее получаю сообщение:
"Нет прав на постановку стоп-заявки". Квик: 7.0.1.5 Инструмент: GAZP
Не подключается iuplua, При попытке подключить iuplua получаю ошибку библиотеки iuplua.dll
Пользователь
Сообщений: Регистрация: 07.03.2015
06.09.2015 10:50:20
В коде всего одна строчка
Код
require"iuplua"
Все. При запуске скрипта в Квике получаю ошибку:
Код
error loading module 'iuplua' from file 'C:\Program Files (x86)\Lua\5.1\clibs\iuplua51.dll':
C:\Program Files (x86)\Lua\5.1\clibs\iuplua51.dll:1: '=' expected near 'ђ'
Версия квика: 6.17.1.17 Версия lua: 5.1
Пробовал менять кодировки файла - без результата. Переустанавливал Lua - без результата. При этом, например:
Код
require"bit"
Работает корректно.
Обращение к индикатору с разными параметрами.
Пользователь
Сообщений: Регистрация: 07.03.2015
07.03.2015 01:46:53
Здравсвтуйте. Вопрос по индикатору EMA, описанному в примере по . Все что описано работает. Но в моей задаче, я вычисляю среднюю EMA по нескольким периодам. Пример: averEMA = (EMA(index, 3) + EMA(index, 4) + EMA(index, 5)) / 3. Так как это функция, при расчете EMA с периодом 4 я затираю значение рассчитаной ЕМА3, на этой же итерации. А оно будет нужно на следующем баре. Код индикатора:
Код
Settings= {
Name = "averEMA",
startPeriod = 3,
endPeriod = 6,
line =
{
{
Name = "AverEMA",
Color = RGB(90, 110, 200),
Type = TYPE_LINE,
Width = 1
}
}
}
function Init()
return 1
end
function OnCalculate(index)
local s
if index == 1 then
EMA = _EMA()
line = {}
end
s = 0
for i = Settings.startPeriod, Settings.endPeriod do
local k
k = EMA(index, i)
s = s + k
end
if index <= Settings.endPeriod then
line[index] = 0
else
line[index] = s / (Settings.startPeriod - (Settings.endPeriod - 1))
end
message("---- message 1 -----")
message("EMA3 = "..tostring(EMA(index, 3)))
--message("---- message 2 -----")
--message("EMA3 = "..tostring(EMA(index, 3))..", EMA4 = "..tostring(EMA(index, 4)))
return line[index]
end
function _MA()
local cache={}
return function(iIndex, iPeriod)
local sum = 0
local p = 0
local period = iPeriod
local index = iIndex
local result = 0
local str = ""
if index == 1 then
cache = {}
end
if index < period then
cache[index] = 0
return 0
end
for i = index - period + 1, index do
sum = sum + C(i)
end
result = sum / period
cache[index] = result
return result
end
end
function _EMA()
local cache={}
local MA = _MA()
return function(ind, _p, kk)
local n = 0
local p = 0
local period = _p
local index = ind
local k = kk or 2/(period + 1)
if index == 1 then
cache = {}
end
if index <= period then
cache[index] = 0
return 0
end
if cache[index - 1] == 0
or cache[index - 1] == nil then
p = MA(index - 1, period)
else
p = cache[index - 1]
end
n = C(index) * k + (1-k)*p
cache[index] = n
return n
end
end
Результаты теста можно увидеть на скринах. В коде изменяется только строка вывода сообщения. : Одна строка содержит только ЕМА3 и она выводится корректно. И , когда выводится результата вычисления ЕМА3 и ЕМА4. И в этом случае ЕМА3 корректна только на первой итерации, дальше она считается не верно. Как такого избежать?