Алексей А. (Автор тем)

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

Страницы: 1
Дублируются пользовательские сообщения из скрипта lua
 
Всем добрый день.

Есть такой код:
Код
ticker = {"VTBR"}
lot = {"1"}
trans_id = {os.time()+1}
account = "xxxxxx"
class_code = "yyyy"
client_code = "zzzzzzzz"
LastStatus = {nil}           
run = true         

function main()
   TransOpenPos() 
   while run do sleep(1) 
   end
end

function OnStop() 
   run = false 
end

function TransOpenPos()
   for j = 1, #ticker do
      local Transaction={
         ACCOUNT = account;
         CLIENT_CODE = client_code;
         CLASSCODE = class_code;
         SECCODE = ticker[j];
         ACTION = 'NEW_ORDER';
         OPERATION = 'S';
         TYPE = 'M';
         PRICE = 0;
         QUANTITY = lot[j];
         TRANS_ID = tostring(trans_id[j]);
      }
      local Res = sendTransaction(Transaction)
      if Res ~= '' then message('TransOpenPos(): Ошибка отправки транзакции: '..Res) else message('TransOpenPos(): Транзакция отправлена') 
      end
   end
end

function OnTrade(trade)
   for j = 1, #ticker do
      if trade.trans_id == trans_id[j] then
         sleep(100);
         message('OnTrade(): По транзакции №'..trade.trans_id..' успешно совершена сделка №'..trade.trade_num..' по цене '..trade.price..' объемом '..trade.qty) 
         qty_trades = getNumberOf("trades"); 
         num_trade = 0; 
         for i = 0, qty_trades - 1 do 
            trade_find = getItem("trades", i); 
            if trade_find.sec_code == ticker then 
               num_trade = trade_find.trade_num
            end
         end
         message("Номер сделки в торговой системе - "..trade.trade_num);
         sleep(100);   
      end
   end
end

Работает нормально, только после выполнения кода почему-то повторяются сообщения, которые находятся внутри functon OnTrade(trade). См. вложенный файл с серией сообщений после выполнения кода.
Подскажите, пожалуйста, с чем это связано и как исправить.

С уважением.
Получить данные из колонки "Доступно" из таблицы "Позиции по инструментам"
 
Всем привет,

Подскажите, пожалуйста, как получить данные из колонки "Доступно" из таблицы "Позиции по инструментам" для режима торгов Т2 (см. вложенный скриншот).
Через getDepo не получается:
Код
function main()
   
   ticker = "ETLN"
   firmid = "XXXXXXXXXXXXX"
   clientcode = "XXXXXX"
   account = "XXXXX-XXXXXXXX" 
   
   depodata = getDepo(clientcode, firmid, ticker, account)
   dostupno = depodata.depo_limit_available   
   
   message (ticker.." "..dostupno)

end
При запуске скрипта результат по доступному количеству - ноль. А в getDepoEx нет параметра "Текущий остаток по бумагам".
Робот-сканер нескольких инструментов в Quik Lua
 
Всем добрый день.

Есть такой код Lua, который работает только по одному инструменту: при запуске в Quik смотрит цену открытия и закрытия, и если цена закрытия становится больше цены открытия на 5%, то покупает по рынку 1 лот.

Подскажите, пожалуйста, что добавить в скрипт, чтобы можно было запустить его один раз, чтобы постоянно мониторил цену, пока не отключишь его.
А если необходимо сканировать несколько инструментов, например, SIBN, SBER, как нужно изменить скрипт?

Код
stopped = false
function OnStop()
   stopped = true
   return 5000
end

function main()
   ticker = "SIBN"
   ds1, err = CreateDataSource("TQBR", ticker, INTERVAL_D1);
   sleep(400)
   CandleNum = ds1:Size()
   PriceC = ds1:C(CandleNum)
   PriceO = ds1:O(CandleNum)
   
   if PriceC > PriceO * 1.05 then -- Если цена закрытия становится больше цены открытия на 5%, то покупаем по рынку 1 лот
      
      A = {
         ACTION = 'NEW_ORDER',
         ACCOUNT = 'xxxxxxxxxxx',
         OPERATION = 'B', -- 'B' - покупка, 'S' - продажа
         CLASSCODE = 'TQBR', 
         SECCODE = ticker, 
         PRICE = tostring(0), 
         QUANTITY = tostring(1), -- количество лотов
         TRANS_ID = tostring(1000), -- идентификатор транзакции, чтобы программа распознавала транзакции, когда много сделок
         TYPE = 'M'
      }
      Err_A = sendTransaction(A)
      message("error: "..Err_A)
   end   
end


Я начал изучать Lua на прошлой неделе, поэтому мой уровень почти нулевой. Буду благодарен, если дадите какие-либо наводки, что изучать.
Робот - оповещение о значениях RSI
 
Всем добрый день,

Скажите, пожалуйста, может, есть где-либо в открытом доступе код робота Qpile, который бы оповещал о достижении определенных значений RSI, заданных в коде.
Всегда пользовался приложением "Альфа-инвестиции", где есть конструктор роботов (на C#), что очень удобно: любой пользователь, не знакомый с программированием, может создавать роботов. Однако, с переходом на Quik возникла описанная задача.
Робот - оповещение о значениях RSI
 
Всем добрый день,

Скажите, пожалуйста, может, есть где-либо в открытом доступе код робота Lua, который бы оповещал об определенных значениях RSI (по любому инструменту).
Всегда пользовался приложением "Альфа-инвестиции", где есть конструктор роботов (на C#), что очень удобно: любой пользователь, не знакомый с программированием, может создавать роботов. Однако, с переходом на Quik возникла описанная задача.
Страницы: 1
Наверх