Сделать заявку своей

Страницы: 1
RSS
Сделать заявку своей, средствами qlua
 
Раньше как будто где то попадалась тема - сегодня не нашел.
Возможно ли сделать заявку своей если в настройках соединения будет разрешено переключаться на другой сервер?
Суть в том что иногда возникает необходимость перейти на другой сервер и если до разрыва соединения были активные заявки их понятное дело надо вернуть под контроль скрипта.
 
Здравствуйте,
Средствами скрипта сделать стоп заявку своей можно отправив транзакцию со следующими параметрами
local trans = {
["TRANS_ID"] = "1",
["ACTION"] = "Сделать стоп-заявку своей",
["CLASSCODE"] = "SPBFUT",
["Номер стоп-заявки"] = "123456789"
}
local res = sendTransaction(trans)

по английски нельзя.
 
Есть ли в планах опубликовать список доступных транзакций, причем как-то однозначно идентифицированных (например, тупо уникально пронумерованных)? иначе мне не очень понятно как может подать такую транзакцию англоговорящий трейдер (а ведь таковые вроде как есть, судя по новостям). Или таковым не судьба подавать подобные транзакции?
 
А разве автор темы спрашивал про стоп-заявку? У него написано просто "заявка".
 
Цитата
Дмитрий пишет:
А разве автор темы спрашивал про стоп-заявку? У него написано просто "заявка".
Просто заявки не переносятся. Просто потому что в этом нет необходимости, они не привязаны к серверу Quik.
А вот стоп заявки привязаны.
 
Цитата
swerg пишет:
Есть ли в планах опубликовать список доступных транзакций, причем как-то однозначно идентифицированных (например, тупо уникально пронумерованных)? иначе мне не очень понятно как может подать такую транзакцию англоговорящий трейдер (а ведь таковые вроде как есть, судя по новостям). Или таковым не судьба подавать подобные транзакции?
Если мы опубликуем список доступных транзакций то наша документация просто лопнет  :)
Дело в том что на каждом рынке, на каждом классе, для разных целей, есть разные транзакции. И их просто гигантское количество.
Посмотрите сами в меню Торговля - Транзакции, Вы увидите сколько их. А представьте что у менеджера их еще больше.
А если еще подсчитать сколько классов существует....
Самые популярные транзакции опубликованы в руководстве и для них в коде прошиты константы, которые Вы и видите в руководстве.
А для остальных, константы не прописаны, и подавать такие транзакции нужно как есть.
Это самое "как есть" очень легко увидеть добавив транзакцию в карман транзакций и сделав экспорт из него в tri файл.
Мы называем это универсальный формат транзакции.

Англоязычные пользователи будут подавать транзакции на английском.
Я чуть слукавил, говоря что по английски нельзя
Дело в том, что в русском терминале надо подавать такие транзакции только на русском, а в английском только на английском.
Но нельзя подавать русские транзакции в английском или английские в русском.
Это правило касается только для универсального формата транзакций.
 
Вопрос немного не по теме - а айсберг заявки можно выставлять не только по акциям на фондовой секции Московской биржи, но также и на других секциях (на валютном, на срочном рынке)?
 
Цитата
Дмитрий пишет:
Вопрос немного не по теме - а айсберг заявки можно выставлять не только по акциям на фондовой секции Московской биржи, но также и на других секциях (на валютном, на срочном рынке)?
В общем случае нет нельзя.
Но в частном, у нас есть спец модуль для сервера. Если брокер его у себя поставит, то можно будет ставить эмуляцию айсберг заявки.
 
А где-то можно прочитать подробности о сути этой эмуляции - как именно она реализована?
 
Цитата
Дмитрий пишет:
А где-то можно прочитать подробности о сути этой эмуляции - как именно она реализована?
Описание модуля есть на нашем сайте
http://www.quik.ru/bank/modules/external/algotrade/

Но про айсберг там мало написано. По возможностям, айсберг через модуль, мало чем отличается от айсберга на фондовой секции.
 
Цитата
Sergey Gorokhov пишет:
По возможностям, айсберг через модуль, мало чем отличается от айсберга на фондовой секции.
Это как? Айсберг-заявки официально поддерживаются на валютном и срочном рынках?
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
Серж пишет:
Цитата
Sergey Gorokhov пишет:
По возможностям, айсберг через модуль, мало чем отличается от айсберга на фондовой секции.
Это как? Айсберг-заявки официально поддерживаются на валютном и срочном рынках?
С чего Вы взяли. Я не помню чтобы такое кто-то говорил
 
Цитата
Sergey Gorokhov пишет:
Просто заявки не переносятся. Просто потому что в этом нет необходимости, они не привязаны к серверу Quik.
А вот стоп заявки привязаны.
Т. е. если до переключения на другой сервер у меня оставались активными просто заявка и стоп заявка то при работе уже через другой сервер простая заявка будет доступна также как и до переключения а стоп заявку нужно "сделать своей" что бы её можно было модифицировать?
Я правильно вас понял?
 
Цитата
lergen пишет:
также как и до переключения а стоп заявку нужно "сделать своей" что бы её можно было модифицировать?
Я правильно вас понял?
Да все правильно.
Связанно это с тем, что "стоп заявки" это сущность Quik и биржа про них вообще ничего не знает. Сами по себе, они существуют только внутри сервера Quik. Поэтому при переключении на другой сервер, нужно менять привязку у стоп заявок.
Обычные заявки хранятся на бирже, поэтому не важно от куда Вы к ней подключитесь. Можете подключиться на прямую, минуя брокера, и Вы все равно сможете управлять своими заявками.
 
Тогда еще будет вопрос про переключение сервера посредством lua.
Т.е. нужно что бы скрипт проанализировав текущее соединение в случае необходимости выдал команду квику на переключение на другой сервер. Для чего нужно - не так давно  был момент когда на одной из двух совершенно аналогичных копий скрипта была задержка в получении данных минуты в четыре. При этом скрипт торговал как будто так и надо. Ситуация наводящая на не хорошие мысли (тема для отдельного разговора). после того как переключился на другой сервер все стало хорошо. Поэтому хотелось бы сделать это автоматически если есть такая возможность.
 
поправлюсь - работали две аналогичных копии терминала
 
Цитата
lergen пишет:
поправлюсь - работали две аналогичных копии терминала
Терминалы работали с разными брокерами?
 
Через Qlua нельзя управлять соединением терминала.
 
Цитата
Дмитрий пишет:
Цитата
lergen пишет:
поправлюсь - работали две аналогичных копии терминала
Терминалы работали с разными брокерами?
В том то и дело что брокер один.
Переключаться скрипт не сможет - не айс! Тогда не плохо было бы иметь возможность отправить оповещение. Где то в сообщениях попадалось упоминание о такой возможности. Мой брокер предоставляет возможность оповещения по СМС - через lua можно создать такое оповещение в нужный для меня момент?
 
Цитата
lergen пишет:
СМС - через lua можно создать такое оповещение в нужный для меня момент?
Можно. Но только сторонними средствами.
 
Цитата
Sergey Gorokhov пишет:
Цитата
Дмитрий пишет:
Вопрос немного не по теме - а айсберг заявки можно выставлять не только по акциям на фондовой секции Московской биржи, но также и на других секциях (на валютном, на срочном рынке)?
В общем случае нет нельзя.
Цитата
Sergey Gorokhov пишет:
Цитата
Серж пишет:
Цитата
Sergey Gorokhov пишет:
По возможностям, айсберг через модуль, мало чем отличается от айсберга на фондовой секции.
Это как? Айсберг-заявки официально поддерживаются на валютном и срочном рынках?
С чего Вы взяли. Я не помню чтобы такое кто-то говорил
Добрый день!
А судя по информации на сайте биржи, с 3 октября 2011 на валютном рынке участники торгов могут выставлять заявки типа «скрыть количество» ( заявки «Айсберг»):
http://www.micex.ru/markets/currency/organization/innovations/1740
 
Цитата
Дмитрий пишет:
Добрый день!
А судя по информации на сайте биржи, с 3 октября 2011 на валютном рынке участники торгов могут выставлять заявки типа «скрыть количество» ( заявки «Айсберг»):
http://www.micex.ru/markets/currency/organization/innovations/1740
Раз биржа говорит, значит можно выставлять и на валютном рынке тоже.
Это их функционал, им виднее.
 
Добрый день.

Указанная конструкция перестала работать. Ранее использовал следующую функцию:


Код
function myStop(classcode)
   local TRADES_TABLE_NAME = "stop_orders"
   local stop_oredrs_num = getNumberOf(TRADES_TABLE_NAME)
   --toLog(log, 'ф-я Сделать стоп-заявку своей')
   --toLog(log, stop_oredrs_num)
   -- Затолкать эту функцию в колбэк на коннект!!!
   
   
   -- сделать стоп-заявку своей
   -- Данная функциЯ возвращает 2 параметра
   --     1. ID присвоенный транзакции либо nil если транзакциЯ отвергнута на уровне сервера Љвик
   --     2. Ответное сообщение сервера Љвик либо строку с параметрами транзакции
   if (classcode==nil) then
      --toLog(log, 'QL.myStop(): Can`t send order. Nil parameters.')
      return nil,"QL.myStop(): Can`t send order. Nil parameters."
   end
   
   for i = 0, stop_oredrs_num-1 do
      local stop_order = getItem(TRADES_TABLE_NAME, i)
      --toLog(log, tostring(stop_order))
      if stoporderflags2table(stop_order.flags).another_server and stoporderflags2table(stop_order.flags).active then
         toLog(log, 'транзакция Сделать стоп-заявку своей')
         toLog(log, 'номер заявки '..tostring(stop_order.order_num))
         local transaction={
            ["TRANS_ID"]="1",
            ["ACTION"]="Сделать стоп-заявку своей",
            ["CLASSCODE"]=classcode,
            ["Номер стоп-заявки"]=tostring(stop_order.order_num)
         }
         local res=sendTransaction(transaction)
         reply="QL.myStop():"..tostring(res)
         toLog(log, reply)         
         if res~="" then
            return nil, "QL.myStop():"..res
         else
            toLog(log, "QL.myStop(): myStop sended sucesfully. Class="..classcode.." num="..tostring(stop_order.order_num))
            return trans_id, "QL.myStop(): myStop sended sucesfully. Class="..classcode.." num="..tostring(stop_order.order_num)
         end

      end      
   end
 

Лог выдает в качестве ответа на sendTransaction кракозябры:


[CODE]11/27/15 17:38:25,833 номер заявки53710737
11/27/15 17:38:25,834 QL.myStop(): Υౠ㩫��
 
В чем может быть дело?
Заранее спасибо.
 
сохраните свой qlua-скрипт в формате ANSI.
 
т.е. Windows-1251
 
Цитата
тот самый пишет:
т.е. Windows-1251
Я подозревал что дело может быть в этом, пробовал прсто переключить кодировку, вся кирилица в кракозябры, т.е. переписывать скрипт заново фактически. Это что, очередная подстава арки? Это напоминает лечение кашля пургеном.
 
Цитата
тот самый пишет:
сохраните свой qlua-скрипт в формате ANSI.
Все заработало, спасибо.
А преобразовал нотпадом++, без потерь. Арку похулил, но лучей поноса в карму не наслал, так что вроде как и извиняться не зачто)))
 
есть за что - использование ANSI - это минус арки в наше время. Все современные приложения уже давно перешли как минимум на UTFx
 
Ну так то да, в заглавном посте особо обратили внимание на то, что буквы должны быть русскими, а за кодировку ничего не сказали. Ребус получается какой-то. Ну в целом победили,  и то хорошо.
Страницы: 1
Читают тему
Наверх