Коля Маржин (Все сообщения пользователя)

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

Страницы: 1
запуск GUI на lua дистрибутиве отдельном от quik, qvcl gui на 32bit lua
 
У меня до сегодня был прекрасный интерфейс к роботу на библиотеке qvcl, но в связи с тем что сегодня все квики только 64bit а qvcl там не работает, то было принято решение запускать gui на 32bit Lua отдельном от quik.


Всё запустилось и основной необходимый мне функционал работает (кнопочки жмутся, данные шлются в квик через файл), но весь код который после инициализации окна ShowModal не запускается пока окно не закроется - я не могу обновлять данные в окне автоматически (вслед за обновлённым файлом настроек окна). Если окно инициировать по Show и после него ставить вечный цикл с синтетическим sleep на основе ping (в неквиковом lua функции sleep нет) то окно зависает. Есть у кого-нибудь идея, как, не закрывая окно, после его инициализации сделать цикл типа функции main в квиковом lua из которого можно было бы менять настройки окна?  
Библиотека qvcl x64. Отрисовка интерфесов в восьмом квике
 
Кто-нибудь смог запустить qvcl на восьмом квике? У меня обе версии выложенные здесь не подгружаются https://quik2dde.ru/viewtopic.php?id=26&p=3

Есть ещё vcl пятой версии на 64 бита, но она тоже не полетела https://sourceforge.net/projects/vclua/files/vclua-v0.5.0/

Вообще не понятно на чём интерфейс рисовать. Кто как вышел из этой ситуации? Отдельный от чтоль от квика софт писать и подключать по сокетам?
контроль исколнения многоконтрактовой заявки в quik 8.6
 
Всем большое спасибо! Много полезного нашёл ещё здесь https://forum.quik.ru/forum10/topic4342/
контроль исколнения многоконтрактовой заявки в quik 8.6
 
Уважаемые мэтры роботизированной торговли,

Очень давно мной был написан робот, но последняя версия квика на которой он адекватно работает это 6.17 - потом что-то обновили в серверной филармонии и OnTrade() в следующей версии квика при случившейся сделке вместо одного раза начал срабатывать два раза, поэтому до сего дня скрипт успешно крутится на quik 6.17, но всвязи с очередным подарком биржи гдрядёт неизбежный переезд на quik 8.6. Засим вопрос к многоуважаемой аудитории:

Как лучше всего контролировать процесс исполения заявки скажем на 20 контрактов? Я отправляю заявку под своим номером, по OnOrder() я получаю номер заявки в системе, дальше по OnTrade() будут сыпаться сделки по допустим одному контракту (и по предыдущему опыту подозреваю что при сделке на один контракт OnTrade() может срабатывать дважды) - как это всё контролировать? Есть идея вытавлять пулемётной очередью 20 заявок по одному контракту вместо одной заявки на 20 контрактов - но тут будет нюанс с ограничением биржи на 50 заявок в секунду, таких очередей в скунду может быть больше трёх.


Не подскажите как разрешить вопрос контроля исполнения многоконтрактной заявки наиболее интеллегентым методом? Заранее спасибо
проблемы с getQuoteLevel2
 
Антон, большое спасибо!
проблемы с getQuoteLevel2
 
Цитата
Anton написал:
Цитата
Коля Маржин написал:
Subscribe_Level_II_Quotes("SPBFUT", "SiH0") я правильно использовал
Вроде правильно. Только подождать надо после подписки, не сразу getQuoteLevel2 дергать, а то заказанное еще не приехало скорей всего. Или в цикле со слипами подергать, пока не приедет, или в колбек OnQuote засунуть, там уж точно что-то приехало, раз колбек дернули.
разделюящий блок

while status == nil

          sleep (10)

end

это ок, или в нём скрипт может зациклиться если перебои с инетом, итд? как-то по другому может лучше? Спасибо заранее!
проблемы с getQuoteLevel2
 
аааааааа, спасибо!)) посмеялся. Бывает.


Subscribe_Level_II_Quotes("SPBFUT", "SiH0") я правильно использовал, или её как-то по другому используют?
проблемы с getQuoteLevel2
 
local status  = Subscribe_Level_II_Quotes("SPBFUT", "SiH0")

local data = getQuoteLevel2("SPBFUT", "SiH0").bid

message ("test " .. tostring(status) .. " " .. tostring(data))
проблемы с getQuoteLevel2
 
не нашёл где править сообщение, правильная последовательность строк:

local status  = Subscribe_Level_II_Quotes("SPBFUT", "SiH0")
local data = getQuoteLevel2("SPBFUT", "SiH0").bidmessage ("test " .. tostring(status) .. " " .. tostring(data))
проблемы с getQuoteLevel2
 
Добрый день, есть скрипт который год не запускал. Что-то поменяли на сервере и он поломался, не знаете почему во второй строке в data получается nil? (первую строчку я добавил исходя из рекомендаций в одном из недавних топиков, но она не помогла)


local status  = Subscribe_Level_II_Quotes("SPBFUT", "SiH0")local data = getQuoteLevel2("SPBFUT", "SiH0").bid
message ("test " .. tostring(status) .. " " .. tostring(data))
getNumCandles() не видит индикатор при нереносе скрипта через ночь
 
Цитата
s_mike@rambler.ru написал:

все правильно, так и должно быть. В момент утренней инициализации графики в моменте пусты и соответственно индикаторов еще тоже нет. После чего графики отрисовываются и индикаторы начинают рассчитываться.

автор скрипта не предусмотрел эту ситуацию, укажите ему на нее.
не понимаю. Есть цикл:

local candles = getNumCandles(gazprom)
while candles ==0 do
           sleep (1000)
           candles = getNumCandles(gazprom)        
end

почему в нём в 10:00:01 будет нулевое количество свечей? График живой, индикатор строится.
getNumCandles() не видит индикатор при нереносе скрипта через ночь
 
Всем привет! Есть робот который должен работать круглосуточно без перезапусков по утрам. Сейчас с ним есть одна проблема: если квик не перезагружать утром, то getNumCandles() исправно работающий всю сессию выдаёт ноль в качестве количества свечек.

Что-то из серии:

local candles = getNumCandles(gazprom)
while candles ==0 do
       sleep (1000)
       candles = getNumCandles(gazprom)      
end


- не помогает. Только перезапуск. Индикатор в это время на графике живой. Есть какие-нибудь советы?


P.S. иногда в процентах 10 случаев этой ошибки утром нет - робот спит ночью и утром в 10:00 продолжает работать
Не работают флаги ["Дата экспирации"] и ["Expiration date"] в SendTransaction
 
Stanislav Tvorogov, большое спасибо! Заработало
Не работают флаги ["Дата экспирации"] и ["Expiration date"] в SendTransaction
 
Цитата
Владимир написал:
Ответ есть в ветке  https://forum.quik.ru/forum10/topic1409/  от Егора. Дело в том что, установив Move order=Yes;Expiration date=20160323 заявка создается без этих параметров. Версии терминалов 7.1.0.371 и 7.0.4.10.
Егор, можете прокомментировать???
а я именно так всё и делаю. Не работает...

Т.е. создаю tri файл (причём делал как английскую, так и русскую версию), беру от туда нужные поля, но дата действия заявки не работает. Было подозрение на региональные настройки Windows с кучей форматов YYMMDD, YYYYMMDD, YY.MM.DD, MM/DD/YYYY  - попробовал менять, не помогло.

Вопрос к сожалению никак не отвечен пока. Как видно я не один такой, с проблемой даты лимитированых заявок
Не работают флаги ["Дата экспирации"] и ["Expiration date"] в SendTransaction
 
в вопросе не написал второй флаг, исправляюсь: Это флаги Move order=Yes (в русской версии tri файла: Переносить заявку=Да) и Expiration date=20160613 (в русской версии tri файла: Дата экспирации=20160613)
Не работают флаги ["Дата экспирации"] и ["Expiration date"] в SendTransaction
 
Для выставления лимитированных заявок с длинным сроком жизни я взял соответсвующие поля из tri файла подобной заявки. Это флаги Move order=Yes (в русской версии tri файла: Переносить заявку=Да)

Из этих двух полей при выставлении заявки через Lua работает только Move order (заявка переносится через вчерний клиринг, и умирает на следующий день). Поле Expiration date не работает :-( Дату я пытался выставлять как YYYYMMDD так и как YYMMDD. Не подскажите, в чём может быть причина?

Заявка сейчас успешно выставляется в такой форме. Работает всё, кроме последнего поля.

sendTransaction({
         ACCOUNT=self.account,
         CLIENT_CODE=self.client,
         CLASSCODE=self.market,
         SECCODE="GZM6",
         TYPE="L",
         TRANS_ID=tostring(self.trans_id),
         ACTION="NEW_ORDER",
         OPERATION="S",
         PRICE=tostring(self.price),
         QUANTITY="1",
       ["Move order"]="Yes",
["Expiration date"]="20160613"
})
Пробелы в полях Move order и Expiration date в SendTransaction
 
Цитата
Старатель написал:
Код
  [ "Expiration date" ]  =   "20160620"   
Премного благодарен. Спасибо!
Пробелы в полях Move order и Expiration date в SendTransaction
 
не нашёл где здесь править сообщения. В переменной ошибся, Yes a не Yea в Move order = "Yes"
Пробелы в полях Move order и Expiration date в SendTransaction
 
Добрый день! На данный момент я успешно отправляю завяки в подобной форме:

sendTransaction({
         ACCOUNT=self.account,
         CLIENT_CODE=self.client,
         CLASSCODE=self.market,
         SECCODE=self.ticker,
         TYPE="L",
         TRANS_ID=tostring(self.trans_id),
         ACTION="NEW_ORDER",
         OPERATION="S",
         PRICE=tostring(self.price),
         QUANTITY=1
       })

мне необходимо, чтобы заявки переносились через вечерний клиринг. Для этого я из tri файла подобной заявки взял поля Move order = "Yea" и Expiration date = 20160620". К сожалению эти поля имеют пробел в своём названии, и lua не хочет их переваривать. Как это можно вылечить?


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