Как можно отключить двухфакторную аутентификацию при входе в терминал
Пользователь
Сообщений: Регистрация: 02.02.2023
16.11.2024 03:18:26
С дебилами из поддержки СБЕРА по этому вопросу спорить бесполезно. Эти придурки, чтобы убрать СМС подтверждения, мне в VDS предложили USB-токен вставить. В общем это не лечится. Я предполагаю, что они технически не могут отключить это, так как софт им допиливает сторонняя организация и своих программистов у них нет, а делать заявку и платить за переделку, они от жадности задушатся. Меняйте брокера на ВТБ или Альфу, но в Альфе гемор с электронной подписью, раз в квартал у меня она ломалась, а перезаказ новой от суток.
А где можно взять C++DLL для отправки http запросов из Lua?
getScriptPath() - Как присвоить переменную, Нужна помощь новичку
Пользователь
Сообщений: Регистрация: 02.02.2023
14.08.2024 01:10:36
Цитата
АндрейС написал: Помогите разобраться. FileStart = (getScriptPath().."\\".."D:\5.1\lua\setka_start.txt"), не пойму как правильно записать чтоб не ругался компилятор.
Абсолютные пути желательно никогда не использовать.
getScriptPath() - Как присвоить переменную, Нужна помощь новичку
Пользователь
Сообщений: Регистрация: 02.02.2023
14.08.2024 01:03:46
Код
function OnInit(script_path)
_G.script_path = tostring(script_path) -- полное имя файла скрипта с путем
TRANSACTION_COMPLETED= {} -- таблица выполненных трензакций
end
_G.ScriptName = script_path:match("(.+)%..+$"):sub(#script_path-script_path:reverse():find("\\")+2) -- сокращенное название торгового скрипта
local ScriptFolder = getScriptPath() -- папка скрипта
local DataScriptFolder = ScriptFolder.."\\"..ScriptName -- папка данных скрипта
local ScreenFolder = DataScriptFolder.."\\".."screenshots" -- папка скриншотов скрипта
_G.LabelFolder = DataScriptFolder.."\\".."labels" -- папка меток скрипта
local LogFile = DataScriptFolder.."\\"..ScriptName.."_log.txt" -- лог файл
local DataFile = DataScriptFolder.."\\"..ScriptName.."_data.txt" -- файл с результатами
----------------------------------------------------------------------------------------------------------------------
package.path = package.cpath..";"..ScriptFolder..";"..DataScriptFolder..";"..ScriptFolder.."\\module.lua"..";"..ScriptFolder.."\\module.luac";
require "module"
mes("Версия ".._VERSION,1)
mes("Запуск скрипта "..script_path,1)
сообщение в Telegram - это просто
Пользователь
Сообщений: Регистрация: 02.02.2023
14.08.2024 00:45:57
Вопрос только в том, как убрать мелькание командного окна.
сообщение в Telegram - это просто
Пользователь
Сообщений: Регистрация: 02.02.2023
14.08.2024 00:34:34
Код
-------------------------------------------------------------------------------------------------------------
--------------------------------------отправка сообщений в telegram------------------------------------------
-------------------------------------------------------------------------------------------------------------
function telegram_msg(tmsg,chat)
if TELEGRAM_ON then
if tmsg~=nil and tmsg~="" and chat~=nil and chat~="" then
local hour = tonumber(os.date("%H"))
local tURL="https://api.telegram.org"
--local tmsg = AnsiToUtf8(tmsg)
local dis_not = (hour>=tHourStart and hour<=tHourEnd) and "false" or "true" -- отключение звука сообщения согласно настроек config файла
local str = string.format("curl -X GET \"%s/bot%s/sendChatAction?chat_id=%s&action=typing",tURL,tToken,chat) -- бот печатает
local msg = os.execute('start /MIN '..str)
sleep(1500) -- время набора текста ботом
local str = "curl -X GET \""..tURL.."/bot"..tToken.."/sendMessage?disable_notification="..dis_not.."\" -d \"&parse_mode=html&chat_id="..chat.."&text="..tmsg.."\""
local msg = os.execute('start /MIN '..str)
else
mes(string.format("%s - %s - Сообщение [%s] не отправлено в чат %s", ScriptName, sec_code,tostring(tmsg),tostring(chat)),3)
end
end
end
-------------------------------------------------------------------------------------------------------------
--------------------------------------отправка стикера в telegram--------------------------------------------
-------------------------------------------------------------------------------------------------------------
function telegram_stick(tstick,chat)
LastTelPost=Timer
if TELEGRAM_ON and STICK_ON then
if tstick~=nil and tstick~="" and chat~=nil and chat~="" then
local hour=tonumber(os.date("%H"))
local tURL="https://api.telegram.org"
local dis_not = (hour>=tHourStart and hour<=tHourEnd) and "false" or "true"
local str = string.format("curl -X GET \"%s/bot%s/sendSticker?disable_notification=%s&parse_mode=html&chat_id=%s&sticker=%s",tURL,tToken,dis_not,chat,tstick)
local msg = os.execute('start /MIN '..str)
else
mes(string.format("%s - %s - Стикер %s не отправлен в чат %s", ScriptName, sec_code,tostring(tstick),tostring(chat)),3)
end
end
end
Цена открытия утренней сессии
Пользователь
Сообщений: Регистрация: 02.02.2023
14.08.2024 00:01:07
Добрый день. Как в течении дня (до 23.50) узнавать цену открытия утренней сессии? Попробовал getParamEx(class_code, sec_code, "AUCTPRICE").param_value), вроде бы устроило, но оказалось, что вечером это значения становится нулевым. Может ка-то по другому можно?
сообщение в Telegram - это просто
Пользователь
Сообщений: Регистрация: 02.02.2023
13.08.2024 23:54:43
Цитата
Станислав написал: И еще интересно, какие уведомления вы используете в своих скриптах, например, сделки и так отображаются в приложении брокера и более информативны чем просто текст.
Мой робот полностью сопровождает сделку и информирует о результатах, а со зверушкой веселее. Часто даже на буквы не смотрю, картинка все объясняет.
написал: Может быть, все-таки, чтобы не мучать пользователей тестирующих свои стратегии в Quik, добавить функционал загрузки старых данных в график Quik?
Этой проблеме сто лет в обед, она навряд ли будет решена, к сожалению. Вы быстрее освоите другие платформы для тестирования автоматических стратегий (tradingview, backtrader, ...). Альтернативно Вы можете автоматизировать устранение перемешивания, если умеете редактировать DAT файлы с свечами (я умею, но это не бесплатно и с ограничениями, наложенными форматом), и далее адаптировать свои скрипты, чтобы они работали с ограниченной по времени частью свечей.
Я так все и делаю, но это идиотизм идиотизм и извращение в чистом виде. Через одно место сделать можно, а просто выбрать файл и загрузить его в график нельзя. Это, какой-то, позор. Нормальному программисту это на 15 минут работы. Разработчики, пожалуйста, обратите, наконец-то, на этот вопрос внимание!
Как в Quik открыть старый файл с данными
Пользователь
Сообщений: Регистрация: 02.02.2023
16.07.2024 17:18:16
Цитата
Andrey Golik написал: , загрузить такой файл дополнительно возможности нет. Можем предложить Вам заменить текущий файл с данными для построения графика по инструменту на файл с архивными данными, который есть у Вас. Однако, мы не знаем, за какой период у Вас собраны данные, поэтому корректность отображения после такой операции под вопросом. Для осторожности можно сделать резервную копию текущего файла SPBFUT_SiU3_1.dat из папки с терминалом. Файлы с данными для построения графика хранятся в папке archive.
Да я так и делаю, но вы понимаете как это осложняет работу с Quik? После переподчинения к серверу данные в таком графике перемешиваются с данными подменного инструмента, и приходится всё делать заново. А когда таких файлов десятки, то превращается в кошмар. Может быть, все-таки, чтобы не мучать пользователей тестирующих свои стратегии в Quik, добавить функционал загрузки старых данных в график Quik?
Для этого предназначено ПО - редактор архива данных для графиков. Скачать само ПО и документацию к нему можно по .
Вы меня, наверно, не правильно поняли. Мне не нужно конвертировать файлы DAT в TXT при помощи программы на которую вы мне дали ссылку. Я спрашивал как в именно в самом Квике в график загрузить нужный мне файл?
Кнопки сортировки файлов в окне запуска скриптов, Просьба добавить функционал
Пользователь
Сообщений: Регистрация: 02.02.2023
16.07.2024 16:37:37
Здравствуйте. Уважаемые разработчики, добавьте пожалуйста функционал ручной сортировки (настройки) списка файлов в окне запуска скриптов Lua. Нужны две кнопки - Переместить в вверх и Переместить вниз, так как это у вас реализовано везде в настройках полей таблиц. Постоянно удалять все файлы и патом открывать их в нужном мне порядке это просто мучение. Заранее благодарю.
Хочется функцию CreateWindowEx...
Пользователь
Сообщений: Регистрация: 02.02.2023
16.07.2024 16:27:40
Тоже очень нужна данная функция. Окна таблиц создаются не в той вкладке где нужно, а там где окно с запуском скриптов. Сначала перетягивал, потом сделал паузу перед созданием таблицы, чтобы успевать переключаться на нужную вкладку, но это бред.
Кстати вопрос почему нельзя делать копию окна запусков скриптов, чтобы иметь его на каждой нужной вкладке?
Как в Quik открыть старый файл с данными
Пользователь
Сообщений: Регистрация: 02.02.2023
16.07.2024 16:14:40
Здравствуйте. Подскажите пожалуйста, как в Quik открывать в графике файлы с данными для графиков по типу SPBFUT_SiU3_1.dat по истекшим фьючерсам? Имеется острая необходимость тестирования данных временных периодов, но как загружать такие файлы в график Quik понять не могу. В свойствах диаграммы при нажатии изменить инструмент высвечиваются только фьючерсы с не истекшим временем экспирации. Переключатель - Только активные инструменты тоже никаких не влияет на отображение истекших фьючерсов. Как все же загружать исторические данные по истекшим фьючерсам в график Quik?
Удаление меток из графика Quik
Пользователь
Сообщений: Регистрация: 02.02.2023
10.07.2024 10:53:37
Добрый день. Да пожалуйста зарегистрируйте пожелание , чтобы функция DelAllLabels в окнах с несколькими графиками (областями построения) удаляло метки только в указанном в этой функции графике, а не во всём окне. И чтобы команда "Удалить - Все метки в диаграмме" - удаляло метки только из выбранной области построения, а не из всего окна. Так же как это реализовано с трендовыми линиями "Удалить - Все линии трендов и фигуры", где удаление производится только из выбранной области построения. Пример: имеется окно с двумя графиками с идентификаторами цен D_Graph1="Si1" и D_Graph2="Si2" команда DelAllLabels(ID_Graph2) должна удалять метки только из графика ID_Graph2. Метки в графике D_Graph1 должны оставаться на месте. Заранее благодарю.
Снять защиту с робота на LUA, Снять защиту с робота на lua, привязанного к закрытому счёту
Пользователь
Сообщений: Регистрация: 02.02.2023
08.07.2024 15:33:56
Компилировать файл с настройками это за гранью добра и зла. Что программисту мешало сделать конфиг файл? А абсолютные пути к файлам это вообще лютейший ад.
Удаление меток из графика Quik
Пользователь
Сообщений: Регистрация: 02.02.2023
06.07.2024 15:08:52
Здравствуйте. Имеется окно графика Quik разделенное на два графика. У каждого графика имеется свой идентификатор цены. D_Graph1="Si1" D_Graph2="Si2" По какой-то неведомой причине команда DelAllLabels(ID_Graph1) удаляет метки из обоих графиков. Тоже самое и с командой DelAllLabels(ID_Graph2). Тоже удалятся метки из обоих графиков, хотя удаление требуется только из конкретно указанного.
Если делать удаление в ручную, "Удалить-Все метки в диаграмме", то тоже метки удаляются из обоих графиков (всего окна хотя написано в диаграмме), но вот если удалять трендовые линии "Удалить-Все линии трендов и фигуры в окне", то удаляются только линии того графика на на котором нажмешь удаление, и это правильно хоть и написано "в окне" Тогда почему метки удаляются из всех графиков? Можно сделать чтобы метки удалялись только из указанного графика а не из всего окна?
Как узнать расписание торгов в Quik, расписание торгов Lua Quik
Пользователь
Сообщений: Регистрация: 02.02.2023
11.06.2024 18:55:41
Цитата
none написал: EV_SESS_ALLOWED = "Да", в таблице это столбец "Доп.сесcия"
Код
local EV_SESS_ALLOWED = getParamEx(class_code,sec_code, 'EV_SESS_ALLOWED').param_value -- Тригер наличия вечерней сессии
local EV_SESS_ALLOWED = getParamEx(class_code,sec_code, 'EV_SESS_ALLOWED').param_image -- Тригер наличия вечерней сессии
Первое дает 0 второе вообще пустоту Как его правильно вытащить?
Как узнать расписание торгов в Quik, расписание торгов Lua Quik
Пользователь
Сообщений: Регистрация: 02.02.2023
05.06.2024 11:58:30
Огромная благодарность. Действительно в таблице текущих торгов есть поля с временем "Начало веч. Окончание веч."У фьючерсов время указано, так как они торгуются вечером, а у инструментов которые не торгуются в вечернюю сессию эти поля пустые.
Как узнать расписание торгов в Quik, расписание торгов Lua Quik
Пользователь
Сообщений: Регистрация: 02.02.2023
05.06.2024 00:42:42
Добрый день. Подскажите пожалуйста, существует ли возможность посредством Lua и Quik узнавать расписание торгов по нужному инструменту? В частности интересуют часы работы срочного рынка. Именно часы, а не статус торгов, или время закрытия торгового дня, или хотя бы будет ли сегодня торговаться вечерняя сессия или нет. Понятно, что расписание меняется редко, но иногда оно все же меняется, и нужно знать когда закрывать позицию (не оставлять на ночь) в конце дневной или вечерней сессии.
написал: dis_not = true and false or true dis_not = false and false or true дают одинаковые значение true? Ведь должны давать разные.если сделать такКод dis_not = true and true or false dis_not = false and true or false
приоритет логических операций определяется их порядком слева на право. -------------------------- В данных примерах первым исполняется AND потом OR true and false ==false true and true==true ----------------- в итоге имеем dis_not = (true and false) or true=(false or true)=true dis_not = (false and false) or true= true --------------------- dis_not = (true and true) or false=true dis_not = (false and true) or false =(false or false)=false ----------------- в результат всех операторов : true true true false ================= Резюме: Автор не знает булевой алгебры. читайте учебники.
Не знаю поэтому и спрашиваю. Учебники будем читать когда скрипт допишем:)
Еще оказывается. Так как мне переменная нужна была для сборки командной строки для телеграмм для параметра disable_notification, можно было результат получать в кавычках. dis_not = true and "false" or "true"а если потом нужно было boolean значение то пользоваться функцией function toboolean(str) local bool = false if str == "true" then bool = true end return bool end
Ошибка присвоения значения переменной
Пользователь
Сообщений: Регистрация: 02.02.2023
03.02.2023 13:06:08
Цитата
Sergey Gorokhov написал: по правилам, раз нет скобок, то проверка по очереди распишите выражение на два сначала temp = true and false --получим false потом dis_not= temp or true --получим true
это то же самое что dis_not= true and false or true --получим true
Наконец то понял, так как первый результат false продолжает вычисляться второе выражение. Но если условие после равно истинно, мне нужно получать именно первый результат после and, независимо от того false оно или нет.
поменял код на dis_not = not true and true or false или
dis_not = not false and true or false все стало работать как нужно. Благодарю.
Ошибка присвоения значения переменной
Пользователь
Сообщений: Регистрация: 02.02.2023
03.02.2023 12:20:49
Видимо я что-то недопонимаю в вашем ответе. Ваш ответ рушит всю логику выражения.
вы написали "true and false, результат - false;"
Вы это выражение имели ввиду dis_not = true and false or true ?
Если речь о нем, то оно не дает false у меня оно дает true, хотя должно и просто обязано выдать false, так как после and стоит первым false, а условие после "=" истинно Пожалуйста напишите, какой результат по вашему должно дать выражение dis_not=true and false or true
"1) исчисляется true and false, результат - false" но результат НЕ false. Hезультат выполнения true. Хотя должен быть false.
Результат исчисления "true and false" - false , расхождений поведения программы с ожидаемым результатом нет. Просим Вас уточнить, каким образом Вы получили результат true для выражения "true and false".
Прилагаю скрин как я это делаю и какой результат получаю.
Ошибка присвоения значения переменной
Пользователь
Сообщений: Регистрация: 02.02.2023
03.02.2023 10:22:25
Добрый день.
Цитата
Anton Belonogov написал: Необходимо принимать во внимание порядок выполнения логических операций: конъюнкция ("and") имеет более высокий приоритет, чем дизъюнкция ("or").Рассмотрим приведенные Вами выражения: Кодdis_not = true and false or true 1) исчисляется true and false, результат - false; 2) исчисляется false (результат п.1) or true, результат - true.
В том то и дело, что должен быть приоритет у and а его в выражении dis_not = true and false or true нет вы написали результат "1) исчисляется true and false, результат - false" но результат НЕ false. Hезультат выполнения true. Хотя должен быть false. Выполните пожалуйста команду убедитесь.
Ошибка присвоения значения переменной
Пользователь
Сообщений: Регистрация: 02.02.2023
02.02.2023 21:53:41
Добрый день. Подскажите почему строки
Код
dis_not = true and false or true
dis_not = false and false or true
дают одинаковые значение true? Ведь должны давать разные.
если сделать так
Код
dis_not = true and true or false
dis_not = false and true or false
то все правильно выдает. В зависимости от от значения или true или false. А в первом варианте всегда true true. Может это глюк LUA?