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

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

Страницы: 1
SetCell crash, Устновка цветов не по порядку вызывает краш Quik а
 
Вы совершенно верно подметили. Защита от Дурака. (я любитель). Иногда за ненадобностю колонок я их просто удаляю в части их определения. И далее скрипт при проходе их просто опускает. Раньше, как говорится все работало.
Теперь же конечно, написана новая функция, которая при запуске дает последовательные номера этим колонкам.
Да, возможно что у меня отсутствует "культура кода". Но в данном случае всеже наверное баг квика.
SetCell crash, Устновка цветов не по порядку вызывает краш Quik а
 
Да понятное дело, что при наличии промежуточных колонок все работает.
Я так и не понял баг это квика или моего скрипта или я в мануале что-то пропустил?
Так мы привыкнем подгонять свои скрипты каждый раз под новые баги новых версий квиков.
На то, чтобы выяснить причину вылета у меня ушло часа 4. А дальше что? "Доколе?"
SetCell crash, Устновка цветов не по порядку вызывает краш Quik а
 
Все равно вылетает.
Код
function OnStop(stop_flag)
   
  is_run=false
  DestroyTable(t_id)

end


function main()
is_run=true
row_color=15

t_id = AllocTable()
AddColumn(t_id, 0, "0", true, QTABLE_STRING_TYPE, 15)
AddColumn(t_id, row_color, tostring(row_color), true, QTABLE_STRING_TYPE,11)

   t = CreateWindow(t_id)
   SetWindowPos(t_id, 0, 0, 500, 500)

    for i = 1, 15 do
      InsertRow(t_id, i)      
   end
   
      for k=1,15 do
         SetCell(t_id, k, 0, tostring(k)) 
      end      


while is_run do

         for k=1,15 do
   SetColor(t_id, k, row_color, RGB(0,255,0), RGB(0,0,0), RGB(255,255,255), RGB(0,0,0))--Crash here
      end
sleep(500)
end
end
SetCell crash, Устновка цветов не по порядку вызывает краш Quik а
 
Вот такой код вызывает краш Квика версии 9.7.1.10 (в версии 8.13 все было ок) после остановки работы скрипта и закрытия созданного им окна.
Предыстория - в связи с настойчивой рекомендацией БКС обновил квик. Пр запуске моего скрипта на новой версии Квик стал вылетать. Стал разбираться - и вот.
Суть в том, что если имеется пропущенная колонка (переменная row_color=15 а не 1) то при остановке скрипта происходит вылет квика. Если поставить row_color=1 то все работает ок.
Код
function main()
is_run=true
row_color=15

t_id = AllocTable()
AddColumn(t_id, 0, "0", true, QTABLE_STRING_TYPE, 15)
AddColumn(t_id, row_color, tostring(row_color), true, QTABLE_STRING_TYPE,11)

   t = CreateWindow(t_id)
   SetWindowPos(t_id, 0, 0, 500, 500)

    for i = 1, 15 do
      InsertRow(t_id, i)      
   end
   
      for k=1,15 do
         SetCell(t_id, k, 0, tostring(k)) 
      end      


while is_run do

         for k=1,15 do
   SetColor(t_id, k, row_color, RGB(0,255,0), RGB(0,0,0), RGB(255,255,255), RGB(0,0,0))--Crash here
      end
sleep(500)
end
end
getParamEx
 
Перед подачей заявки на бирже у мен стоит такая функция, работает как часы.
Код
local tostring_=tostring
local math_tointeger=math.tointeger

function t_(x)
return tostring_(math_tointeger(x) or x)
end
Баги с отображением таблиц после последнего обновления.
 
Цитата
Сергей написал:
После последнего обновления таблицы стали отображаться криво.
Содержимое левого столбца частично обрезается. Например, вместо KZOS видно ZOS.
Растягивание первого столбца по ширине ни к чему не приводит.
В таблице где первым столбцом идёт порядковый номер ширина столбца такая, что отображаются точки вместо цифр.
Растягивание столбца помогает, но с перезапуском программы ширина возвращается к прежней.
ОС Windows7 64
(Приложил бы скриншоты, но не понимаю как на движке вашего форума их залить.)

Пожелание: верните как было, пожалуйста.
+1
Мин/Макс возможная цена для акций, По фьючам есть а по акциям нет
 
Цитата
swerg написал:
Цитата
Mikhail написал:
По фьючерсам видимо их алготрейдеры уже задолбали и такие данные транслируются

На срочном рынке ММВБ т.н. "планки" - это ограничения самой биржи, и биржа их транслирует. Квик тут ни при чем.

На других рынках ограничения на диапазон цен брокер может установить, но не расскажет. А почему? А не понятно, вы ж клиент брокера, с брокера требуйте.
По акциям планки устанавливает сама биржа, неоднократно в 20-м году вылезали сообщения , мол если цена по такой-то акции останется в данном диапазоне то биржа приостановит торги для расширения торгуемого диапазона.
В квике для акций отсутствует параметр максимально/минимально возможная цена. Ее можно добавить, если в таблицу включить хотябы 1 фьючерс. Поэтому считаю что это баг именно Квика. И ссылаясь на это брокеры мне и отвечают - по умолчанию у акций нет миним и макс возможных цен и это наш дар с барского плеча что мы вам транслируем в эту таблицу и по акции также.
Мин/Макс возможная цена для акций, По фьючам есть а по акциям нет
 
Здравствуйте,
Неоднократное обращение к брокерам выявило интересную особенность-какие-то брокеры на свое усмотрение транслируют минимально и максимально возможные цены по акциям (БКС), какие-то нет. Финам например мне сообщил что в базе такого функционала нет и для акций показывать планки в Квике они не обязаны.
По фьючерсам видимо их алготрейдеры уже задолбали и такие данные транслируются а по акциям почему также не сделать? Т.е. робот должен кидать цену, получать текстовое сообщение ошибки с планкой, читать это сообщение, распознавать планку? Это же бред! Прошу разработчиков добавить данную функцию!
Время ММВБ, Servertime не предлагать
 
Пока обнаружил такой обходной путь более-менее точного определения что активная сессия по данному инструменту сейчас идет.
Также необходимо менять сервер каждый день, иначе в параметрах bid и ask терминал хранит последние значения.
Код
   bid_=tonumber(getParamEx("TQBR",  "SBER", "BID").param_value)
   offer_=tonumber(getParamEx("TQBR",  "SBER", "OFFER").param_value)
   
   if bid_~=nil and offer_~=nil and offer_>0 and bid_>0 then 
     status=1
   end
Время ММВБ, Servertime не предлагать
 
Цитата
swerg написал:
Цитата
Mikhail
А статус сессии биржа транслирует?

Конечно. Все значения параметров, какие вы видите в QUIK - транслируют биржи. QUIK лишь транспорт.

Не совсем-у меня на одном сервере работают 2 квика от БКС и Финама, иногда оба показывают разное время сервера, разное максимальное и минимальное значение предельных цен.

Цитата
swerg написал:
Цитата Mikhail PS. При остановках торгов внутри дня для раздвижки планок статусы показывают, мол торговля ведется.Надо на оба параметра смотреть.Торги идут только при единственной комбинации этих параметров. При любой другой нормальные торги не идут

Оба параметра STATUS и TRADINGSTATUS выдают 1 в основную торговую сессию, при временных остановках никто о них не думает и не меняет в них 1 на что-то другое (по крайней мере пол года назад такое наблюдал).

Время ММВБ, Servertime не предлагать
 
Цитата
swerg написал:
Статус сессии
А статус сессии биржа транслирует?

getParamEx(class, name, "STATUS").param_value
getParamEx(class, name, "TRADINGSTATUS").param_value

PS. При остановках торгов внутри дня для раздвижки планок статусы показывают, мол торговля ведется.
Время ММВБ, Servertime не предлагать
 
Подскажите как правильно брать время ММВБ, сегодня БКС выдал getInfoParam("SERVERTIME") примерно на 1 с раньше времени ММВБ и мои заявки при открытии улетели вникуда.

PS. Есть еще вариант по времени последнего изменения самого ликвидного фьючерса RI (getParamEx("SPBFUT",  "RIZ0", "CHANGETIME").param_value). Пока использую его, Но в период с 1400 по 1405 он не работает.
getParamEx
 
Здравствуйте! Не подскажете почему во время приостановке торгов фьючерсами например сегодня в 11.17.55 LKH0
ф-ии
getParamEx(class, name, "STATUS").param_value
getParamEx(class, name, "TRADINGSTATUS").param_value
возвращают 1? Кто ее ставит брокер или биржа?
Какая функция в итоге показывает приостановку торгов инструментом?
Плагин для AmiBroker x64
 
Также подпишусь под заявкой для Ami x64.
CreateDataSource, какое правильное расположение функции CreateDataSource?
 
Да, с задержками между циклами хотябы 100мс такой ошибки больше не появляется.
CreateDataSource, какое правильное расположение функции CreateDataSource?
 
Цитата
Egor Zaytsev написал:
Цитата
Mikhail написал:
Здравствуйте,
для чтения и записи исторических данных из квика решил зациклить CreateDataSource и в конце каждого обращения к новому символу делаю Close(). Проблема в том что квик виснет после успешной обработки примерно 15-20 символов.
Можно ли так вообще использовать эту функцию?
Добрый день.

Чтобы понять причины зависания потребуется для начала Ваш скрипт. Можно выложить тут, либо прислать нам на  quiksupport@arqatech.com
Здравствуйте! Спасибо. Начал готовить код (покороче) и тут выяснилось что крашит Квик не эта функция а обращение к файловой системе при записи всех этих файлов (без задержек), причем на системе с SSD диском такое не происходит. Добавлю задержек и потестирую. Напишу позже.
CreateDataSource, какое правильное расположение функции CreateDataSource?
 
Здравствуйте,
для чтения и записи исторических данных из квика решил зациклить CreateDataSource и в конце каждого обращения к новому символу делаю Close(). Проблема в том что квик виснет после успешной обработки примерно 15-20 символов.
Можно ли так вообще использовать эту функцию?
ОШИБКА: (533) Неверно указан код клиента.
 
Здравствуйте!

Вкратце суть в следующем - есть 2 единых счета, подключенных к 1 терминалу Quik, на 1 из которых данный скрипт работает без проблем, на втором нет.
Обращался в тех поддержку Финама, там все проверили и т.к. вручную все выставляется из квика был послан к разработчика.

Сам текст скрипта заявки (внутри функции main()):

account_a="L01+00000F00"
client_a="285563R2L2B"


function transaction_send_a (Operation_trans, Amount, Name)
   t = {
           ["ACTION"]="NEW_ORDER",
           ["ACCOUNT"]=account_a,
           ["CLIENT_CODE"]=client_a,
           ["TYPE"]="M",

       }


Trans_id_order=45678
t["TRANS_ID"]=tostring(Trans_id_order)
t["PRICE"]=tostring(0)
t["OPERATION"]=Operation_trans
t["QUANTITY"]=tostring(Amount)
       t["CLASSCODE"]="TQBR"
       t["SECCODE"]=Name

   res=sendTransaction(t)

end


do transaction_send_a ("S", 10, "SBER")
end

ОШИБКА: (533) Неверно указан код клиента.


Выставляю по счету:

Счет L01+00000F00
Код клиента 285563R2L2B


При этом подача заявки на другом моем счете проходит без проблем:

Счет L01+00000F00
Код клиента 285563RI1XAS


Вместо кода клиента я пробовал по совету тех поддержки подставить краткий код
выдается немного другое сообщение:

Неверный код клиента.

Подскажите что я делаю не так и как это исправить, спасибо.
getFuturesLimit
 
Цитата
Mikhail пишет:
Цитата
Stanislav Tvorogov пишет:
Цитата
Mikhail пишет:
Здравствуйте,
С момента как подал заявку на частичное снятие средств попытка чтения таблицы лимитов через getFuturesLimit возвращает nil. Как быть?
Добрый день,

Рекомендуем обновить версию терминала до 7.0. Также, необходимо иметь в виду, что начиная с версии 7.0 терминала QUIK, изменилась структура вызова функции getFuturesLimit() - добавился новый обязательный параметр curr_code.
Здравствуйте!

Я прошу прощения а где это можно увидеть в документации? Обновил до версии 7, проблема осталась. Она вылезла ровно неделю назад у Финама. Мой робот торгует уже полгода и все было Ок. И тут внезапно.

Дайте пожалуйста ссылка на пример как правильно получить лимит по деньгам в рублях по счету (фьючерсы):
getFuturesLimit()
Все, догадался, надо было добавить "SUR" в конец getFuturesLimit("SPBFUT", "SPBFUT***TT",  0, "SUR")
getFuturesLimit
 
Цитата
Stanislav Tvorogov пишет:
Цитата
Mikhail пишет:
Здравствуйте,
С момента как подал заявку на частичное снятие средств попытка чтения таблицы лимитов через getFuturesLimit возвращает nil. Как быть?
Добрый день,

Рекомендуем обновить версию терминала до 7.0. Также, необходимо иметь в виду, что начиная с версии 7.0 терминала QUIK, изменилась структура вызова функции getFuturesLimit() - добавился новый обязательный параметр curr_code.
Здравствуйте!

Я прошу прощения а где это можно увидеть в документации? Обновил до версии 7, проблема осталась. Она вылезла ровно неделю назад у Финама. Мой робот торгует уже полгода и все было Ок. И тут внезапно.

Дайте пожалуйста ссылка на пример как правильно получить лимит по деньгам в рублях по счету (фьючерсы):
getFuturesLimit()
getFuturesLimit
 
Здравствуйте,
С момента как подал заявку на частичное снятие средств попытка чтения таблицы лимитов через getFuturesLimit возвращает nil. Как быть?
Не проходят внебиржевые заявки заявки, Промежуток 18.40-18.50
 
Неужели никто не подскажет? Может там надо какие-то переменные или флаги задавать? То что в обычной торговой сессии не указывается? Или в настройках Квика что-то указывать?
Как вернуться на предыдущую версию до 6.17.0.58?, Половина окон исчезла и файл wnd вместо 900к стал весить 189МБ!
 
Спасибо, тут еще одна проблема - Квик пишет что файл wnd записан более поздней версией.
Как вернуться на предыдущую версию до 6.17.0.58?, Половина окон исчезла и файл wnd вместо 900к стал весить 189МБ!
 
 Здравствуйте,
Собственно вопрос как??
Не проходят внебиржевые заявки заявки, Промежуток 18.40-18.50
 
Здравствуйте,
Пытаюсь выставить заявки в промежуток аукциона с 18.40-18.50. Однако заявки не проходят и ошибки не появляются.
Отправляю в таком виде (см. ниже). Внутри дня заявка регистрируется но в промежутке 18.40-50 нет. Вручную ставится а скриптом нет. Подскажите в чем может быть дело?


client_code="SPBFUT00x00"
account="L01+00000F00"
action="NEW_ORDER"
Amount=1
Price=65
Operation="B"

   t = {
           ["ACTION"]=action,
           ["ACCOUNT"]=account,
           ["CLIENT_CODE"]=client_code,
           ["TYPE"]="L",
           ["EXPIRY_DATE"]="TODAY",
       }
Trans_id_order=1001
t["TRANS_ID"]=tostring(Trans_id_order)
t["PRICE"]=tostring(Price)
t["OPERATION"]=Operation
t["QUANTITY"]=tostring(Amount)
       t["CLASSCODE"]="TQBR"
       t["SECCODE"]="SBER"

   sendTransaction(t)
Страницы: 1
Наверх