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

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

Страницы: 1
Эмулятор, Эмулятор сервера запускаемый на локальной машине и способный транслировать в КВИК значения по выбранному инструменты из текстовых архивных данных
 
Возможно ли создать приложение, которое бы работало как сервер КВИК на локальной машине пользователя?
Предполагается дать данному серверу исторические данные в текстовом виде (или другом), которые можно скать и сервер транслировал бы их в рабочее место КВИК. Это очень поможет при тестировании роботов.
В настройках сервера указать скорость поставки данных 1:1 5 сек за 1сек реального времени и т.п. для ускорения тестирования, возможность поставить на паузу.

Очень хочется иметь возможность протестировать робота QLua на исторических данных, а как это сделать не понятно.
Порядок работы со стоп-ордером, Отслеживание цепочки стоп-ордер->ордер->исполнение
 
Это я понял из описания функции. Я вывел все данные ордера которые приходят в функцию.
Жаль таблица криво отображается.
Во втором вызове изменились флаги. В первый раз зачение 25(DEC) во втором 1048601(DEC). Я так и не понял почему такое большое число( для вывода использовал tostring(order.flags))  получаются значащие биты старше 15-го.
Так же изменились идентификаторы UID и TRANS_ID и LINKEDORDER, В следующем вызове (третьем) изменились только параметры datetime и withdraw_datetime.

И возможно ли добавить в документацию данные о том, какие события (заявка установлена, заявка исполнена (исполнена частично) и т.п.)  как влияют на значения полей таблицы ORDER, чтобы избежать глупых вопросов.

Вроде бы что может быть проще выставить стоп-ордер, взять созданную им заявку и отслеживать ее состояние. Но вот не совсем прозрачная логика срабатываний функций обратного вызова, сделал для меня эту задачу какой-то трудно решаемой.
Я уже подумываю отказаться от создания стоп-ордеров и самому реализовать данный функционал.
Порядок работы со стоп-ордером, Отслеживание цепочки стоп-ордер->ордер->исполнение
 
Еще вопрос. После срабатывания стоп-ордера 4 раза срабатывает метод OnOrder. В таблице ниже приведены данные срабатываний.
Я понимаю первое - заявка выставлена и последнее - заявка исполнена. А вот 2 промежуточных срабатывания мне совершенно непонятны.
Очень хочется наглядное представление того как происходит вызов функций при выставлении и исполнении заявок
[8924]   OnOrder-order_num 4203415[8924] OnOrder-order_num 4203415[8924] OnOrder-order_num 4203415[8924] OnOrder-order_num 4203415
[8924] OnOrder-flags 25[8924] OnOrder-flags 1048601[8924] OnOrder-flags 1048601[8924] OnOrder-flags 1048600
[8924] OnOrder-brokerref  132690//130521[8924] OnOrder-brokerref    132690//130521[8924] OnOrder-brokerref    132690//130521[8924] OnOrder-brokerref    132690//130521
[8924] OnOrder-userid   MU0007400004[8924] OnOrder-userid     MU0007400004[8924] OnOrder-userid     MU0007400004[8924] OnOrder-userid     MU0007400004
[8924] OnOrder-firmid    MC0007400000[8924] OnOrder-firmid      MC0007400000[8924] OnOrder-firmid      MC0007400000[8924] OnOrder-firmid      MC0007400000
[8924] OnOrder-account     L01+00000F00[8924] OnOrder-account       L01+00000F00[8924] OnOrder-account       L01+00000F00[8924] OnOrder-account       L01+00000F00
[8924] OnOrder-price 128.61[8924] OnOrder-price 128.61[8924] OnOrder-price 128.61[8924] OnOrder-price 128.61
[8924] OnOrder-qty      1[8924] OnOrder-qty      1[8924] OnOrder-qty      1[8924] OnOrder-qty      1
[8924] OnOrder-balance       1[8924] OnOrder-balance         1[8924] OnOrder-balance         1[8924] OnOrder-balance         0
[8924] OnOrder-value        1286.1[8924] OnOrder-value        1286.1[8924] OnOrder-value        1286.1[8924] OnOrder-value        1286.1
[8924] OnOrder-accruedint         0[8924] OnOrder-accruedint         0[8924] OnOrder-accruedint         0[8924] OnOrder-accruedint         0
[8924] OnOrder-yield          0[8924] OnOrder-yield          0[8924] OnOrder-yield          0[8924] OnOrder-yield          0
[8924] OnOrder-trans_id          0[8924] OnOrder-trans_id          1762[8924] OnOrder-trans_id          1762[8924] OnOrder-trans_id          1762
[8924] OnOrder-client_code          132690[8924] OnOrder-client_code            132690[8924] OnOrder-client_code            132690[8924] OnOrder-client_code            132690
[8924] OnOrder-price2           0[8924] OnOrder-price2           0[8924] OnOrder-price2           0[8924] OnOrder-price2           0
[8924] OnOrder-settlecode            Y2[8924] OnOrder-settlecode              Y2[8924] OnOrder-settlecode              Y2[8924] OnOrder-settlecode              Y2
[8924] OnOrder-uid             0[8924] OnOrder-uid               32690[8924] OnOrder-uid               32690[8924] OnOrder-uid               32690
[8924] OnOrder-exchange_code             [8924] OnOrder-exchange_code             [8924] OnOrder-exchange_code             [8924] OnOrder-exchange_code            
[8924] OnOrder-activation_time             0[8924] OnOrder-activation_time               0[8924] OnOrder-activation_time               0[8924] OnOrder-activation_time               0
[8924] OnOrder-linkedorder 0[8924] OnOrder-linkedorder 221552[8924] OnOrder-linkedorder 221552[8924] OnOrder-linkedorder 221552
Порядок работы со стоп-ордером, Отслеживание цепочки стоп-ордер->ордер->исполнение
 
Так стало понятнее.
Спасибо большое. Попробую отпишусь
Порядок работы со стоп-ордером, Отслеживание цепочки стоп-ордер->ордер->исполнение
 
Про цену я тоже понимаю.
Но как узнать что:
  • стоп-ордер сработал

  • создана заявка по стоп-ордеру
  • номер созданной по стоп-ордеру заявки
  • новая заявка сработала?
Порядок работы со стоп-ордером, Отслеживание цепочки стоп-ордер->ордер->исполнение
 
Цитата
Sergey Gorokhov написал:
Здравствуйте,
Цитата
В OnTransReply будет содержаться номер заявки
Цитата
Вы можете присвоить свой номер при отправке транзакции в параметре TRANS_ID
Цитата
Отменить можно знач номер транзакцией KILL_ORDER
Цитата
Статус заявки можно определить по полю flags
Это я понимаю и делаю именно так.
Вопрос в другом.
Я создал стоп-ордер. Который при определенных условиях срабатывает и создает НОВУЮ ЗАЯВКУ (о которой у меня нет никаких данных) по требуемой цене.
Вопрос именно в том как получить атрибуты и можно ли ими управлять до создания заявки создаваемой стоп-ордером.
Порядок работы со стоп-ордером, Отслеживание цепочки стоп-ордер->ордер->исполнение
 
Здравствуйте.
Помогите пожалуйста разобраться с определением исполнения заявки по стоп=ордеру.
Цель следующая
1) есть сигнал на покупку
2) дождаться когда цена вырастет до необходимого уровня (выставляю стоп-ордер на нужную цену)
3) приобрести по  нужной цене (стоп-ордер выставляет заявку на покупку)
4) отслеживаю исполнение заявки созданной стоп-ордером

У меня проблема в следующем
Я могу создать стоп-ордер и определить что он исполнился т.е. создана новая заявка в функции OnTransReply trans_reply.status==3
Но то что дальше для меня загадка,
как узнать с каким номером была создана заявка
возможно ли присвоить свой номер для такой заявки
как ее отменить
как узнать сто она исполнилась?
Ошибка в создании транзакции, ОШИБКА 159
 
Переписал вот так и работает.
Кардинально ничего не менял. Есть некоторое недоумение, но главное, что заработало.

Всем большое спасибо за участие в обсуждении и помощь.

local Transaction={
 ["TRANS_ID"]   = tostring(trans_id_OPT),
 ["ACTION"]     = "NEW_ORDER",
 ["CLASSCODE"]  = "TQBR",
 ["SECCODE"]    = tostring(postable[i][1]),
 ["OPERATION"]  = "B", -- покупка (BUY)
 ["TYPE"]       = "L", -- по рынку (MARKET)
 ["QUANTITY"]   = "1", -- количество имеющееся количество - неснижаемый остаток
 ["ACCOUNT"]    = tostring(ACCOUNT),--"L01-00000F00",
 ["CLIENT_CODE"]= tostring(CLIENTCODE),
 ["PRICE"]      = tostring(prc)--,
 --["COMMENT"]    = "Покупка бумаг скриптом"
}
Ошибка в создании транзакции, ОШИБКА 159
 
[9456] Transaction-trans_id 13
[9456] Transaction-ACTION NEW_ORDER
[9456] Transaction-CLASSCODE TQBR
[9456] Transaction-SECCODE GAZP
[9456] Transaction-OPERATION B
[9456] Transaction-TYPE L
[9456] Transaction-QUANTITY 1
[9456] Transaction-ACCOUNT L01+00000F00
[9456] Transaction-CLIENT_CODE 130521
[9456] Transaction-PRICE 143.7
Ошибка в создании транзакции, ОШИБКА 159
 

так заявка выставляется руками и проходит.
Из этих параметров я не знаю как установить следующие параметры:
Тип по цене
Тип по остатку
Тип ввода значения цены
назначение заявки
Тип способа активации заявки
Как называются параметры для установки этих параметров. В документации на tri файлы, как-то запутанно - не разобрался.
Ошибка в создании транзакции, ОШИБКА 159
 
Добавил код клиента. Не помогло. Ошибка та же.
Ошибка в создании транзакции, ОШИБКА 159
 
Не помогло. Ошибка та же.
Ошибка в создании транзакции, ОШИБКА 159
 
Супер, спасибо. Попробую
Ошибка в создании транзакции, ОШИБКА 159
 
trans_id  соответствует тому, который я присвоил транзакции перед отправкой.
Я тоже обратил внимание на quantity. Отправляю 1, а приходит 24.
Ошибка в создании транзакции, ОШИБКА 159
 
Это действительно учебный сервер.
["TYPE"] = "L", -- по рынку (MARKET) - заявка лимитированная. комментарий остался старый.
А что значит "не проходит по рынку"? Заявка должна быть хотя бы зарегистрирована.
Ошибка в создании транзакции, ОШИБКА 159
 
Отправляю транзакцию
local Transaction={
 ["TRANS_ID"]   = tostring(trans_id_OPT),
 ["ACTION"]     = "NEW_ORDER",
 ["CLASSCODE"]  = "TQBR",
 ["SECCODE"]    = postable[i][1],
 ["OPERATION"]  = "B", -- покупка (BUY)
 ["TYPE"]       = "L", -- по рынку (MARKET)
 ["QUANTITY"]   = "1", -- количество имеющееся количество - неснижаемый остаток
 ["ACCOUNT"]    = ACCOUNT,--"L01-00000F00",
 ["PRICE"]      = tostring(prc),--tostring(getParamEx("TQBR", postable[i][1], "offer").param_value + 10*getParamEx("TQBR", postable[i][1], "SEC_PRICE_STEP").param_value), -- по цене, завышенной на 10 мин. шагов цены
 ["COMMENT"]    = "Покупка бумаг скриптом"

в функции OnTransReply получаю
[9456] OnTransReply-begin
[9456] OnTransReply-trans_id 5850
[9456] OnTransReply-status 4
[9456] OnTransReply-result_msg ОШИБКА: (159) Указанный тип заявки не разрешен для этого финансового инструмента и режима торгов.
[9456] OnTransReply-time 174118
[9456] OnTransReply-uid 30521
[9456] OnTransReply-flags 262145
[9456] OnTransReply-server_trans_id 518
[9456] OnTransReply-order_num 0
[9456] OnTransReply-price 136.65
[9456] OnTransReply-quantity 24
[9456] OnTransReply-balance 0
[9456] OnTransReply-firm_id MC0007400000
[9456] OnTransReply-account L01+00000F00
[9456] OnTransReply-client_code 130521
[9456] OnTransReply-brokerref
[9456] OnTransReply-class_code TQBR
[9456] OnTransReply-sec_code GAZP

Не могу понять в чем ошибка. Подскажите пожалуйста
Подключение, Необходимость подключения к серверу
 
Для работы функций, таких как
getDepo,getDepoEx,getCandlesByIndex
требуется ли подключение к серверам?

Необходимо знать для отладки. Есть возможность заниматься роботом только ночью и на выходных, когда подключение к серверам невозможно, но данные в соответствующих окнах и графиках есть. Возможно ли работать с этими данными?

Сейчас пытаюсь использовать функцию getDepo, получаю пустую таблицу и не могу понять с чем это связано.
Страницы: 1
Наверх