VargoR (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Как можно отключить двухфакторную аутентификацию при входе в терминал
 
С дебилами из поддержки СБЕРА по этому вопросу спорить бесполезно. Эти придурки, чтобы убрать СМС подтверждения, мне в VDS предложили USB-токен вставить. В общем это не лечится. Я предполагаю, что они технически не могут отключить это, так как софт им допиливает сторонняя организация и своих программистов у них нет, а делать заявку и платить за переделку, они от жадности задушатся. Меняйте брокера на ВТБ или Альфу, но в Альфе гемор с электронной подписью, раз в квартал у меня она ломалась, а перезаказ новой от суток.
сообщение в Telegram - это просто
 
Цитата
nikolz написал:
Цитата
Nikolay написал:
io.popen в окружении терминала все равно поднимает окно.
тогда придется использовать API C for Lua
и написать такую функцию для отправки сообщений:
Код
  static int shell(lua_State *  L){  ShellExecuteA( 0 ,"open", (char * )lua_tostring(L,  1 ),(char * )lua_tostring(L, 2 ), 0 , 0 ); return   0 ; }
  
А где можно взять C++DLL для отправки http запросов из Lua?
getScriptPath() - Как присвоить переменную, Нужна помощь новичку
 
Цитата
АндрейС написал:
Помогите разобраться. FileStart = (getScriptPath().."\\".."D:\5.1\lua\setka_start.txt"), не пойму как правильно записать чтоб не ругался компилятор.
Абсолютные пути желательно никогда не использовать.
getScriptPath() - Как присвоить переменную, Нужна помощь новичку
 
Код
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 - это просто
 
Вопрос только в том, как убрать мелькание командного окна.
сообщение в Telegram - это просто
 
Код
-------------------------------------------------------------------------------------------------------------
--------------------------------------отправка сообщений в 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
Цена открытия утренней сессии
 
Добрый день. Как в течении дня (до 23.50) узнавать цену открытия утренней сессии?
Попробовал getParamEx(class_code, sec_code, "AUCTPRICE").param_value), вроде бы устроило, но оказалось, что вечером это значения становится нулевым.
Может ка-то по другому можно?
сообщение в Telegram - это просто
 
Цитата
Станислав написал:
И еще интересно, какие уведомления вы используете в своих скриптах, например, сделки и так отображаются в приложении брокера и более информативны чем просто текст.

Мой робот полностью сопровождает сделку и информирует о результатах, а со зверушкой веселее. Часто даже на буквы не смотрю, картинка все объясняет.
Как в Quik открыть старый файл с данными
 
Цитата
funduk написал:
Цитата
VargoR написал:
Может быть, все-таки, чтобы не мучать пользователей тестирующих свои стратегии в Quik, добавить функционал загрузки старых данных в график Quik?
Этой проблеме сто лет в обед, она навряд ли будет решена, к сожалению. Вы быстрее освоите другие платформы для тестирования автоматических стратегий (tradingview, backtrader, ...). Альтернативно Вы можете автоматизировать устранение перемешивания, если умеете редактировать DAT файлы с свечами (я умею, но это не бесплатно и с ограничениями, наложенными форматом), и далее адаптировать свои скрипты, чтобы они работали с ограниченной по времени частью свечей.
Я так все и делаю, но это идиотизм идиотизм и извращение в чистом виде. Через одно место сделать можно, а просто выбрать файл и загрузить его в график нельзя. Это, какой-то, позор. Нормальному программисту это на 15 минут работы. Разработчики, пожалуйста, обратите, наконец-то, на этот вопрос внимание!
Как в Quik открыть старый файл с данными
 
Цитата
Andrey Golik написал:
VargoR, загрузить такой файл дополнительно возможности нет. Можем предложить Вам заменить текущий файл с данными для построения графика по инструменту на файл с архивными данными, который есть у Вас. Однако,  мы не знаем, за какой период у Вас собраны данные, поэтому корректность отображения после такой операции под вопросом. Для осторожности можно сделать резервную копию текущего файла SPBFUT_SiU3_1.dat из папки с терминалом. Файлы с данными для построения графика хранятся в папке archive.
Да я так и делаю, но вы понимаете как это осложняет работу с Quik? После переподчинения к серверу данные в таком графике перемешиваются с данными подменного инструмента, и приходится всё делать заново. А когда таких файлов десятки, то превращается в кошмар. Может быть, все-таки, чтобы не мучать пользователей тестирующих свои стратегии в Quik, добавить функционал загрузки старых данных в график Quik?
Как в Quik открыть старый файл с данными
 
Цитата
Andrey Golik написал:
VargoR, добрый день.

Для этого предназначено ПО - редактор архива данных для графиков. Скачать само ПО и документацию к нему можно по  ссылке .
Вы меня, наверно, не правильно поняли. Мне не нужно конвертировать файлы DAT в TXT при помощи программы на которую вы мне дали ссылку. Я спрашивал как в именно в самом Квике в график загрузить нужный мне файл?
Кнопки сортировки файлов в окне запуска скриптов, Просьба добавить функционал
 
Здравствуйте. Уважаемые разработчики, добавьте пожалуйста функционал ручной сортировки (настройки) списка файлов в окне запуска скриптов Lua.
Нужны две кнопки - Переместить в вверх и Переместить вниз, так как это у вас реализовано везде в настройках полей таблиц.
Постоянно удалять все файлы и патом открывать их в нужном мне порядке это просто мучение. Заранее благодарю.
Хочется функцию CreateWindowEx...
 
Тоже очень нужна данная функция. Окна таблиц создаются не в той вкладке где нужно, а там где окно с запуском скриптов. Сначала перетягивал, потом сделал паузу перед созданием таблицы, чтобы успевать переключаться на нужную вкладку, но это бред.

Кстати вопрос почему нельзя делать копию окна запусков скриптов, чтобы иметь его на каждой нужной вкладке?
Как в Quik открыть старый файл с данными
 
Здравствуйте. Подскажите пожалуйста, как в Quik открывать в графике файлы с данными для графиков по типу SPBFUT_SiU3_1.dat по истекшим фьючерсам?
Имеется острая необходимость тестирования данных временных периодов, но как загружать такие файлы в график Quik понять не могу.
В свойствах диаграммы при нажатии изменить инструмент высвечиваются только фьючерсы с не истекшим временем экспирации.
Переключатель - Только активные инструменты тоже никаких не влияет на отображение истекших фьючерсов.
Как все же загружать исторические данные по истекшим фьючерсам в график Quik?
Удаление меток из графика Quik
 
Добрый день. Да пожалуйста зарегистрируйте пожелание , чтобы функция DelAllLabels в окнах с несколькими графиками (областями построения) удаляло метки только в указанном в этой функции графике, а не во всём окне.  И чтобы команда "Удалить - Все метки в диаграмме" - удаляло метки только из выбранной области построения, а не из всего окна. Так же как это реализовано с трендовыми линиями "Удалить - Все линии трендов и фигуры", где удаление производится только из выбранной области построения.
Пример: имеется окно с двумя графиками с идентификаторами цен  D_Graph1="Si1" и D_Graph2="Si2" команда DelAllLabels(ID_Graph2) должна  удалять метки только из графика ID_Graph2. Метки в графике D_Graph1  должны оставаться на месте. Заранее благодарю.
Снять защиту с робота на LUA, Снять защиту с робота на lua, привязанного к закрытому счёту
 
Компилировать файл с настройками это за гранью добра и зла. Что программисту мешало сделать конфиг файл?
А абсолютные пути к файлам это вообще лютейший ад.
Удаление меток из графика Quik
 
Здравствуйте. Имеется окно графика Quik разделенное на два графика.
У каждого графика имеется свой идентификатор цены.
D_Graph1="Si1"
D_Graph2="Si2"
По какой-то неведомой причине команда DelAllLabels(ID_Graph1) удаляет метки из обоих графиков.
Тоже самое и с командой DelAllLabels(ID_Graph2). Тоже удалятся метки из обоих графиков, хотя удаление требуется только из конкретно указанного.

Если делать удаление в ручную, "Удалить-Все метки в диаграмме", то тоже метки удаляются из обоих графиков (всего окна хотя написано в диаграмме), но вот если удалять трендовые линии "Удалить-Все линии трендов и фигуры в окне", то удаляются только линии того графика на на котором нажмешь удаление, и это правильно хоть и написано "в окне"
Тогда почему метки удаляются из всех графиков?
Можно сделать чтобы метки удалялись только из указанного графика а не из всего окна?
Как узнать расписание торгов в Quik, расписание торгов Lua Quik
 
Цитата
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
 
Огромная благодарность. Действительно в таблице текущих торгов есть поля с временем "Начало веч. Окончание веч."У фьючерсов время указано, так как они торгуются вечером, а у инструментов которые не торгуются в вечернюю сессию эти поля пустые.
Как узнать расписание торгов в Quik, расписание торгов Lua Quik
 
Добрый день. Подскажите пожалуйста, существует ли возможность посредством Lua и Quik узнавать расписание торгов по нужному инструменту?
В частности интересуют часы работы срочного рынка. Именно часы, а не статус торгов, или время закрытия торгового дня, или хотя бы будет ли сегодня торговаться вечерняя сессия или нет.
Понятно, что расписание меняется редко, но иногда оно все же меняется, и нужно знать когда закрывать позицию (не оставлять на ночь) в конце дневной или вечерней сессии.


 
Ошибка присвоения значения переменной
 
Цитата
nikolz написал:
Цитата
VargoR написал:
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
Ошибка присвоения значения переменной
 
Цитата
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
все стало работать как нужно.
Благодарю.
Ошибка присвоения значения переменной
 
Видимо я что-то недопонимаю в вашем ответе.
Ваш ответ рушит всю логику выражения.

вы написали "true and false, результат - false;"

Вы это выражение имели ввиду dis_not  =   true    and   false   or   true ?  

Если речь о нем, то оно не дает false у меня оно дает true, хотя должно и просто обязано выдать false, так как после and стоит первым false, а условие после "=" истинно
Пожалуйста напишите, какой результат по вашему должно дать выражение dis_not=true and false or true
Ошибка присвоения значения переменной
 
Цитата
Anton Belonogov написал:
VargoR,

Цитата
"1) исчисляется true and false, результат - false" но результат НЕ false. Hезультат выполнения true. Хотя должен быть false.

Результат исчисления "true and false" -  false , расхождений поведения программы с ожидаемым результатом нет.
Просим Вас уточнить, каким образом Вы получили результат  true  для выражения "true and false".
Прилагаю скрин как я это делаю и какой результат получаю.
Ошибка присвоения значения переменной
 
Добрый день.
Цитата
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. Выполните пожалуйста команду убедитесь.
Ошибка присвоения значения переменной
 
Добрый день. Подскажите почему строки
Код
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?
Страницы: 1
Наверх