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

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

Страницы: Пред. 1 2
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Еше ватиант bit.test(order.flags,Х), где Х - номер флага. Возвращает true или false.
Работает медленно, но зато даже на луа 5.1
Всё пройдет. Но это не точно.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
VPM написал:
Как безошибочно выяснять состояние флагов
r = order.flags & Х, где Х - вес соответствующего флага. r - 1 или 0, в зависимости от того, установлен флаг, или нет.
Всё пройдет. Но это не точно.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
nikolz, нафига их двигать, если можно сразу и пачкой:
Цитата
Ziveleos написал:
У каждого флага свой вес. Чтобы узнать состояние флагов, нужно в качестве второго операнда побитового И взять число, равное сумме весов интересующих флагов. Результат = сумме весов установленных флагов.Пример:Если order.flags & 5 == 4, заявка на продажу, не активна. ==1 - заявка на покупку, активна.
Всё пройдет. Но это не точно.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
nikolz, Вы мне объясняете?!
Всё пройдет. Но это не точно.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
Владимир написал:
Сейчас вероятность проблем со связью близка к нулю
Это смотря в каком городе Вы живете...
Всё пройдет. Но это не точно.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
VPM, в каком смысле пользоваться? Как выяснить состояние флагов, или как эту информацию использовать в торговле?
Всё пройдет. Но это не точно.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Владимир, это на случай проблем с интернетом, электричеством, или на сервере брокера, как это было со сбером, чтобы заявка не осталась с неприкрытой задницей. Ну и для ручной торговли.
Всё пройдет. Но это не точно.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Владимир, первый, в случае управления стопом тоже нужен. Если лимитированная снята, то стоп тоже нужно снять, если исполнена - то должен остаться.
Всё пройдет. Но это не точно.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Владимир, разумеется. И выставляется она на лимитированную заявку, которая может быть как на покупку, так и на продажу. Поэтому нужен второй бит.
Всё пройдет. Но это не точно.
Предотвращение убыточной продажи по TAKE_PROFIT_AND_STOP_LIMIT_ORDER
 
Цитата
Дмитрий Ш написал:
       OFFSET             = str_price(tostring(spread)),
       OFFSET_UNITS       = "PRICE_UNITS",
       SPREAD             = str_price(tostring(offset)),
Если не секрет, зачем менять местами отступ и спред?
Всё пройдет. Но это не точно.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Владимир, например, чтобы выставить/снять стоп-лосс, нужен еще и второй бит.
Всё пройдет. Но это не точно.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
VPM написал:
То есть так правильно?
Да.
Цитата
VPM написал:
order.flags - где нулевой где не нулевой не разберешь.
Руководство пользователя QLua > Описание битовых флагов.
У каждого флага свой вес. Чтобы узнать состояние флагов, нужно в качестве второго операнда побитового И взять число, равное сумме весов интересующих флагов. Результат = сумме весов установленных флагов.
Пример:
Если order.flags & 5 == 4, заявка на продажу, не активна. ==1 - заявка на покупку, активна.

Старая шутка: "Нашел в телефоне кнопку Вкл.бл, значит, где-то должна быть Выкл.нах."
Всё пройдет. Но это не точно.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
VPM написал:
То есть так правильно?
Нет. Если order.flags делится на 2 без остатка, то число чётное, нулевой бит равен 0, а это значит, что заявка не активна.

Цитата
VPM написал:
Все равно не пойму как их различать?
Что различать? Не понял вопроса.
Всё пройдет. Но это не точно.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Владимир, это у Вас. Контролировать состояние заявки бывает нужно в разных целях.
Всё пройдет. Но это не точно.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
VPM написал:
Можно утверждать что такая запись надежна?

В приведенном Вами примере контролируется нулевой бит, а описание почему-то взято от первого. А это все-таки разные вещи: ордер активен и ордер снят. По моему, определять лучше сразу оба бита.
Если bit.band(order.flags,3) или order.flags & 3 равно 3, то заявка снята, равно  2 - исполнена, 1 - активна.
Всё пройдет. Но это не точно.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Извините, что вмешиваюсь,

Цитата
VPM написал:
if (order.flags % 2) == 0 then -- Заявка снята. Если флаг не установлен и значение бита «0» равно «0», то заявка исполнена

чет/нечет - это проверка нулевого бита.
Из руководства:

Цитата
бит 0 (0x1)  Заявка активна, иначе – не активна
бит 1 (0x2)  Заявка снята. Если флаг не установлен и значение бита «0» равно «0», то заявка исполнена  

Есть еще вариант bit.test(order.flags,0), но чет/нечет самый быстрый.

Код
function main()
  order = getItem("orders", 1)
  start = os.clock()
  for i = 1, 1e6 do
    x = order.flags % 2
    --x = bit.band(order.flags,1)
    --x = bit.test(order.flags,0)  
  end
  message(tostring(os.clock() - start))
end

Всё пройдет. Но это не точно.
Таблица с измемениями открытого интереса
 
По моему, график гораздо нагляднее, чем цифры.
И скрипт писать не нужно.
Всё пройдет. Но это не точно.
Как реализовать "Карман транзакций", Как реализовать "Карман транзакций"
 
В терминале, клавиша F7  ->  Карман транзакций.
Всё пройдет. Но это не точно.
DelAllLabels приводит к "General Protection Fault", Вызов DelAllLabels при смене тикера приводит к падению QUIK с ошибкой "General Protection Fault"
 
Придумал!
Вот что ноосфера животворящая делает!

Код
      if lastLbl then
        repeat
          sleep(10)
          t_Lbl = GetLabelParams(iStr, lastLbl) -- Костыль. Ждем пока появится последняя метка.
        until t_Lbl
      end
      lastLbl = 0

<...>

        lbl_ID = AddLabel(iStr, arr)
        lastLbl = lastLbl + 1
      end


Но лучше, если бы не приходилось изобретать "костыли".
Разработчики! Поправьте на досуге.
Всё пройдет. Но это не точно.
DelAllLabels приводит к "General Protection Fault", Вызов DelAllLabels при смене тикера приводит к падению QUIK с ошибкой "General Protection Fault"
 
Стрелки: Arrows.zip
Всё пройдет. Но это не точно.
Тормоза в отрисовке меток в 10 версии
 
Цитата
Andrey Golik написал:
Уточните, пожалуйста, вы тоже столкнулись с этой проблемой?

Столкнулся со смежной проблемой: DelAllLabels приводит к "General Protection Fault"
Всё пройдет. Но это не точно.
DelAllLabels приводит к "General Protection Fault", Вызов DelAllLabels при смене тикера приводит к падению QUIK с ошибкой "General Protection Fault"
 
Значки почему-то не выкладываются.
Всё пройдет. Но это не точно.
DelAllLabels приводит к "General Protection Fault", Вызов DelAllLabels при смене тикера приводит к падению QUIK с ошибкой "General Protection Fault"
 
   Тестовый скрипт:
Скрытый текст

По-видимому, если во время восстановления меток после смены инструмента (график подключен к каналу), вызвать DelAllLabels, QUIK не выдерживает такой "шизофрении", и падает с криком "Internal exception happened".

Помогает только задержка, позволяющая QUIK восстановить все метки.
Как поймать момент окончания прорисовки, мне придумать так и не удалось, может быть разработчики что-нибудь подскажут?
Версия терминала - 10, но и на 7-ой всё то же самое.
Всё пройдет. Но это не точно.
Свободное перемещение графика
 
Цитата
Alexey Ivannikov написал:
Хамство и оскорбления - это по Вашему правильно? Мы Вас верно поняли?

Неверно.
И что значит "Мы"? Во множественном числе себя величали только самодержцы.
У высказывания есть форма и содержание. Имелось в виду именно содержание.

Цитата
Alexey Ivannikov написал:
Да, пользуются. И вполне довольны. Если Вы тоже считаете что пожелания, в которых заинтересованы 1-2-3 пользователя, должны выполняться " по щелчку" - то Вы ничего не понимаете в организации работы IT-Компании.

Ну, если "вполне довольны", то улучшений ждать не приходится. Зачем менять то, что и так работает замечательно?

Чего для мне что-то понимать  в организации работы IT-Компании? Достаточно сравнить ваш продукт с тем же приснопамятным TradingView, и с вами всё становится ясно.
Взять хотя бы возможность назначать оповещение на пересечение ценой любой линии, например, линии тренда.
Всё пройдет. Но это не точно.
Свободное перемещение графика
 
Alexey Ivannikov, Ваше высказывание очень важно для нас, дождитесь ответа.
Всё пройдет. Но это не точно.
Свободное перемещение графика
 
Цитата
Александр написал:
Прошел еще месяц, с предыдущего сообщения! Вы че там вообще делаете за наши бабки? В чем сложность убрать бесконечность Фибоначчи??? И так из-за вашего тупого стакана приходится в двух терминалах работать. Вы что на столько тупые что не можете сделать стакан как в МТ фибы как у всех не бесконечные и свободное перемещение графика в окне?*???? Это че прям сложность такая за столько лет или мозгов не хватает тупо посмотреть как у других? Вы сами через свое убожество торгуете или только пишите это уродство?  

А вопрос-то правильный.
Разработчики OUIK сами пользуются своим продуктом, или "чисто теоретически"?
Всё пройдет. Но это не точно.
Тормоза в отрисовке меток в 10 версии
 
Andrey Golik,  снова сделаете как в 7-ке, загружать картинки один раз, при старте скрипта, и хранить их в  randseed.bin в более "удобоваримом" виде?
Может быть лучше сохранять картинки в каком-нибудь буфере в оперативке, чтобы AddLabel брала их  оттуда?
Ну, или считывать картинки как userdata и использовать вместо адреса  картинки.
Всё пройдет. Но это не точно.
В чём преимущество OnInit
 
Цитата
VPM написал:
Ау, это форум о трейдинге?

Нет.
Это - Главная  » Основные форумы  » Программирование на языке Lua
Как и написано в "шапке".
Всё пройдет. Но это не точно.
В чём преимущество OnInit
 
Цитата
VPM написал:
Ziveleos,  
Цитата
Ziveleos написал:
Один FTP и HFT
Это мое авторство. И привлеку я Вас за наращение авторских прав.

Диву даешься!

Ведь кроме этой путаницы, в моих рассуждениях была путаница в логике!
Ну хоть один бы высказался на эту тему.

Ау, это форум о трейдинге?

Ещё один "не читатель"!
Это swerg написал обращаясь ко мне, а я его процитировал.
Похоже, путаница не только в логике и аббревиатурах.    
Всё пройдет. Но это не точно.
Депозит на демо, Нужно обновить
 
Здравствуйте!
Продлите пожалуйста доступ к учебному серверу для логина U0210625.

Спасибо.
Всё пройдет. Но это не точно.
В чём преимущество OnInit
 
Цитата
swerg написал:
Ziveleos, и? Я что-то неправильно написал? Тогда напишите в чем я неправ.

Один FTP и HFT путает, другой недоволен, что его не там процитировали.
А по делу-то что в итоге?

swerg, правильно, неправильно, не в этом дело.
Захотелось высказаться - воля Ваша. Меня-то зачем приплетать?
Всё пройдет. Но это не точно.
В чём преимущество OnInit
 
swerg, мои слова, процитированные Вами, были ответом Владимиру.
Для себя я все выяснил, о чем и высказывался уже в этой ветке.
Видимо, Вы поступили как в том анекдоте: "чукча - не читатель, чукча - писатель!"
Всё пройдет. Но это не точно.
В чём преимущество OnInit
 
VPM,
Цитата
VPM написал:
я делаю так

local path;
function OnInit (script_path)

--задаём переменные
path=getScriptPath()

script_path -- другая переменная

end

Так ведь:

Цитата
Алексей написал:
Имеется ввиду, что quik уже за Вас вызвал getScriptPath() и результат Вам подсовывает в качестве параметра при вызове OnInit(script_path).А уж будете Вы использовать этот "подарок" внутри OnInit или нет, дело Ваше  

Зачем Вам script_path от OnInit?
Всё пройдет. Но это не точно.
В чём преимущество OnInit
 
Цитата
Владимир написал:
OnInit по определению нужен лишь затем, чтобы что-то сделать до main. То есть это идеологический идиотизм.

Не столько до main, сколько до коллбэков.
Всё пройдет. Но это не точно.
В чём преимущество OnInit
 
Цитата
VPM написал:
В Чистом  луа прогоняю свою писанину

Еще раз:

Цитата
Ziveleos написал:
Зачем? В чистом lua и OnInit нет.
Всё пройдет. Но это не точно.
В чём преимущество OnInit
 
Владимир, просто давно интересовал этот вопрос: какая разница между body и OnInit, и зачем он вообще нужен?
Всё пройдет. Но это не точно.
В чём преимущество OnInit
 
Цитата
Nikolay написал:
Body скрипта выполняется в потоке терминала. Так что служебные переменные вполне себе инициализируются там.

А я что сказал?

Цитата
if до зарезу необходимо сделать что-то до начала работы коллбэков,
and в  этом "что-то" используются функции объявляемые позже, then
 
 без OnInit не  обойтись.
end
В остальном он на фиг не нужен.


Цитата
Nikolay написал:
Речь же про колбеки звучит странно, т.к. я слабо себе представляю использование колбеков в алгоритме, если они не обработаны все.

Если в самой функции коллбэка используется нечто не объявленное ранее, и он сработает, возникнет ошибка.
Поэтому это "нечто" нужно объявить до запуска main.
Всё пройдет. Но это не точно.
В чём преимущество OnInit
 
Владимир,  переменные окружения показывают разницу между body и OnInit.
Получается, если до зарезу необходимо сделать что-то до начала работы коллбэков, и в этом "что-то" используются функции объявляемые позже, то без OnInit не обойтись. В остальном он на фиг не нужен.
Всё пройдет. Но это не точно.
В чём преимущество OnInit
 
Цитата
VPM написал:
Не очень понятно что написали.

Скрипт выводит в файл список переменных окружения. Сначала body, потом OnInit, и сравнивает их.

Цитата
VPM написал:
идет инициализация переменно  file. <...> Я уже молчу что переменная  file записана  в глобальное поле.  

Одной переменной больше. И что?

Цитата
VPM написал:
getScriptPath() .функция QLUA. Запустите на чистом луа получите скандал!

Зачем? В чистом lua и OnInit нет.
Всё пройдет. Но это не точно.
В чём преимущество OnInit
 
Видимо, единственное преимущество OnInit в том, что в отличии от body, из неё можно вызывать  функции не объявленные ранее.
Ну, и  " В качестве параметра принимает значение полного пути к запускаемому скрипту."

Скрытый текст

Окружение  body и OnInit:

Скрытый текст
Всё пройдет. Но это не точно.
В чём преимущество OnInit
 
Владимир, что Вы называете вторым потоком?
Под  вторым потоком я подразумевал именно поток main, а коллбэки, BODY - это основной основной поток QUIK.
Всё пройдет. Но это не точно.
В чём преимущество OnInit
 
Владимир, Второй поток все-таки нужен, иначе QUIK замрёт, пока работает скрипт.
А вот, что касается:

Цитата
nikolz написал:
В том, что это этот колбек вызывается раньше всех других колбеков и раньше функции main.Без него у Вас колбеки будут вызываться раньше, чем будет вызвана функция main.

коллбэки начинают работать только вместе с main.

Код
qtes = {}
function OnQuote(class, sec )
  ql2 = getQuoteLevel2(class, sec)
  table.insert(qtes, ql2)
end

sleep(10000)

function main()
  --sleep(10000)
    message(tostring(#qtes))
end

Всё пройдет. Но это не точно.
В чём преимущество OnInit
 
И не нужно на меня кегль повышать.
Всё пройдет. Но это не точно.
В чём преимущество OnInit
 
Необходимые переменные и библиотеки перед запуском основного потока main() возможно инициализировать и в BODY.
Если скрипт не HFT, или вообще без коллбэков, получается OnInit не сильно нужен.  
Всё пройдет. Но это не точно.
В чём преимущество OnInit
 
Всё же, хотелось бы получить комментарий разработчика, в чем сакральный смысл функции OnInit?
Всё пройдет. Но это не точно.
Преобразование времени в число
 

Время сервера передается без начального нуля, поэтому предложенный код до 10 часов утра не работает. Вот немного доработанный вариант:

Код
-- Время сервера в числовой формат.
    local sT = getInfoParam("SERVERTIME") -- Время сервера в формате Ч:ММ:СС или ЧЧ:ММ:СС
    function DToN (s,i,j)
      return tonumber(string.sub(s, i, j)) -- Перевод цифр в числа.
    end
    srvTime = DToN(sT,-2,-1) + DToN(sT,-5,-4)*60 + DToN(sT,-8,-7)*3600 -- Количество секунд с начала суток.

Всё пройдет. Но это не точно.
Подскажите по использованию функции getParamEx и её параметру param_name
 
Цитата
Egor Zaytsev написал:
Цитата
Constantin написал:
Давно уже можно было бы указать в документации QLua GetParamEx сноску, где смотреть названия параметров! А то люди не находят и здесь спрашивают постоянно.
Добрый день,
     
      Документация будет дополнена в одной из очередных версий ПО.
      Приносим извинения за причиненные неудобства.
Прошли годы ...
Всё пройдет. Но это не точно.
Стоп лосс
 
Прошли годы...
Всё пройдет. Но это не точно.
Страницы: Пред. 1 2
Наверх