При попытке обновить квик, имена файлов на русском языке не загружаются с ошибкой "синтаксическая ошибка в имени файла имени папки или метке тома".
Система - Windows server 2012 R2
Все остальные меню квика на русском нормально отображаются, других проблем с кодировкой нет.
Пробовал все рекомендации из раздела "3.18 Проблема со шрифтами", включая редактирования реестра. Удалял эти файлы с русскими имена из каталога квика, ничего не помогло.
_sk_ написал: Не ломай голову, в явном виде пропиши дату, когда надо переходить на новый фьючерс.
С календариком посмотреть когда какой фъючерс заканчивается и в какой день лучше менять с учетом праздников и выходных? Особенно это неудобно у нефти. Хотелось бы автоматизировать
ну так введите в начале года в программу календарь и считывайте автоматически. в чем проблема?
Вопрос был про команду к серверу. Не про календарь.
_sk_ написал: Не ломай голову, в явном виде пропиши дату, когда надо переходить на новый фьючерс.
С календариком посмотреть когда какой фъючерс заканчивается и в какой день лучше менять с учетом праздников и выходных? Особенно это неудобно у нефти. Хотелось бы автоматизировать
MAT_DATE и DAYS_TO_MAT_DATE не учитывают выходные и праздники, это календарные дни, а не торговые.
Например я хочу менять фъючерсы за 2 дня до экспирации, тогда DAYS_TO_MAT_DATE = 2 и так совпало, что последний день обращения инструмента вторник, по логике скрипта меняем в субботу или воскресенье?
В данном случае я бы заменил в пятницу, но мне нужно понять, будут ли торги в следующий день.
Ломаю голову над вопросом - у меня в скриптах выполняется автоматическая замена кодов фъючерсов за несколько дней до экспирации, но эти несколько дней могут быть праздниками, выходными или прочими неторговыми днями.
Есть ли возможность запросить будут ли по инструменту торги на какую-то дату? Или завтра например?
Здравствуйте, на версии 8.6.097, проблема с general protection fault с версии 8.5 никуда не исчезла! Продолжает валиться квик на рабочих lua скриптах с версии 7.27.1. Произвольно, иногда при запуске сразу, иногда через небольшое время. Дамп, скрины отправил в поддержку, уже второй раз!
Скрипты поменял, учел изменения в lua 5.3, никаких подключаемых внешних библиотек нет, только код. Отправлять саппорту терминал со всеми скриптами не вариант!
Это же жесть!! Ранее эксперименты с квиком можно было игнорировать, не участвуя в сырой отладке на пользователях, оставаясь на старой версии, а теперь через пару недель запустят изменения на бирже, на версии 7 оставаться, как пишет саппорт нельзя, новая валится, что делать?????
Здравствуйте, на версии 8.6.097, проблема с general protection fault с версии 8.5 никуда не исчезла! Продолжает валиться квик на рабочих lua скриптах с версии 7.27.1. Произвольно, иногда при запуске сразу, иногда через небольшое время. Дамп, скрины отправил в поддержку, уже второй раз!
Скрипты поменял, учел изменения в lua 5.3, никаких подключаемых внешних библиотек нет, только код. Отправлять саппорту терминал со всеми скриптами не вариант!
Это же жесть!! Ранее эксперименты с квиком можно было игнорировать, не участвуя в сырой отладке на пользователях, оставаясь на старой версии, а теперь через пару недель запустят изменения на бирже, на версии 7 оставаться, как пишет саппорт нельзя, новая валится, что делать?????
Для диагностики проблемы пришлите пожалуйста архив Рабочего места QUIK и используемый скрипт на адрес: quiksupport@arqatech.com указав в письме ссылку на данную ветку форума. Архив необходимо делать при закрытой программе QUIK без файлов ключей. Перед закрытием программы убедитесь, что в ней открыта таблица "Клиентский портфель" с заполненными параметрами "Вариац. маржа" и "НакопДоход".
Думали вы месяц и потом написала что это ошибка ПО и надо ждать обновления.
И теперь я вижу, что вы снова запрашиваете архивы по этой же самой проблеме.
Внесите ясность - это ошибка getPortfolioInfoEx или нет? Сделайте предупреждение на главной странице что есть проблема с функцией, почему вы не цените чужое время???
Обновился сегодня с 7.14.1.7 на 7.19.0.51, в результате lua скрипты перестали корректно работать, так как возвращает функция getPortfolioInfoEx кривые поля, например varmargin стал нулевым, а profit_loss показывает занятое ГО.
Помог откат обратно на версию 7.14.1.7
Кто такой красавчик с обновлением - вы или брокер? И что делать теперь?
Подскажите, можно ли как-то вывести графически уровень трейлинг стопа? Например линией на графике, которая привязана к цене входа и движется по определенному алгоритму?
Т.е. например как передать в код индикатора информацию о сделке и уровне стопа, чтобы он уровень стопа нарисовал?
Значение стоимости портфеля можно получить в параметре "portfolio_value". Параметр "all_assets" отражает значение текущей оценки стоимости всех позиций клиента, и соответствует значению "ТекСредства".
К сожалению "portfolio_value" в финаме отражает только свободные средства (или близкое к этому, но точно не оценку всего портфеля), а мне требуется стоимость всего портфеля (деньги + позиции)
Никак не могу разобраться как в реальном времени получить стоимость портфеля в для счета ЕДП брокера финам, сейчас использую функцию getPortfolioInfoEx, но возвращаемые значение в поле all_assets в вечернюю сессию начинает отличаться от значений в терминале, есть ли у кого пример, как точно можно вытащить стоимость портфеля в финаме ЕДП?
Есть скрипт для расчета, который формирует таблицу и обновляет её если запущен руками, но после перезапуска квика или переподключении таблица не обновляется (хотя скрипт работает без ошибок), значения не наполняются, подскажите, что можно сделать и где поправить?
Прикладываю код, два скриншота, один после запуска скрипта руками (работает правильно), другой с незаполненными полями (надо пофиксить):
Код
function OnInit()
is_run=true
end
function OnStop()
do_main=false
DestroyTable(id)
end
-- ******************************************************************************************************* Блок расчета и вывода КДС
function InitKDS()
id = AllocTable()
AddColumn(id, 1, "Счёт", true, QTABLE_CACHED_STRING_TYPE, 18)
AddColumn(id, 2, "КДС", true, QTABLE_DOUBLE_TYPE, 10)
AddColumn(id, 3, "Требование (до КДС = 0)", true, QTABLE_DOUBLE_TYPE, 30)
CreateWindow(id)
SetWindowCaption(id,"Расчет КДС")
SetWindowPos(id,1244,0,340,160)
for i = 0, getNumberOf("futures_client_limits") - 1 do
if getItem("futures_client_limits",i).limit_type == 0 then
InsertRow(id, -1)
end
end
end
function CalkKDS()
local ceil=math.ceil
local j = 1
local kds = 1
local margin = 0
for i = 0, getNumberOf("futures_client_limits") - 1 do
if getItem("futures_client_limits",i)~=nil then
if getItem("futures_client_limits",i).limit_type == 0 then
local fcl = getItem("futures_client_limits",i)
if (fcl.cbplimit + fcl.accruedint) ~= 0 then
kds = ceil((fcl.cbplimit + fcl.accruedint - fcl.cbplused_for_positions + fcl.varmargin)/(fcl.cbplimit + fcl.accruedint)*1000)/1000
if kds >= 0.00 and kds <= 0.20 then
SetColor(id, j, 2, RGB(255, 255, 0) ,QTABLE_DEFAULT_COLOR, QTABLE_DEFAULT_COLOR, QTABLE_DEFAULT_COLOR)
SetColor(id, j, 3, RGB(0, 255, 0) ,QTABLE_DEFAULT_COLOR, QTABLE_DEFAULT_COLOR, QTABLE_DEFAULT_COLOR)
elseif kds < 0.00 then
SetColor(id, j, 2, RGB(255, 0, 0) ,QTABLE_DEFAULT_COLOR, QTABLE_DEFAULT_COLOR, QTABLE_DEFAULT_COLOR)
margin = ceil(fcl.cbplused_for_positions - (fcl.cbplimit + fcl.accruedint + fcl.varmargin)*1000)/1000
SetColor(id, j, 3, RGB(255, 0, 0) ,QTABLE_DEFAULT_COLOR, QTABLE_DEFAULT_COLOR, QTABLE_DEFAULT_COLOR)
else
SetColor(id, j, 2, RGB(0, 255, 0) ,QTABLE_DEFAULT_COLOR, QTABLE_DEFAULT_COLOR, QTABLE_DEFAULT_COLOR)
SetColor(id, j, 3, RGB(0, 255, 0) ,QTABLE_DEFAULT_COLOR, QTABLE_DEFAULT_COLOR, QTABLE_DEFAULT_COLOR)
mailKDS02=true
end
SetCell(id, j, 1, tostring(fcl.trdaccid),0)
SetCell(id, j, 2, tostring(kds),kds)
SetCell(id, j, 3, tostring(margin), margin)
else
SetColor(id, j, 2, RGB(0, 255, 0) ,QTABLE_DEFAULT_COLOR, QTABLE_DEFAULT_COLOR, QTABLE_DEFAULT_COLOR)
SetCell(id, j, 1, tostring(fcl.trdaccid),0)
SetCell(id, j, 2, tostring(kds),kds)
end
j = j + 1
end
end
end
end
-- *******************************************************************************************************
function main()
do_main=true
while isConnected()~=1 do sleep(100) end
sleep(5000) -- Для отображения таблицы после запуска квика
InitKDS()
while do_main do
if isConnected()==1 then
if is_run then
CalkKDS()
if IsWindowClosed(id) then is_run = false end
end
end
sleep(1000)
end
end
Валентин написал: квик должен вывалить сообщение, что, мол, синтаксическая ошибка в строке такой то скрипта такого то, или (если скрипт уже работает) - обращение к массиву, который nil (ошибка логики).
дублируются эти сообщения в том же окне, где список луа скриптов. при выборе нужного скрипта, внизу будет написана последняя ошибка
Вот в этом и проблема - не могу привязаться к окну и отследить сообщение об ошибке. Разбор окна "Lua скрипты" неясно как провести - перебирать все строки со скриптами через клики мышью? Не пройдет, квик может быть свернут да и вообще крайне ненадежно.
Думал над вариантом общего окна системных сообщений, например:
1 - Ошибки скриптов валятся в окно "Системные сообщения", скриптом autoit я это окно найду. 2 - Признак сообщений с ошибкой скрипта это "Syntax error while compiling...", и здесь проблема, которую не могу решить - как вытащить эти сообщения для разбора в autoit?
Пожалуйста уточните, как можно понять, что скрипт lua перестал работать или не запустился вместе со стартом квика (например по ошибке) и отправить в результате сообщение?
Хотел написать отдельный скрипт на autoit, но непонятно к чему привязаться, как отслеживать отвалившийся Lua скрипт?