Давид Юсупов написал: Как узнать по какому алгоритму рассчитывать?
Здравствуйте, На самом деле индикатор Fractals не совсем рассчитывается. Ведь расчет это когда из одного значения получается другое, а Fractals выбирает максимумы и минимумы из того что есть. Алгоритм поиска описан в документации на терминал -Раздел 4. Работа с графиками --Методы технического анализа ---Fractals («Фракталы»)
Также есть пример на LUA по ссылке:
BULLS & BEARS, как получить линию разности быков и медведей с помощью индикаторов на Луа
Пользователь
Сообщений: Регистрация: 23.01.2015
03.08.2016 06:31:46
Цитата
Сергей Качурин написал: Sergey Gorokhov , спасибо! Всё заработало.
что это за строчка такая, если не секрет?
Считайте что это ошибка в коде. Архив на ФТП уже поправили.
BULLS & BEARS, как получить линию разности быков и медведей с помощью индикаторов на Луа
Пользователь
Сообщений: Регистрация: 23.01.2015
02.08.2016 10:40:22
Уберите 111ю строку в файле SROC.lua EMA_TMP[I-2]=nil
должно помочь
BULLS & BEARS, как получить линию разности быков и медведей с помощью индикаторов на Луа
Пользователь
Сообщений: Регистрация: 23.01.2015
02.08.2016 04:09:22
И потом, в моем примере после CreateDataSource был sleep(100), а у Вас его нет. Его нужно добавить, иначе цикл может начать работать до того как прокачаются свечки
BULLS & BEARS, как получить линию разности быков и медведей с помощью индикаторов на Луа
Пользователь
Сообщений: Регистрация: 23.01.2015
02.08.2016 04:06:52
Скорее всего ошибка в этой строке
Цитата
Сергей Качурин написал: for i=1+x,ds:Size() do --candels
EMA рассчитывается на основе своих предыдущих значений. То есть для того чтобы он считался на определенной свече нужно прогнать все предыдущие свечи.
попробуйте указать так: for i=1,ds:Size() do
BULLS & BEARS, как получить линию разности быков и медведей с помощью индикаторов на Луа
Пользователь
Сообщений: Регистрация: 23.01.2015
02.08.2016 03:59:45
Приведите полную версию кода.
Окна Квика
Пользователь
Сообщений: Регистрация: 23.01.2015
01.08.2016 05:59:24
Цитата
dwell dwell написал: Может быть, есть настройка сокрытия этого окна, чтобы квик в бэкграунде фейлился с соединением, меня не трогая?
Система - Настройки - Основные настройки - Сообщения, убрать галку "Показывать Окно сообщений"
Цитата
dwell dwell написал: Если я хочу, чтобы квик был запущен в то время, когда нет подключения к серверу, но при этом не хочу иметь постоянные выскакивающие окошки о том, что соединение установить не удалось...
Настройте время когда надо восстанавливать связь и когда не надо в Система - Соединения
Callback на отрисовку кастомных индикаторов
Пользователь
Сообщений: Регистрация: 23.01.2015
29.07.2016 06:56:14
Здравствуйте!
Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.
SetUpdateCallback зависания системы
Пользователь
Сообщений: Регистрация: 23.01.2015
29.07.2016 06:21:15
Такой возможности нет.
SetUpdateCallback зависания системы
Пользователь
Сообщений: Регистрация: 23.01.2015
28.07.2016 14:19:46
Николай, Тогда понятно почему у нас не воспроизводится проблема. Приведите полный код, на котором проблема повторяется.
SetUpdateCallback зависания системы
Пользователь
Сообщений: Регистрация: 23.01.2015
28.07.2016 14:07:23
Здравствуйте, Попробуйте добавить обработку в функцию main function main() for class in string.gmatch(classes,"(%w+)") do local securities = getClassSecurities(class); for security in string.gmatch(securities,"(%w+)") do DataSource(class, security); end end end
BULLS & BEARS, как получить линию разности быков и медведей с помощью индикаторов на Луа
Пользователь
Сообщений: Регистрация: 23.01.2015
27.07.2016 05:52:17
Цитата
Сергей Качурин написал: как тогда обратиться к значениям каждой конкретной свечи
первый параметр функции вернет значение для конкретной свечки ma_out=func(1, {Period = x, Metod = "EMA", VType="Close", round="off"}, ds) --первая свечка ma_out=func(2, {Period = x, Metod = "EMA", VType="Close", round="off"}, ds) --вторая и т.д.
BULLS & BEARS, как получить линию разности быков и медведей с помощью индикаторов на Луа
Пользователь
Сообщений: Регистрация: 23.01.2015
26.07.2016 14:43:36
Цитата
Сергей Качурин написал: Sergey Gorokhov, a можно к созданному индикатору присвоить идентификатор через Lua (сразу при добавлении), чтобы потом обращаться к его значениям через getNumCandles и getCandlesByIndex?
К сожалению в текущей реализации в Lua индикаторы нельзя добавить идентификатор средствами Lua.
Цитата
Сергей Качурин написал: или вот такое обращение будет корректным: ma_out[i], ma_out[i-1]... ?
нет, так как функция возвращает значение рассчитанное для конкретной свечи, а не таблицу.
в каком файле хранятся данные сделок, совершенных за день?
Пользователь
Сообщений: Регистрация: 23.01.2015
26.07.2016 13:51:04
Такова реализация
в каком файле хранятся данные сделок, совершенных за день?
Пользователь
Сообщений: Регистрация: 23.01.2015
26.07.2016 11:46:55
Минимальный набор dat файлов для того чтобы сохранились сделки должен быть такой: trades.dat classes.dat par.dat sec.dat
в каком файле хранятся данные сделок, совершенных за день?
Пользователь
Сообщений: Регистрация: 23.01.2015
26.07.2016 11:31:35
Цитата
Sergey Denegin написал: Хотелось бы услышать более профессиональный ответ от разработчиков
профессиональный ответ, нужно скопировать info.log и нужные dat файлы Однако как уже было сказано, мы не рекомендуем так делать ввиду того что могут быть коллизии из за разных версий или настроек на самом терминале.
в каком файле хранятся данные сделок, совершенных за день?
Зачем тратить свое время на писание этого ненужного поста, если сделки я вижу, даже без подключения к серверу?
Цитата
Лёня Голиков написал: Всю папку с квиком не пробовали копировать с сервера?
Странно, почему Вы не предложили образ винды сразу скопировать, а только папку квика предложили скопировать....
Это правильный совет, так как иначе придется следить за версиями, за списком инструментов и не факт что оно вообще заработает. Проще, быстрее, надежней, скопировать всю папку с терминалом.
BULLS & BEARS, как получить линию разности быков и медведей с помощью индикаторов на Луа
Пользователь
Сообщений: Регистрация: 23.01.2015
26.07.2016 06:08:44
Здравствуйте, Проверять нужно не сами функции а результат этих функций.
Код
if func1(Index, Settings) ~= nil and func2(Index, Settings) ~= nil then
а еще лучше задать переменные и дальше работать с ними
Код
x = func1(Index, Settings)
y = func2(Index, Settings)
if x ~= nil and y ~= nil then
return (x+y)/2
end
Не приходят события OnAllTrade при закрытой Таблице обезличенных сделок, События OnAllTrade приходят только при открытой таблице, в настройках все заказал.
Пользователь
Сообщений: Регистрация: 23.01.2015
23.07.2016 13:14:16
Здравствуйте, Все правильно, функция OnAllTrade возвращает данные поступающие в таблицу обезличенных сделок, но никак не заказывает данные. для заказа данных используйте CreateDataSource с тиковым интервалом.
BULLS & BEARS, как получить линию разности быков и медведей с помощью индикаторов на Луа
Пользователь
Сообщений: Регистрация: 23.01.2015
23.07.2016 13:09:50
Причина в том что в коде много ошибок, причем не синтаксических а логических вот Вы выводите сообщение
Код
message (tostring(Out1), 1)
однако сама переменная Out1 у Вас нигде не задана. далее
Код
if Out1~=nil and Out2~=nil
func = Out1- Out2
end
Этот текст вообще не понятен. Что такое func? Где задаются значения для Out1 и Out2?
далее
Код
return func1(Index, Settings) and func2(Index, Settings)
Здесь вообще не понятно чего Вы пытались добиться выводя boolean тип данных, когда надо выводить число. Зачем вообще надо было трогать переменные внутри функции?
Функция выводит результат, вот и работайте с результатом, а не с тем что внутри функции. То что внутри вообще трогать не надо.
Скрытый текст
Код
Settings = {
Name = "*BULLS-BEARS",
round = "off",
Period = 13,
Metod = "EMA", --SMA, EMA, VMA, SMMA, VMA
VType = "Close", --Open, High, Low, Close, Volume, Median, Typical, Weighted, Difference
line = {{
Name = "BULLS-BEARS",
Type = TYPE_HISTOGRAM,
Color = RGB(255, 0, 0)
},
{
Name = "line 0",
Type = TYPE_LINE,
Color = RGB(0, 255, 0)
}
}
}
function Init()
func1 = BULLS()
func2 = BEARS()
return #Settings.line
end
function OnCalculate(Index)
return func1(Index, Settings)-func2(Index, Settings)
end
function BULLS() --Bulls Power ("BULLS")
local Bulls_MA=MA()
return function (I, Fsettings, ds)
local Out = nil
local Fsettings=(Fsettings or {})
local P = (Fsettings.Period or 13)
local M = (Fsettings.Metod or "EMA")
local VT = (Fsettings.VType or "Close")
local R = (Fsettings.round or "off")
local b_ma = Bulls_MA(I, {Period=P, Metod = M, VType=VT, round=R}, ds)
if I>=P and b_ma then
Out = Value(I, "High", ds)-b_ma
else Out = b_ma end
return rounding(Out, R),0
end
end
function BEARS() --Bears Power ("BEARS")
local Bears_MA=MA()
return function (I, Fsettings, ds)
local Out = nil
local Fsettings=(Fsettings or {})
local P = (Fsettings.Period or 13)
local M = (Fsettings.Metod or "EMA")
local VT = (Fsettings.VType or "Close")
local R = (Fsettings.round or "off")
local b_ma = 0
b_ma=Bears_MA(I, {Period=P, Metod = M, VType=VT, round=R}, ds)
if I>=P and b_ma then
Out = Value(I, "Low", ds)-b_ma
else Out = b_ma end
return rounding(Out, R),0
end
end
function MA() --Moving Average ("MA")
local t_SMA = F_SMA()
local t_EMA = F_EMA()
local t_VMA = F_VMA()
local t_SMMA = F_SMMA()
local t_WMA = F_WMA()
return function(I, Fsettings, ds)
local Out = nil
local Fsettings=(Fsettings or {})
local P = (Fsettings.Period or 9)
local M = (Fsettings.Metod or "EMA")
local VT = (Fsettings.VType or "Close")
local R = (Fsettings.round or "off")
if M == "SMA" then
Out = t_SMA(I, P, VT, ds, R)
elseif M == "EMA" then
Out = t_EMA(I, P, VT, ds, R)
elseif M == "VMA" then
Out = t_VMA(I, P, VT, ds, R)
elseif M == "SMMA" then
Out = t_SMMA(I, P, VT, ds, R)
elseif M == "WMA" then
Out = t_WMA(I, P, VT, ds, R)
else
Out = nil
end
return rounding(Out, R)
end
end
------------------------------------------------------------------
--Moving Average SMA, EMA, VMA, SMMA, VMA
------------------------------------------------------------------
--[[Simple Moving Average (SMA)
SMA = sum(Pi) / n
]]
function F_SMA()
return function (I, Period, VType, ds, round)
local Out = nil
if I >= Period then
local sum = 0
for i = I-Period+1, I do
sum = sum +Value(i, VType, ds)
end
Out = sum/Period
end
return rounding(Out,round)
end
end
--[[Exponential Moving Average (EMA)
EMAi = (EMAi-1*(n-1)+2*Pi) / (n+1)
]]
function F_EMA()
local EMA_TMP={}
return function(I, Period, VType, ds, round)
local Out = nil
if I == 1 then
EMA_TMP[I]=rounding(Value(I, VType, ds),round)
else
EMA_TMP[I]=rounding((EMA_TMP[I-1]*(Period-1)+2*Value(I, VType, ds)) / (Period+1),round)
EMA_TMP[I-2]=nil
end
if I >= Period then
Out = EMA_TMP[I]
end
return rounding(Out,round)
end
end
--[[
William Moving Average (WMA)
( Previous WILLMA * ( Period - 1 ) + Data ) / Period
]]
function F_WMA()
local WMA_TMP={}
return function(I, Period, VType, ds, round)
local Out = nil
if I == 1 then
WMA_TMP[I]=rounding(Value(I, VType, ds),round)
else
WMA_TMP[I]=rounding((WMA_TMP[I-1]*(Period-1)+Value(I, VType, ds)) / Period,round)
WMA_TMP[I-2]=nil
end
if I >= Period then
Out = WMA_TMP[I]
end
return rounding(Out,round)
end
end
--[[Volume Adjusted Moving Average (VMA)
VMA = sum(Pi*Vi) / sum(Vi)
]]
function F_VMA()
return function (I, Period, VType, ds, round)
local Out = nil
if I >= Period then
local sum = 0
local sumV = 0
for i = I-Period+1, I do
sum = sum +Value(i, VType, ds)*Value(i, "Volume", ds)
sumV = sumV +Value(i, "Volume", ds)
end
Out = sum/sumV
end
return rounding(Out,round)
end
end
--[[Smoothed Moving Average (SMMA)
SMMAi = (sum(Pi) - SMMAi-1 + Pi) / n
]]
function F_SMMA()
local SMMA_TMP={}
return function(I, Period, VType, ds, round)
local Out = nil
if I >= Period then
local sum = 0
for i = I-Period+1, I do
sum = sum +Value(i, VType, ds)
end
if I == Period then
SMMA_TMP[I]=rounding((sum-Value(I, VType, ds)+Value(I, VType, ds)) / Period, round)
else
SMMA_TMP[I]=rounding((sum-SMMA_TMP[I-1]+Value(I, VType, ds)) / Period, round)
end
SMMA_TMP[I-2]=nil
Out = SMMA_TMP[I]
end
return rounding(Out,round)
end
end
function rounding(num, round)
if round and string.upper(round)== "ON" then round=0 end
if num and tonumber(round) then
local mult = 10^round
if num >= 0 then return math.floor(num * mult + 0.5) / mult
else return math.ceil(num * mult - 0.5) / mult end
else return num end
end
function Value(I,VType,ds)
local Out = nil
VType=(VType and string.upper(string.sub(VType,1,1))) or "A"
if VType == "O" then --Open
Out = (O and O(I)) or (ds and ds:O(I))
elseif VType == "H" then --High
Out = (H and H(I)) or (ds and ds:H(I))
elseif VType == "L" then --Low
Out = (L and L(I)) or (ds and ds:L(I))
elseif VType == "C" then --Close
Out = (C and C(I)) or (ds and ds:C(I))
elseif VType == "V" then --Volume
Out = (V and V(I)) or (ds and ds:V(I))
elseif VType == "M" then --Median
Out = ((Value(I,"H",ds) + Value(I,"L",ds)) / 2)
elseif VType == "T" then --Typical
Out = ((Value(I,"M",ds) * 2 + Value(I,"C",ds))/3)
elseif VType == "W" then --Weighted
Out = ((Value(I,"T",ds) * 3 + Value(I,"O",ds))/4)
elseif VType == "D" then --Difference
Out = (Value(I,"H",ds) - Value(I,"L",ds))
elseif VType == "A" then --Any
if ds then Out = ds[I] end
end
return Out
end
Какую таблицу вывести для сравнения цены приобретения акции и текущей цены на рынке?
Пользователь
Сообщений: Регистрация: 23.01.2015
23.07.2016 13:01:17
Цитата
йцу кен написал: В том же альфадиректе почему-то у разработчиков не возникает проблемы с сохранением цены покупку бумаг и с определением балансовой стоимости. Год как перешел в сбер и торгую через квик и год как плююсь. Когда у вас уже будет балансовая цена сохранятся а не превращаться в 0 на следующий день? Или я какую-то опцию найти не могу?
Цена сохраняется только если брокер захочет ее сохранять. Если у Вас не сохраняется вопрос к брокеру.
Какую таблицу вывести для сравнения цены приобретения акции и текущей цены на рынке?
Пользователь
Сообщений: Регистрация: 23.01.2015
23.07.2016 13:00:20
Цитата
йцу кен написал: экспорт DDE нормально работает только с продуктами майкрософт, а если я пользуюсь опен офис? Или вообще на линуксе работаю, тогда что?
экспорт DDE нормально работает с любыми продуктами которые поддерживают DDE Люди даже используют самописные DDE сервера и все работает. То что OpenOffice не поддерживает эту технологию увы никак со стороны QUIK не исправить
Индикаторы
Пользователь
Сообщений: Регистрация: 23.01.2015
22.07.2016 18:21:34
Цитата
222333 написал: подскажите, как индикатор bw mfi сделать 4-х цветным, как написано у била вильямса.
Здравствуйте, К сожалению штатный индикатор нельзя раскрасить. Воспользуйтесь индикаторами на Lua
нужный индикатор в файле BWMFI.lua Там гистограмма раскрашена.
Редактирование таблиц
Пользователь
Сообщений: Регистрация: 23.01.2015
22.07.2016 16:29:35
Здравствуйте, В таблице текущих торгов транслируется то что приезжает с биржи. Если биржа транслирует указанные данные, мы можем их добавить, если нет то QUIK просто не от куда их взять. К слову в описании биржевого интерфейса мы не нашли такого параметра. Возможно следует уточнить на форуме биржи, а транслируют ли они вообще что то подобное
Как поставить QUIK на сервер?, Как поставить QUIK на сервер?
Пользователь
Сообщений: Регистрация: 23.01.2015
21.07.2016 10:15:00
Здравствуйте, Установка QUIK на Windows Server абсолютно никак и ничем не отличается от установки QUIK на любой другой поддерживаемый Windows
PHP в качестве скриптового языка для QUIK, Добавьте пожалуйста PHP в качестве скриптового языка для QUIK
Пользователь
Сообщений: Регистрация: 23.01.2015
19.07.2016 14:56:16
Здравствуйте, К сожалению вынуждены отказать в регистрации подобного пожелания, по нашим внутренним причинам.
Снятие стоп-заявок, ответ на транзакцию
Пользователь
Сообщений: Регистрация: 23.01.2015
30.06.2016 06:19:45
Цитата
Сергей Качурин написал: Но был бы крайне признателен, если кто-нибудь хотя бы намекнул почему возможна ситуация, описанная выше...
По логам видно что сначала приходит ответ что стоп успешно снят а потом что его снять невозможно (так как он уже снят) Предполагаем что транзакция по каким-то причинам отправляется дважды. Но чтобы не было "предположений" (которых может быть еще с десяток) нужна полная версия кода
Индикаторы
Пользователь
Сообщений: Регистрация: 23.01.2015
30.06.2016 06:10:42
к слову говоря, если интересует расчет в LUA, пример есть по ссылке:
запуск робота при запуске квика
Пользователь
Сообщений: Регистрация: 23.01.2015
30.06.2016 06:06:46
Цитата
Космонавт написал: Сохранятся ли изменившиеся переменные в памяти при уходе в гибернацию?
Мы в этом месте исследований не проводили, так как подобного рода эксперименты пользователи могут провести самостоятельно. На вопросы типа "что будет если" куда эффективней получить ответ самостоятельно.
Индикаторы
Пользователь
Сообщений: Регистрация: 23.01.2015
30.06.2016 06:02:23
Цитата
Vesa написал: 1) Значение предыдущей ЕМА. Т.к. значение предыдущей ЕМА в нашем случае является начальным значением, то EMAi-1 = 133,65 (значение цены закрытия в 18:15);
Скорее всего проблема именно в этом. Вы правильно говорите что для расчета EMA нужно его предыдущее значение. Но от куда Вы взяли что предыдущее EMA в 18:15 будет именно EMAi-1 = 133,65 (значение цены закрытия в 18:15)?? Ведь на 5 минутном таймфрейме сбербанка куда более чем 2 свечки. Даже если у Вас отключена история на графике, в 18:20 Вы никак не получите 2 свечки.
Для расчета EMA нужно его предыдущее значение EMAi-1. А для расчета этого предыдущего значения нужно его предыдущее EMAi-2 и так далее пока график не кончится.
и только самое самое левое значения графика цены и будет тем самым EMA0=P0 на 5 минутном таймфрейме сбербанка, это примерно 19 мая 2016г, а когда торги начнутся это будет уже другая свечка.
Это не так. Графики текущей сессии хранятся в info.log Графики истории хранятся в папке archive Таблица всех сделок хранится в alltrade.dat
Режим просмотра Quik, Возможен ли просмотр рабочего места в фоновом режиме?
Пользователь
Сообщений: Регистрация: 23.01.2015
29.06.2016 11:06:37
Можно через teamviewer или RDP Или попросить брокера создать вторую учетную запись с такими же правами но без права на активные операции
Снятие заявки и повтор ее при помощи OnOrder
Пользователь
Сообщений: Регистрация: 23.01.2015
29.06.2016 10:56:15
Цитата
Антон написал: Цену я указываю, но на какой тип заявки нужно изменить, что бы даже если в данный момент нету предложения, что бы заявка осталась висеть и не снималась? На лимитированную L ?
Да на лимитированную
Снятие заявки и повтор ее при помощи OnOrder
Пользователь
Сообщений: Регистрация: 23.01.2015
29.06.2016 10:43:12
Цитата
Антон написал: 1) Какие указать параметры, что бы заявка не снималась сама.
Для того чтобы ответить на этот вопрос, Вам нужно понять почему заявка приезжает снятой. Вы указываете ["TYPE"] = "M", (рыночная) и судя по косвенным признакам речь про ФОРТС Так вот, на ФОРТС не бывает "рыночных" заявок. Там есть похожая по типу заявка "Снять остаток" суть которой в том что не исполненное количество заявки снимается с торгов.
В QUIK ставя признак рыночной заявки на фортс, Вы тем самым отправляете заявку с типом "Снять остаток". Если цена не указана она подставляется автоматически как минимально возможная или максимально возможная. Если цена указана, то отправляется с ней. Если по цене нет ни одного предложения, заявка сразу приезжает снятой. Если есть, но не в полном объеме, то часть заявки исполняется а остаток также снимается.
Цитата
Антон написал: В квике не могу нигде найти причину автоматического снятия заявки.
Потому что ее снимает биржа.
Цитата
Антон написал: 2) Как сделать дубль снятой заявки, с теми же параметрами.(Покупка\продажа, цена, количество)
Просто отправить транзакцию еще раз. Ведь у Вас в памяти остается таблица Transaction которая содержит все нужные данные.
ЗАМЕНИТЬ ИНСТРУМЕНТ
Пользователь
Сообщений: Регистрация: 23.01.2015
29.06.2016 05:37:11
Здравствуйте, Опция находится в свойствах диаграммы
Снятие заявки и повтор ее при помощи OnOrder
Пользователь
Сообщений: Регистрация: 23.01.2015
29.06.2016 05:31:38
Здравствуйте, Уточните что именно вызывает вопрос? Не понятно какие параметры указать? или не понятно как отправить транзакцию?
Можно ли добавить свое меню или расширить существующее?, Можно ли добавить свое меню или расширить существующее?
Пользователь
Сообщений: Регистрация: 23.01.2015
28.06.2016 12:59:27
Здравствуйте, Такой возможности нет
Значение поля "номер стоп-заявки", Выдает ошибку всеми возможными способами
Как уже было сказано и еще раз повторим, что приведенные ошибки возникают из-за того что в ST_orderNum у Вас ничего нет, то есть nil. Если это утверждение не вызывает доверия, проверьте сами на простом примере кода:
Если самостоятельно разобраться не получается выложите весь код.
Значение поля "номер стоп-заявки", Выдает ошибку всеми возможными способами
Пользователь
Сообщений: Регистрация: 23.01.2015
27.06.2016 15:49:53
Ошибка говорит о том что в ST_orderNum у Вас ничего нет, то есть nil Посмотрите что у Вас в этой переменной перед ее вызовом. Тот код что Вы привели не дает ответа. Например если у Вас переменная ST_orderNum является локальной то при вызове из другой функции она будет равна nil
Значение поля "номер стоп-заявки", Выдает ошибку всеми возможными способами
Пользователь
Сообщений: Регистрация: 23.01.2015
27.06.2016 14:25:42
А чему у Вас равна переменная ST_orderNum ?
Значение поля "номер стоп-заявки", Выдает ошибку всеми возможными способами
Пользователь
Сообщений: Регистрация: 23.01.2015
27.06.2016 13:40:48
еще можно вот так: ["STOP_ORDER_KEY"] = string.format("%.0f", ST_orderNum)
Значение поля "номер стоп-заявки", Выдает ошибку всеми возможными способами
Пользователь
Сообщений: Регистрация: 23.01.2015
27.06.2016 13:29:52
Здравствуйте, Номер должен быть в виде строки и без нулей. ["STOP_ORDER_KEY"] = "1314760"
к слову tostring("1314760.0000000") вернет "1314760.0000000" (не правильно) а tostring(1314760.0000000) вернет "1314760" (правильно)
попробуйте добавить +0 в параметре функции tostring ["STOP_ORDER_KEY"] = tostring(ST_orderNum+0)
Автозапуск скриптов LUA при запуске QUIK (предложение по доработке)
Пользователь
Сообщений: Регистрация: 23.01.2015
24.06.2016 15:05:11
Цитата
Sergey Denegin написал: А если он завис в результате отладки, то состояние макросов опять будет забыто.
И это абсолютно правильное поведение и меняться оно категорически не будет Ибо иначе скрипт бы постоянно приводил к зависанию. И избавиться от этого было бы нельзя. То есть терминал стал бы просто неработоспособен.
Как можно прервать работу скрипта Lua, если он подвис в каком-нибудь цикле?
Пользователь
Сообщений: Регистрация: 23.01.2015
24.06.2016 13:16:45
Здравствуйте, Да Ctrl+Alt+Del найти там info.exe и завершить.
Следует понимать что Lua скрипты работают в основном потоке терминала (кроме функции main) а значит чтобы была возможность из терминала аварийно завершить зависший скрипт, требуется чтобы терминал отвечал на команды. А он не может ответить так как в его потоке завис скрипт. Получается замкнутый круг.
Иными словами, завершить зависшее приложение можно только из другого приложения. А в данном случае это не так.
Автозапуск скриптов LUA при запуске QUIK (предложение по доработке)
Пользователь
Сообщений: Регистрация: 23.01.2015
24.06.2016 13:13:35
Цитата
Sergey Denegin написал: Можно хотя бы сделать запуск скриптов после загрузки параметров окон из файла *.wnd, потому что пока они не загрузились, нет ни стакана, ни графиков.
А чем не устраивает проверка подключения к серверу isConnected() или событие OnConnected? Конечно не совсем то, но в практике редко встретишь необходимость работы lua скрипта при отключенном терминале, разве что для отладки.
Цитата
Sergey Denegin написал: Речь о том, что сейчас, чтобы скрипт запускался автоматически при запуске квика, его нужно запустить, а потом выйти и войти в квик, чтобы квик запомнил его состояние
Это некорректная формулировка. На самом деле, чтобы скрипт запускался автоматически, достаточно его правильно написать и запустить. А вот увидеть (проверить) что он действительно запустился автоматически, можно только после перезапуска.
Цитата
Sergey Denegin написал: Это пожелание сочетается с Пожеланием 1, потому что когда мы поставим там галочки, хотелось бы, чтобы эти галочки не слетели в случае зависания квика.
Пожелание 1 это пожелание 1 и, как уже было сказано, мы его рассмотрим. Если говорить о пожелании 3 как дополнение для пожелания 1, то на наш взгляд и так понятно что состояние галки должно сохраняться, иначе от нее нет смысла.
Цитата
Sergey Denegin написал: А для этого в окне со списком скриптов нужна кнопка "сохранить".
Ну так она и сейчас есть в Система - Сохранить настройки в файл.
Автозапуск скриптов LUA при запуске QUIK (предложение по доработке)
Пользователь
Сообщений: Регистрация: 23.01.2015
24.06.2016 12:41:27
--------------------------------------- Пожелание 1 Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО. --------------------------------------- Пожелание 2 Нет так вопрос решается в коде. Раз роботу нужны данные, значит робот и должен проверять доступность нужных ему данных. И потом как уже много лет обсуждалось, нет такой точки которая обозначает момент когда загрузка данных закончена, вернее она есть - это окончание сессии. Можно проверить только актуальность поступающих данных, а это делается в коде робота. --------------------------------------- Пожелание 3 Это пожелание не понятно. О каких параметрах скриптов идет речь? И зачем выходить и входить чтобы сохранить свойства?
пропал график "суммарный спрос" и "суммарное предложение" по фьючерсу РТС
Пользователь
Сообщений: Регистрация: 23.01.2015
24.06.2016 11:42:24
Цитата
Sergey Denegin написал: А сегодня он пропал, и никакими методами возвращаться не хочет. Пробовал делать и "перезаказ данных" , все равно не появляется график Спроса и предложений за вчерашний день.
Это может означать что брокер не накапливает историю по спросу и предложению. Вам следует обратиться с вопросом к брокеру.
запуск робота при запуске квика
Пользователь
Сообщений: Регистрация: 23.01.2015
24.06.2016 11:37:57
Цитата
Космонавт написал: С какого места начинает работать робот? С Функции Main или он читает и исполняет код с самого начала (до функции main)?
читает и исполняет код с самого начала
Цитата
Космонавт написал: Помнит ли робот переменные, которые поменялись в ходе его работы?
нет не помнит
Доставучая проблема
Пользователь
Сообщений: Регистрация: 23.01.2015
24.06.2016 06:14:18
Здравствуйте,
Цитата
Роман написал: то скрипт вырубается и при следующем запуске/перезапуске Квика больше не стартует.
Для решения проблемы не используйте относительные пути при доступе к сторонним файлам.
Цитата
Роман написал: Верните принцып работы скрипта как в купле,
Ищите проблему в коде, так как она именно там.
Присвоим идентификатор графику программно!
Пользователь
Сообщений: Регистрация: 23.01.2015
23.06.2016 11:15:19
Здравствуйте, В текущей реализации при добавлении нового Lua индикатора на график происходит перерасчет всех ранеее добавленных Lua индикаторов. К сожалению простого способа решить проблему нет. Мы зарегистрировали пожелание на доработку. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО.