Сергей (Все сообщения пользователя)

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

Страницы: 1
Транзакция KILL_ALL_FUTURES_ORDERS и функция OnOrder()
 
Здравствуйте.

Подскажите, пожалуйста, при отправке транзакции 'KILL_ALL_FUTURES_ORDERS' должна ли вызываться функция OnOrder()?
Вроде должен меняться статус выставленных заявок и я жду ответа от OnOrder... а ответа нет :)
Работа функций OnStop() и SetCell(), Подвисает скрипт
 
Вообще странно, ведь, из описания OnStop следует, что эта функция для того и нужна, чтобы дать время для корректного завершения функции Main.
Ну ладно, думаю, надо просто принять к сведению, что после бесконечного цикла в Main не следует размещать какие-то важные или критичные части скрипта. :)
Самый лучший Telegram bot на lua
 
Цитата
Nikolay написал:
решения есть похожие по смыслу  https://nick-nh.github.io/2021-03-14/teleMessage
Добрый день. Ваш бот пока единственный из всех представленных на форуме, который мне удалось запустить :)
Я не особо программист, поэтому хотел бы спросить: в этом боте кроме sendMessage поддерживаются другие методы Telegram API? Как правильно задавать параметры для методов?
Например метод deleteMessage требует параметр message_id. Как правильно его задать в скрипте?
Работа функций OnStop() и SetCell(), Подвисает скрипт
 
Всем привет. Имеется простой скрипт:
Код
IsRun = true

function main()

   S_TAB = AllocTable()
   AddColumn(S_TAB, 1, "Param",true, QTABLE_STRING_TYPE, 18)
   CreateWindow(S_TAB)
   InsertRow(S_TAB, 1)

   while IsRun do
      sleep(1000)
   end

   SetCell(S_TAB, 1, 1, "Stopped")
   Message('Script stopped')

end

function OnStop()
   IsRun = false
end
Если вызывается функция OnStop(), то скрипт здорово подвисает при выполнении SetCell(). Подвисает настолько, что код после SetCell не успевает выполняться, т.к. заканчивается таймаут. Причём какой бы большой таймаут ни был, всё что после SetCell не выполняется. Это можно как-то исправить или побороть?
Если SetCell разместить внутри OnStop, то скрипт не зависает. Но мне нужно, чтобы SetCell была в Main. Если завершать работу скрипта другим способом (например IsRun = false в любом другом месте), то скрипт также не зависает, и SetCell и весь остальной код выполняется до конца.
Может есть какое-то ограничение, о котором я не знаю просто, и нельзя использовать функции для работы с таблицами, когда срабатывает OnStop?

Версия Квик 8.8.4.3

Не то, чтобы это была критичная проблема, но уж очень много времени я потратил на её поиск :)
Как бороться с nil?
 
Цитата
Старатель написал:
вы заблуждаетесь
Признаю. Для сравнений равно/не равно действительно работает. Не работает только для сравнений больше/меньше...
Но у меня-то проверка равенства.. почему вообще тогда ошибка возникла? Рядом в коде больше сравнений нет. Это на случай, если я строкой ошибся..
Ну ладно, вопрос в другом. Возможно ли такое, что функция getFuturesHolding возвращает таблицу, а в ней поле totalnet = nil? И в каких случаях? Просто надо понять, как обрабатывать такой результат...
Как бороться с nil?
 
Цитата
Старатель написал:
Кодif CheckPos ~= nil and POS ~= CheckPos.totalnet thenТакое сравнение вполне допустимо, даже если POS или totalnet есть nilОшибка в другом месте, смотрите номер строки с ошибкой.
Конечно я посмотрел номер строки. И ошибка возникает именно в этой строке со сравнением.
Я знаком с Луа только в пределах Квика. Возможно такое сравнение и допустимо, но Луа машина в Квике выдает ошибку при сравнении переменных, если одна из них nil...
Вообще данный случай возник лишь один раз за всё время работы скрипта. Но лучше уж знать причины возникновения ошибки.  
Как бороться с nil?
 
Позвольте продолжить тему.
Есть фрагмент кода:
Код
local CheckPos = getFuturesHolding('MC0061900000',ACCOUNT,SEC_CODE,0)

if CheckPos ~= nil and POS ~= CheckPos.totalnet then
    ...
end  

В какой-то момент выпала ошибка attempt to compare with nil.

Переменная POS изначально определяется, как равная 0 и затем ей присваиваются разные значения. То есть она никогда не бывает nil. CheckPos тоже проверяется на nil, значит ошибка возникает из-за поля totalnet.

Я всегда думал, что если getFuturesHolding не возвращает nil, то все поля таблицы содержат какие-то значения и не бывают пустыми (например нули). Получается, что в определенные моменты допускается, что поля таблицы могут быть nil? Это результат ошибки или всё таки это допустимо? В каких тогда случаях может возникать nil в поле totalnet?

Что за бред с параметрами Lua индикаторов в Quik 8.8???
 
Дробные значения тоже не вводятся. Обратите внимание, пожалуйста.
Что за бред с параметрами Lua индикаторов в Quik 8.8???
 
Почему в Quik 8.8 я не могу установить значение параметра lua индикатора больше 999??? Что за бред??? В 8.2 можно было вводить любые значения!
Архив графика RIZ9 5 мин., Поделитесь локальным архивом, плз.
 
Привет.
Поделитесь, пожалуйста, если у кого есть, локальным архивом на фьючерс РТС 5 минут (RIZ9 на текущий момент). Нужна склейка за 6 или более месяцев.
Заранее благодарен.
Косяк с графиками в 7.18
 
В версии 7.18.1.20 если добавить на график индикатор Bollinger Bands, то значения цены, которые отображаются рядом с курсором, начинают выводиться с точностью до 6 знаков после запятой. Даже если у инструмента шаг цены 1 руб. Очень неудобно.  
Адаптация интерфейса под большие разрешения экрана.
 
Здравствуйте.

Прошу Вас доработать интерфейс программы под большие разрешения экрана от 1920*1080 и выше.
Шрифты я где возможно увеличил и включил настройку "Большие кнопки".
Настройка "Большие кнопки", конечно, немного помогает, но не до конца:
- Панель торговли в стакане котировок так и остается мелкой - пользоваться ей просто невозможно.
- Также не меняется размер вкладок - они так и остаются маленькими.
- Остаются мелкими всплывающие подсказки, например, при наведении курсора на свечу.
- Инструмент "линейка" также бесполезен, т.к. его окошко мелкое, и в нём ничего не видно.

На особо высоких разрешениях даже при настройке "Большие кнопки" иконки все равно мелковаты. Добавьте, пожалуйста еще настройку "Огромные кнопки".

Спасибо.
Страницы: 1
Наверх