Алексей Злобин (Автор тем)

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

Страницы: 1
Самый быстрый способ получить данные по инструменту
 
Добрый день. Пишу бота, который сканирует все акции ММВБ.
Мне нужно собирать данные практически в режиме реального времени. Какой способ более эффективный?
Мне нужна лучшая цена спроса/предложения или как вариант параметры сделки без открытия.
Я вижу три варианта:
  1. getParamEx2
  2. function OnAllTrade(all_trade)
  3. ParamRequest(STRING class_code, STRING sec_code, STRING db_name)
Какой будет быстрее работать?
Будет ли вставка потокобезопасная работать быстрее, чем 1 и 3 способ?
Спасибо

Код
function
OnAllTrade(all_trade)
 table.sinsert(MAIN_QUEUE, {callback = "OnAllTrade", value = all_trade})
end
Как все таки сделать http запрос из Lua?
 
Привет всем!
Как все таки отправить HTTP запрос из Lua(Quik)?
Я пытаюсь использовать LuaSocket ,но Quik в упор не видит эту библиотеку куда бы я ему ее не положил.
Какие шаманские обряды нужно провести,чтобы сие чудо заработало.https://github.com/diegonehab/luasocket
Сетевая папка
 
Добрый день.
Вопрос может ли LUA вести запись логов в сетевую папку те папку которая 'расшарена' на другом компьютере в лок.сети?
Функция отправки транзакции возвращает nil,хотя транзакция проходит
 
Добрый день!
Есть бот ,работающий в Quik (ОС Windows),а есть запущенный в виртуальной Windows(основная ОС Mac).
Так вот у второго бота есть особенность.Функция отправки транзакции возвращает nil  trans_i=nil и  res=nil,но при этом транзакция проходит и заявка выставляется на бирже.У первого бота все нормально.В чем проблема где "копать"?
Как получить результат у стоп-заявки?
 
Добрый день!
Выставляю роботом стоп-заявку и потом анализирую на предмет того исполнилась она или нет.
Но дело  в том, что исполнение стоп-заявки не всегда приводит к выставлению ордера.Он часто отклоняется ТС.
Мне нужно посмотреть результат с помощью Lua.В таблице стоп-заявок я не вижу этого параметра...
Хотя визуально вижу,что он есть в таблице Quik.что мне делать?
Описание параметров Таблицы стоп-заявок:

Параметр Тип Описание
order_num  NUMBER  Регистрационный номер стоп-заявки на сервере QUIK  
ordertime  NUMBER  Время выставления  
flags  NUMBER  Набор битовых флагов  
brokerref  STRING  Комментарий, обычно: <код клиента>/<номер поручения>
firmid  STRING  Идентификатор дилера  
account  STRING  Торговый счет  
condition  NUMBER  Направленность стоп-цены. Возможные значения:
«4» – «<=»,
«5» – «>=»

condition_price  NUMBER  Стоп-цена  
price  NUMBER  Цена  
qty  NUMBER  Количество в лотах  
linkedorder  NUMBER  Номер заявки в торговой системе, зарегистрированной по наступлению условия стоп-цены  
expiry  NUMBER  Дата окончания срока действия заявки
trans_id  NUMBER  Идентификатор транзакции  
client_code  STRING  Код клиента  
co_order_num  NUMBER  Связанная заявка  
co_order_price  NUMBER  Цена связанной заявки  
stop_order_type  NUMBER  Вид стоп заявки. Возможные значения:
«1» – стоп-лимит,
«2» – условие по другому инструменту,
«3» – со связанной заявкой,
«6» – тейк-профит,
«7» – стоп-лимит по исполнению активной заявки,
«8» –  тейк-профит по исполнению активной заявки,
«9» - тэйк-профит и стоп-лимит

orderdate  NUMBER  Дата выставления  
alltrade_num  NUMBER  Сделка условия  
stopflags  NUMBER  Набор битовых флагов  
offset  NUMBER  Отступ от min/max  
spread  NUMBER  Защитный спред  
balance  NUMBER  Активное количество  
uid  NUMBER  Идентификатор пользователя  
filled_qty  NUMBER  Исполненное количество  
withdraw_time  NUMBER  Время снятия заявки  
condition_price2  NUMBER  Стоп-лимит цена (для заявок типа «Тэйк-профит и стоп-лимит»)  
active_from_time  NUMBER  Время начала периода действия заявки типа «Тэйк-профит и стоп-лимит»  
active_to_time  NUMBER  Время окончания периода действия заявки типа «Тэйк-профит и стоп-лимит»  
sec_code  STRING  Код бумаги заявки  
class_code  STRING  Код класса заявки  
condition_sec_code  STRING  Код бумаги стоп-цены  
condition_class_code  STRING  Код класса стоп-цены  
canceled_uid NUMBER  Идентификатор пользователя, снявшего стоп-заявку
order_date_time TABLE Время выставления стоп-заявки
withdraw_datetime TABLE Время снятия стоп-заявки
Индикатор(график) вывести в виде свечей
 
Добрый день!
У меня есть внешняя программа,которая пишет в некоторый текстовый файл  цену по некому зарубежному инструменту каждую секунду.
Потом вычисляется отношение этой цены к индексу РТС и выводится как индикатор в Quik.Но возникает вопрос.
Можно ли этот индикатор выводить не только в виде линии,но и баров...как это сделать?
Я так понимаю надо самим считать Open High Low Close...в зависимости от интервала.Но как потом вывести все это на экран?
Неплохо было бы если сам Quik формировал свечи исходя из цены ,которая поступает в режиме реального времени и опр.интервала времени...
Можно ли построить спред в LuaIndicators , используя сторонние данные?
 
Добрый день!
Есть сторонний источник данных,который пишет данные в файл(передает в MemoryFiles  итд) те я их могу увидеть из Lua.
Но я хочу с помощью данных построить график(через LuaIndicators) и вижу ,что

Список функций, доступных из скрипта индикатора:


getWorkingFolder  – возвращает путь, по которому находится файл info.exe, исполняющий скрипт,
getScriptPath  – возвращает путь, по которому находится запускаемый скрипт,
getNumberOf  – возвращает количество записей в таблице «TableName»,
getItem  – возвращает таблицу Lua, содержащую информацию о данных из строки с номером «Index» из таблицы с именем «TableName»,
getParamEx  – получает значения всех параметров биржевой информации из Таблицы текущих значений параметров,
message  – отображает сообщения в терминале QUIK,
isConnected  – определяет состояние подключения клиентского места к серверу,
getTradeDate  – получает дату торговой сессии,
getInfoParam  – позволяет получить параметры для информационного окна (Связь/Информационное окно),
getClassSecurities  – получает список кодов бумаг для списка классов, заданного списком кодов,
getClassInfo  – получает информацию о классе,
getClassesList  – получает список кодов классов, полученных с сервера в ходе сеанса связи,
getSecurityInfo  – получает информацию по инструменту,
getQuoteLevel2  – получает стакан по указанному классу и бумаге,
getMoney  – получает информацию по денежным лимитам,
getDepo  – получает информацию по бумажным лимитам,
sendTransaction  – функция для работы с заявками,
SearchItems  – позволяет реализовать быструю выборку элементов из хранилища терминала и возвращает таблицу с индексами элементов, удовлетворяющих условию поиска,
getPortfolioInfo  – получает значения параметров таблицы «Клиентский портфель»,
getBuySellInfo  – получает параметры таблицы «Купить/Продать»,
getPortfolioInfoEx  – получает значения параметров таблицы «Клиентский портфель» с учетом вида лимита,
getBuySellInfoEx  – получает параметры таблицы «Купить/Продать» с учетом вида лимита,
getOrderByNumber  –возвращает таблицу Lua, содержащую описание параметров Таблицы заявок и индекс заявки в хранилище терминала,
RGB – преобразовывает компоненты RGB (red, green, blue) в одно число,
AddLabel - добавляет метку с заданными параметрами,
DelLabel - удаляет метку с заданными параметрами,
DelAllLabels - удаляет все метки на диаграмме с указанным графиком,
GetLabelParams - получает параметры метки,
SetLabelParams - задает параметры для метки с указанным идентификатором,
SetValue - устанавливает указанное значение на выбранной линии определенной свечи индикатора,
GetValue - получает значение, установленное на выбранной линии указанной свечи индикатора,
SetRangeValue - устанавливает указанное значение на выбранной линии для определенного интервала индексов свечей индикатора.

Можно ли мне получить доступ к произвольной таблице Quik в том числе и построенные с помощью Qlua?
Вопросы про CallBack
 
Допустим у меня есть CallBack



Код

a={}
function OnTrade(trade)

       a[trade.trade_num]={}
       a[trade.trade_num].status="NEW"
       a[trade.trade_num].value=.....вычисления



end


И есть функция main  в которой просматривается таблица a,не может ли у нас получится  там,  что a[trade.trade_num].status=nil?
Правда чисто теоретически...но все же интересно.Потоки то разные вроде.
Как 'получить' цвет индикатора AO
 
Добрый день!Есть в Quik индикатор AO.Данный индикатор представляет собой гистограмму,где столбики гистограммы имеют зеленый цвет(рост) либо красный(падение).
Я могу получить значения индикатора,но что это рост или падение-я определить не могу через LUA.
Что мне делать?
Оповещение при вылете Lua скрипта
 
Добрый день!
Как обработать ошибку возникающую при вылете Lua скрипта?
Понятно если что если данного функционала нет,то я могу "тупо" заставить  Lua в скрипте 1 писать в нек.файл время текущее.А другим скриптом проверять его.
Если текущее время файла отл.от того что есть в файле,то сообщение на почту.
Квик не хочет показывать вар.маржу
 
Запускаю бота на своем счету---бот отражает вар.маржу.
На другом- нет.Настройки верные счета.
Пытаюсь определить суммарную вар.маржу путем суммирования в таблице откр.позиции у меня на счету показывает маржу,а на другом счету 0.
Те она не воспринимается Lua Quik никак.
Брокеры разные.Что это такое?
Линии тренда
 
Добрый день!
Как программно строить линии тренда на графике (не из LUAIndicators) c помощью символов?
Почему не графике не отображаются графические метки с прозрачным фоном(GIF)?
Хорошо бы в будущих версиях сделали возможность построения линий...из LUA.
Всего 4 координаты...начало (DateTime1,Y1)--> (DateTime2,Y2)
Тогда можно строить свои индикаторы без убого  LUAIndicators...
Разработка торговых роботов, торговые роботы на заказ,торговые роботы,скальпинг,боты
 
Разрабатываю торговых роботов на заказ.
LUA,QLUA
Прочие терминалы:Sterling,SmartCom,IB,Laser итд (всё где есть API)
Рынки:российский и зарубежные
webwrk@yandex.ru
Разработка торговых роботов, Разработка торговых роботов
 
Разрабатываю торговых роботов на заказ.
LUA,QLUA
Прочие терминалы:Sterling,SmartCom,IB,Laser итд (всё где есть API)
Рынки:российский и зарубежные
webwrk@yandex.ru
Не работает функция выставления стоп-заявки по "исполнению"
 
При попытке отправить заявку система выдает сообщение о том,что неверные параметры стоп-заявки.
Код
function SendStopOrderOnExecOrder(buy_sell,sec_code,class_code,stop_price,num_order)-- тейк-профит.со связанной заявкой

local num_transaction=getNumerTransaction()

 -- PRICE_SCALE=getParamEx(class_code,sec_code,'SEC_SCALE').param_value


 local trans={
      ["TRANS_ID"]=tostring(num_transaction),
      ["ACTION"]="NEW_STOP_ORDER",
      ["STOP_ORDER_KIND"]="ACTIVATED_BY_ORDER_TAKE_PROFIT_STOP_ORDER",
      ["CLASSCODE"]=class_code,
      ["SECCODE"]=sec_code,
      ["OPERATION"]=buy_sell,
      ["STOPPRICE"]=tostring(stop_price),
      ["BASE_ORDER_KEY"]=tostring(num_order),
      ["ACCOUNT"]=tostring(acc_id),
      ["USE_BASE_ORDER_BALANCE"]="YES",
      ["ACTIVATE_IF_BASE_ORDER_PARTLY_FILLED"]="YES",
      ["OFFSET_UNITS"]="PERCENTS",
      ["SPREAD_UNITS"]="PERCENTS",
      ["OFFSET"]="0",
      ["SPREAD"]="0",
      ["EXPIRY_DATE"]="TODAY"
      
   }
--ACTION=NEW_STOP_ORDER; TRANS_ID=11; STOP_ORDER_KIND=ACTIVATED_BY_ORDER_TAKE_PROFIT_STOP_ORDER; BASE_ORDER_KEY=81874488; USE_BASE_ORDER_BALANCE=yes; ACTIVATE_IF_BASE_ORDER_PARTLY_FILLED=yes; SPREAD=10; OFFSET=10; OFFSET_UNITS=PRICE_UNITS; SPREAD_UNITS=PRICE_UNITS; STOPPRICE=265; CLIENT_CODE=Q5; OPERATION=B; SECCODE=LKOH; CLASSCODE=TQBR; ACCOUNT=L01-00000F00;
   --ACTION=NEW_STOP_ORDER; TRANS_ID=11; STOP_ORDER_KIND=ACTIVATED_BY_ORDER_TAKE_PROFIT_STOP_ORDER; BASE_ORDER_KEY=81874488; USE_BASE_ORDER_BALANCE=yes; ACTIVATE_IF_BASE_ORDER_PARTLY_FILLED=yes; SPREAD=10; OFFSET=10; OFFSET_UNITS=PRICE_UNITS; SPREAD_UNITS=PRICE_UNITS; STOPPRICE=265; CLIENT_CODE=Q5; OPERATION=B; SECCODE=LKOH; CLASSCODE=EQBR; ACCOUNT=L01-00000F00

   
   
message(trans.STOPPRICE.."/"..trans.OPERATION.."/"..trans.ACCOUNT.."/"..trans.BASE_ORDER_KEY.."/"..trans.CLASSCODE.."/"..trans.SECCODE,1)

   res = sendTransaction(trans)
   
   
   return res


end
Значения передаваемые в функцию проверял...в чем дело?
Странная ошибка
 
Добрый день!
Возникает странная ошибка.Раньше такого не наблюдал в роботе.
31.03.2016 12:13:29.122: Result: 1, Result_ex: 4, Description: Ошибка создания заявки. [GW][10000] "Parse message failed".
Спасайте.А то вручную невозможно торговать-)
Изменение цвета линии индикатора на "лету"-возможно?
 
Добрый день!
Есть индикатор,который содержит в себе несколько цветов.
Каждый участок может иметь два цвета :красный и зеленый.
Как мне программно менять цвет индикатора в зависимости например от его значения?
Settings.Line[1].Color ?Но это предварительные установки цвета и они не меняются в OnCalculate ?
Если перехожу на две линии,то при значении nil в одной из линий LUA просто соединяет крайние "не nil" значения.Есть способы решить эту задачу?
В MT и NinjaScript таких проблем нет.
Спасибо.
Проблема с CLOSING_AUCTION_PRICE
 
Добрый день!
Пишу так:
lastprice=GET_PARAM (Class, Cod, "LAST")
price_pa=GET_PARAM (Class, Cod, "CLOSING_AUCTION_PRICE")
Цена lastprice опредляется,но а цена послеторгового аукциона не определяется..
Вызываю функции в период с 18.43 по 18.45.В  открытой таблице текущих значений цена ПА видна.
В чем может быть проблема?
Спасибо.
Разработка торговых роботов, Разработка торговых роботов
 
Сделаю робота или скрипт на заказ.
Для Quik- Qpile,Lua,платформа NET,Excel
Также возможна разработка роботов(скриптов) для работы в других системах(Laser,IB,SmartCOM,Sterling итд)
Также тестирую ТС в WealthLab или в собственном программном обеспечении.
webwrk@yandex.ru

С уважением ,Алексей
Страницы: 1
Наверх