Сергей Качурин (Все сообщения пользователя)

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

Страницы: 1
OnTransReply по стоп заявкам
 
Здравствуйте

Брокер ВТБ. Акции.

Почему-то не приходят OnTransReply при попытке ПОМЕНЯТЬ стоп.
То есть ставится  корректно всегда. Снимается корректно, а вот при попытке поставить сразу же новый OnTransReply не приходит и стоп не ставится.

Алгоритм такой: при входе ставим стоп -> при изменении цены удаляем стоп -> сразу же ставим новый.

Установка сейчас уже происходит так:
Ждем ответа 10 раз по 100 мл сек — ответ не пришел, значит считаем, что он негативный/или пришел негативный — идем в таблицу и 3 раза ее перебираем с небольшой паузой в поисках активного стопа по нашему инструменту — не находим, то отправляем новый !!! и вся процедура повторяется ( и так 5 раз) . На 6й раз — убиваем позицию и работаем дальше (предполагается, что без ошибок)

И все равно - ответа нет - 8 секунд !! (фото Меняем стопы)
фото 2 - бесчинства брокера (вероятно)

Как быть? Менять брокера (вроде как стоп-заявки на его сервере обрабатываются) ?
Или может быть косяк в коде (функция стопов вынесена отдельно - к ней идет просто обращение абсолютно идентичное в 1й после открытия позиции и последующие разы) ?

Прошу совета профессионалов.

.
"Засыпание" скриптов, Имею три работающих скрипта на Lua, которые периодически (раз в пару дней кто-нибудь из них точно) "засыпают"
 
Sergey Denegin, хотя, это, наверное, единственное разумное объяснение..

Не знаете какая пауза должна быть в соединении, чтобы is_connected показало false ?
"Засыпание" скриптов, Имею три работающих скрипта на Lua, которые периодически (раз в пару дней кто-нибудь из них точно) "засыпают"
 
Возможно, но вероятность не очень велика..
20 попыток в течение секунды есть у скрипта.. Да и закрытие дня проходит без опозданий.

Возможно периодическое "подвисание" терминала на несколько секунд? Это бы объяснило ошибки с перестановкой и снятием стопов..

как с этим принято бороться?
"Засыпание" скриптов, Имею три работающих скрипта на Lua, которые периодически (раз в пару дней кто-нибудь из них точно) "засыпают"
 
Здравствуйте!

Имею три работающих скрипта на Lua, которые периодически (раз в пару дней кто-нибудь из них точно) "засыпают" - перестают выдавать проверочные сообщения, но на другие "раздражители" реагируют. (фото 2 - нормальная работа, фото 1 - "засыпание")

Основная проблема в том, что, если сделка случается в таком состоянии скрипта, она всегда заканчивается кучей сообщений с ошибками (типа:  Не могу снять стоп-заявку. Пришел статус 4. и подобными). Хотя в нормальном состоянии скрипта сделки проходят корректно.

Сам скрипт достаточно большой - вот самое парадоксальное место: как видно на фото скрипт игнорирует сообщение каждые 15 минут, но реагирует на закрытие торгового дня !

обе функции так и стоят рядом, в корне основного потока. Ни на какие дополнительные условия не завязаны.



Буду признателен за любую помощь в решении этой загадки
Код
--===============================================
 
   if Here == 0 then  --- сообщение каждые 15 минут. с запомнеными параметрами 
      Here = math.floor(os.clock())
      
   elseif math.floor(os.clock()) == Here + 900 then 
      Here = math.floor(os.clock())
      message ("SBER. I`m here! every 15 min", 1)
      
      message("StartUP - "..tostring(StartUP), 1)
      message("tp[0].open - "..tostring(tp[0].open), 1)
      
      message("StartDOWN - "..tostring(StartDOWN), 1)
      sleep(50)
      
   end
--===============================================   
-- проверка TIME
   local Time = integer
   dt = os.date()        -- системная функция времени/даты
    ddt = string.sub(dt, 10, 14)    -- берем нужные графы
    if ddt == "18:44" then Time = 1      -- тут ставим время выхода из позиций LastOpenBarIndex = DS:Size()
      while Time == 1 do
         to_log("trade day ends ".." close "..tostring(count).." lot(s)")
         message ("SBER trade day ends ".." close "..tostring(count).." lot(s)",1)
         if count > 0 then
            Trade("S",count,lastPrice-p_spread) 
            count = 0
            stv.SetVar("count", 0) 
            if SP == 1 then
               Rem_ST_TP(ST_orderNum)
            end
         end   
         if count < 0 then
            Trade("B",math.abs(count),lastPrice+p_spread)
            count = 0
            stv.SetVar("count", 0) 
            if SP == 1 then
               Rem_ST_TP(ST_orderNum)
            end
         end
         Time = 0
         sleep(900000)  -- 15 минут спим,чтобы недопустить вход до конца торг. сессии
      end
   elseif ddt == "10:00" then
      LastOpenBarIndex = DS:Size()
   end   
Не работает OnAccountBalance
 
перешел с фьючерсов на акции
перестал работать  OnFuturesClientHolding
хотел заменить на OnAccountBalance , но он не работает

Посоветуйте решение, пожалуйста. Sergey Gorokhov,
Не работает OnAccountBalance
 
а "текущие" - только Торги
Не работает OnAccountBalance
 
не получается прикрепить скрин, но такой таблицы нет.. Даже по слову "текущих" - пустой экран
Не работает OnAccountBalance
 
[img]file:///C:/Users/%D0%A1%D0%B5%D1%80%D0%B3%D0%B5%D0%B9/Downloads/%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA.JPG[/img][img]file:///C:/Users/%D0%A1%D0%B5%D1%80%D0%B3%D0%B5%D0%B9/Downloads/%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA.JPG[/img]Sergey Gorokhov, вот прямо так и называется? "Таблица текущих позиций по счетам"  
Не работает OnAccountBalance
 
Цитата
Sergey Gorokhov написал:
Эта таблица находится в меню Дилер / Текущие позиции по счетам...

Соответственно, если у Вас нет такого меню, или ест?ь но в нем данная таблица пустая, то и колбек срабатывать не должен.
Sergey Gorokhov, где найти эту волшебную таблицу? Версия 7.0.4.10
BULLS & BEARS, как получить линию разности быков и медведей с помощью индикаторов на Луа
 
Sergey Gorokhov, спасибо! Всё заработало.

что это за строчка такая, если не секрет?
BULLS & BEARS, как получить линию разности быков и медведей с помощью индикаторов на Луа
 
Sergey Gorokhov,
вот так расчет пошел - for i=1,ds:Size() do

результат в таблице:
Код
   Price            SROC
1   91360   
2   91330   
3   91310   
4   91310   
5   91280   
6   91270   
7   91310          99,955126281672
и снова  C:\FinamJunior\LuaIndicators\SROC.lua:110: attempt to perform arithmetic on field '?' (a nil value)

код:
Код
for x = 2,4 do --periods
         func = SROC()
         t_id = AllocTable()
         AddColumn(t_id,1,"Price",true,QTABLE_INT_TYPE,10)
         AddColumn(t_id,2,"SROC",true,QTABLE_INT_TYPE,10)
         CreateWindow(t_id)
         SetWindowCaption(t_id,"SROC")
         message("2", 1)
         ds = CreateDataSource("SPBFUT", "RIU6", INTERVAL_M1) 
         sleep(100)

for i=1,ds:Size() do --candels
         message("4", 1)
         ma_out=func(i, {Period = x, Metod = "EMA", VType="Close", round="off"}, ds)
         tmp=InsertRow(t_id,-1)
         SetCell(t_id,tmp,1,tostring(ds:C(i)),ds:C(i))
         SetCell(t_id,tmp,2,tostring(ma_out),ma_out)
         message("5", 1)
            
         if i > 4+x then
            y = func(i-2, {Period = x, Metod = "EMA", VType="Close", round="off"}, ds) 
            y1 = func(i-1, {Period = x, Metod = "EMA", VType="Close", round="off"}, ds) 
            y2 = func(i, {Period = x, Metod = "EMA", VType="Close", round="off"}, ds)
            message("6", 1)
            
            if count == 0
ошибка между message "5" и message "6" ...
BULLS & BEARS, как получить линию разности быков и медведей с помощью индикаторов на Луа
 
Sergey Gorokhov,  не подскажете в чем может быть засада?


C:\FinamJunior\LuaIndicators\SROC.lua:110: attempt to perform arithmetic on field '?' (a nil value)  

Если вместо SROC звать МА, то ошибка на 83 строке.
Код
for x = 2,4 do --periods
      func = SROC()
      t_id = AllocTable()
      AddColumn(t_id,1,"Price",true,QTABLE_INT_TYPE,10)
   AddColumn(t_id,2,"SROC",true,QTABLE_INT_TYPE,10)
   CreateWindow(t_id)
   SetWindowCaption(t_id,"SROC")
   ds = CreateDataSource("SPBFUT", "RIU6", INTERVAL_M1) 

   for i=1+x,ds:Size() do --candels
         
   ma_out=func(i, {Period = x, Metod = "EMA", VType="Close", round="off"}, ds) --ОШИБКА
   tmp=InsertRow(t_id,-1)
   SetCell(t_id,tmp,1,tostring(ds:C(i)),ds:C(i))
   SetCell(t_id,tmp,2,tostring(ma_out),ma_out)
            

BULLS & BEARS, как получить линию разности быков и медведей с помощью индикаторов на Луа
 
Sergey Gorokhov, а как тогда обратиться к значениям каждой конкретной свечи из диапазона i=1+x,ds:Size() ?

чтобы получить вот эти значения:
Код
if i > 4+x and ma_out[i-1] > ma_out[i-2] and ma_out[i] < ma_out[i-1]

Создать таблицу (где?) в которую сохранять № свечи и значение, а потом обращаться к этой таблице?

Вы, наверное, уже видите, что задача перебрать несколько периодов индикатора и на каждом периоде проверить выполнение условий на всем диапазоне i=1+x,ds:Size() ..
BULLS & BEARS, как получить линию разности быков и медведей с помощью индикаторов на Луа
 
Sergey Gorokhov, a можно к созданному индикатору присвоить идентификатор через Lua (сразу при добавлении), чтобы потом обращаться к его значениям через getNumCandles и getCandlesByIndex?

или вот такое обращение будет корректным: ma_out[i], ma_out[i-1]... ?
Код
for i=1+x,ds:Size() do
   ma_out=func(i, {Period = x, Metod = "EMA", VType="Close", round="off"}, ds)
   tmp=InsertRow(t_id,-1)
   SetCell(t_id,tmp,1,tostring(ds:C(i)),ds:C(i))
   SetCell(t_id,tmp,2,tostring(ma_out),ma_out)
            
   if i > 4+x and ma_out[i-1] > ma_out[i-2] and ma_out[i] < ma_out[i-1]
end 
BULLS & BEARS, как получить линию разности быков и медведей с помощью индикаторов на Луа
 
Sergey Gorokhov,
а не подскажете как убрать вот эту ошибку: C:\FinamJunior\LuaIndicators\_Line.lua:27: attempt to perform arithmetic on a nil value. Выскакивает по количеству периодов расчета

такой вариант не помог
Код
if func1 ~= nil and func2 ~= nil then
   return (func1(Index, Settings)+func2(Index, Settings))/2
end
BULLS & BEARS, как получить линию разности быков и медведей с помощью индикаторов на Луа
 
Sergey Gorokhov, спасибо , всё работает!
BULLS & BEARS, как получить линию разности быков и медведей с помощью индикаторов на Луа
 
Здравствуйте.

Пытаюсь слегка изменить выложенные разработчиком индикаторы: получить Линию разности Быков и Медведей..
Соединил их вместе:

Думал, BULLS() возвращает значение (но если tostring, то печатает "function: F028E025" - примерно, tonumber - nil).

Предположил, что значение сидит в Out (func = Out1- Out2), но выходит nil, а дальше ошибка, что ожидается число..Вроде логично, ведь период 13 и первые 12 значений скорее всего пустые.
Убрал под if Out1~=nil and Out2~=nil .. и вот тут началось самое интересное - индикатор просто пропал из списка доступных индикаторов!
Возможно, это встроенная защита от ошибок ..
Джуниор 7.0.0.289

Подскажите, пожалуйста, начинающему в чём ошибка.

Код
Settings = {
Name = "*line_1", 
round = "off",
Period = 13, 
Metod = "EMA", --SMA, EMA, VMA, SMMA, VMA 
VType = "Close", --Open, High, Low, Close, Volume, Median, Typical, Weighted, Difference 
line = {
      Name = "LINE", 
      Type = TYPE_LINE, 
      Color = RGB(255, 0, 0)
      }
}
   
function Init() 
   func1 = BULLS()
   func2 = BEARS()
   message (tostring(Out1), 1)
   if Out1~=nil and Out2~=nil
      func = Out1- Out2
   end
   return #Settings.line
end

function OnCalculate(Index) 
   return func1(Index, Settings) and func2(Index, Settings)
end

function BULLS() --Bulls Power ("BULLS")
   local Bulls_MA=MA()
return function (I, Fsettings, ds)
local Out1 = nil
local Fsettings=(Fsettings or {})
local P = (Fsettings.Period or 13)
local M = (Fsettings.Metod or "EMA")
local VT = (Fsettings.VType or "Close")
local R = (Fsettings.round or "off")
local b_ma = Bulls_MA(I, {Period=P, Metod = M, VType=VT, round=R}, ds)
if I>=P and b_ma then
   Out1 = Value(I, "High", ds)-b_ma
else Out1 = b_ma end
   return rounding(Out1, R),0
end
end

function BEARS() --Bears Power ("BEARS")
   local Bears_MA=MA()
return function (I, Fsettings, ds)
local Out2 = nil
local Fsettings=(Fsettings or {})
local P = (Fsettings.Period or 13)
local M = (Fsettings.Metod or "EMA")
local VT = (Fsettings.VType or "Close")
local R = (Fsettings.round or "off")
local b_ma = 0

b_ma=Bears_MA(I, {Period=P, Metod = M, VType=VT, round=R}, ds)
if I>=P and b_ma then
   Out2 = Value(I, "Low", ds)-b_ma
else Out2 = b_ma end
   return rounding(Out2, R),0
end
end

function MA() --Moving Average ("MA")
local t_SMA = F_SMA()
local t_EMA = F_EMA()
local t_VMA = F_VMA()
local t_SMMA = F_SMMA()
local t_WMA = F_WMA()
return function(I, Fsettings, ds)
   local Out = nil
   local Fsettings=(Fsettings or {})
   local P = (Fsettings.Period or 9)
   local M = (Fsettings.Metod or "EMA")
   local VT = (Fsettings.VType or "Close")
   local R = (Fsettings.round or "off")
   if M == "SMA" then
      Out = t_SMA(I, P, VT, ds, R)
   elseif M == "EMA" then
      Out = t_EMA(I, P, VT, ds, R)
   elseif M == "VMA" then
      Out = t_VMA(I, P, VT, ds, R)
   elseif M == "SMMA" then
      Out = t_SMMA(I, P, VT, ds, R)
   elseif M == "WMA" then
      Out = t_WMA(I, P, VT, ds, R)
   else
      Out = nil
   end
   return rounding(Out, R)
end
end
------------------------------------------------------------------
--Moving Average SMA, EMA, VMA, SMMA, VMA
------------------------------------------------------------------
--[[Simple Moving Average (SMA)
SMA = sum(Pi) / n
]]
function F_SMA()
return function (I, Period, VType, ds, round) 
local Out = nil
   if I >= Period then
      local sum = 0
      for i = I-Period+1, I do
         sum = sum +Value(i, VType, ds)
      end
      Out = sum/Period
   end 
   return rounding(Out,round)
end
end

--[[Exponential Moving Average (EMA)
EMAi = (EMAi-1*(n-1)+2*Pi) / (n+1)
]]
function F_EMA() 
local EMA_TMP={}
return function(I, Period, VType, ds, round)
local Out = nil
   if I == 1 then
      EMA_TMP[I]=rounding(Value(I, VType, ds),round)
   else
      EMA_TMP[I]=rounding((EMA_TMP[I-1]*(Period-1)+2*Value(I, VType, ds)) / (Period+1),round)
      EMA_TMP[I-2]=nil
   end
   
   if I >= Period then
      Out = EMA_TMP[I]
   end
   return rounding(Out,round)
end
end

--[[
William Moving Average (WMA)
( Previous WILLMA * ( Period - 1 ) + Data ) / Period
]]
function F_WMA()
   local WMA_TMP={}
return function(I, Period, VType, ds, round)
local Out = nil
   if I == 1 then
      WMA_TMP[I]=rounding(Value(I, VType, ds),round)
   else
      WMA_TMP[I]=rounding((WMA_TMP[I-1]*(Period-1)+Value(I, VType, ds)) / Period,round)
     WMA_TMP[I-2]=nil
   end
   if I >= Period then
      Out = WMA_TMP[I]
   end
   return rounding(Out,round)
end
end

--[[Volume Adjusted Moving Average (VMA)
VMA = sum(Pi*Vi) / sum(Vi)
]]
function F_VMA()
return function (I, Period, VType, ds, round)
local Out = nil
   if I >= Period then
      local sum = 0
      local sumV = 0
      for i = I-Period+1, I do
         sum = sum +Value(i, VType, ds)*Value(i, "Volume", ds)
         sumV = sumV +Value(i, "Volume", ds)
      end
      Out = sum/sumV
   end
   return rounding(Out,round)
end
end

--[[Smoothed Moving Average (SMMA)
SMMAi = (sum(Pi) - SMMAi-1 + Pi) / n
]]
function F_SMMA()
local SMMA_TMP={}
return function(I, Period, VType, ds, round)
local Out = nil
   if I >= Period then
      local sum = 0
      for i = I-Period+1, I do
         sum = sum +Value(i, VType, ds)
      end
      
      if I == Period then
         SMMA_TMP[I]=rounding((sum-Value(I, VType, ds)+Value(I, VType, ds)) / Period, round)
      else
         SMMA_TMP[I]=rounding((sum-SMMA_TMP[I-1]+Value(I, VType, ds)) / Period, round)
      end
      SMMA_TMP[I-2]=nil
      Out = SMMA_TMP[I]
   end
   return rounding(Out,round)
end
end


function rounding(num, round) 
if round and string.upper(round)== "ON" then round=0 end
if num and tonumber(round) then
   local mult = 10^round
   if num >= 0 then return math.floor(num * mult + 0.5) / mult
   else return math.ceil(num * mult - 0.5) / mult end
else return num end
end

function Value(I,VType,ds) 
local Out = nil
VType=(VType and string.upper(string.sub(VType,1,1))) or "A"
   if VType == "O" then      --Open
      Out = (O and O(I)) or (ds and ds:O(I))
   elseif VType == "H" then    --High
      Out = (H and H(I)) or (ds and ds:H(I))
   elseif VType == "L" then   --Low
      Out = (L and L(I)) or (ds and ds:L(I))
   elseif VType == "C" then   --Close
      Out = (C and C(I)) or (ds and ds:C(I))
   elseif VType == "V" then   --Volume
      Out = (V and V(I)) or (ds and ds:V(I)) 
   elseif VType == "M" then   --Median
      Out = ((Value(I,"H",ds) + Value(I,"L",ds)) / 2)
   elseif VType == "T" then   --Typical
      Out = ((Value(I,"M",ds) * 2 + Value(I,"C",ds))/3)
   elseif VType == "W" then   --Weighted
      Out = ((Value(I,"T",ds) * 3 + Value(I,"O",ds))/4) 
   elseif VType == "D" then   --Difference
      Out = (Value(I,"H",ds) - Value(I,"L",ds))
   elseif VType == "A" then   --Any
      if ds then Out = ds[I] else Out = nil end
   end
return Out
end
Снятие стоп-заявок, ответ на транзакцию
 
Победить решил проверкой Флага на стоп-заявке, после получения ошибки снятия.

Но был бы крайне признателен, если кто-нибудь хотя бы намекнул почему возможна ситуация, описанная выше...  
Снятие стоп-заявок, ответ на транзакцию
 
снимаю стоп-заявку по номеру  - примерно каждый 4й -5й раз приходит Статус "4", но заявка снимается. Причем сразу после сообщения о снятии заявки.. Не могу понять как с этим бороться.
Код
-- СНИМАЕМ СТОПЫ 
function Rem_ST_TP(ST_orderNum)
   trans_id = trans_id + 1
   message("2 ST_orderNum"..ST_orderNum, 1)
   local transaction={
                    ["TRANS_ID"] = tostring(trans_id),
                    ["ACTION"] = "KILL_STOP_ORDER",
                    ["CLASSCODE"] = p_classcode,
                    ["SECCODE"] = p_seccode,
               ["STOP_ORDER_KEY"] = tostring(ST_orderNum+0),
               ["COMMENT"]             = "ТЭЙК-ПРОФИТ и СТОП-ЛОСС"   
   }
    local res=sendTransaction(transaction)
   message ("res "..tostring(res), 1)   
   while is_run and trans_Status == nil do 
      sleep(10);
   end;
    
   -- Запоминает значение
    local Status = trans_Status;
   -- Очищает глобальную переменную
    trans_Status = nil;
    -- Если транзакция не выполнена по какой-то причине
   if Status ~= 3 then
      -- Выводит сообщение с ошибкой
      message("Status ~= 3: "..tostring(Status) ..". Снятие ПРОФИТ-ЛОСС не удалось!\nОШИБКА: "..trans_result_msg);
     
      -- Возвращает FALSE
      -- return false;
   else
      -- Выводит сообщение
      message('Снят ТЭЙК & ЛОСС: '..trans_id);
      OrderNum_CLOSE = nil;
     SP = 0
     ST_orderNum = nil
   end;
   
end
Вот такие сообщения приходят: в порядке поступления - сверху вниз

14:22:01  2 ST_orderNum"..ST_orderNum
14:22:01
14:22:01 Стоп-заявка с № [ST_orderNum] снята.
14:22:01 Не удается снять стоп-заявку № [ST_orderNum].
14:22:01 Status ~= 3: 4. Снятие ПРОФИТ-ЛОСС не удалось! ОШИБКА: Не удается снять стоп-заявку № [ST_orderNum].

Получается, что OnTransReply отвечает мне дважды на один и тот же запрос?...но запрос то один..

Расскажите, пожалуйста, как это победить и как работает логика ответа на транзакции в  Quik ?
Значение поля "номер стоп-заявки", Выдает ошибку всеми возможными способами
 
Николай Камынин, спасибо! Ваше предположение также оказалось верным: Обнулял переменную в ненужном месте..  а ошибка с 6-ю нулями была получена до того как вставил обнуление переменной.
Значение поля "номер стоп-заявки", Выдает ошибку всеми возможными способами
 
Sergey Gorokhov, спасибо, действительно даже 1й вариант оказался рабочим - ["STOP_ORDER_KEY"] = tostring(ST_orderNum+0)

нашел место, где ST_orderNum присваивал nil...  
Значение поля "номер стоп-заявки", Выдает ошибку всеми возможными способами
 
Николай Камынин, сравнение работает. Переменная глобальная.

Думать, что в ней ничего нет - не получается ввиду вот таких сообщений об ошибке: "Неправильно указан номер заявки: "1314760.000000"
Значение поля "номер стоп-заявки", Выдает ошибку всеми возможными способами
 
Sergey Gorokhov,

сравнение работает

Выдает же либо "Неправильно указан номер заявки: "1314760.000000" - если ввод через tonumber
либо "Неправильно указан номер заявки: "nil" - если ввод через tostring


вот trans_id пишет и ST_orderNum -   без нулей
Код
if stop_order.trans_id == trans_id then
   ST_orderNum = stop_order.order_num  -- сохраняем номер
   message("ST_orderNum"..ST_orderNum, 1)
   break
end;
при вводе через tonumber - цифра правильная, но вот эти шесть нулей победить не удается  
Значение поля "номер стоп-заявки", Выдает ошибку всеми возможными способами
 
[USER=17]Sergey Gorokhov ,Николай  Камынин[/USER], в том то и дело что сравнение работает

Выдает же либо "Неправильно указан номер заявки: "1314760.000000"  - если ввод через tonumber
либо  "Неправильно указан номер заявки: "nil" - если ввод через tostring


вот trans_id пишет и ST_orderNum.
[img]data:image/png;base64,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[/img]

при вводе через tonumber - цифра правильная, но вот эти шесть нулей победить не удается
[img]data:image/png;base64,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[/img]
Значение поля "номер стоп-заявки", Выдает ошибку всеми возможными способами
 
Sergey Gorokhov, вот даже так попробовал сейчас

ST_orderNum = tonumber(ST_orderNum)  и потом

["STOP_ORDER_KEY"] = string.format("%.0f", ST_orderNum)

и все равно: bad argument #2 to 'format' (number expected, got nil)
Значение поля "номер стоп-заявки", Выдает ошибку всеми возможными способами
 
Sergey Gorokhov,  получается, что приходит Строка, которую потом надо преобразовать в Номер, а затем снова в Строку?

странно, что не проходит простой вариант ["STOP_ORDER_KEY"] = ST_orderNum
Значение поля "номер стоп-заявки", Выдает ошибку всеми возможными способами
 
Получаю номер стоп заявки из таблицы.
Код
while is_run and ST_orderNum == nil do -- перебираем таблицу Стопов
         for i=0,getNumberOf("stop_orders")-1 do
            local stop_order = getItem("stop_orders", i);
            
            -- Если заявка по текущей транзакции СТОП-ЛОСС и ТЭЙК-ПРОФИТ
            if stop_order.trans_id == trans_id then
               ST_orderNum = stop_order.order_num  -- сохраняем номер
               message("ST_orderNum"..ST_orderNum, 1)
               break
            end;
         end;
         sleep(10)
end
Значение поля "номер стоп-заявки", Выдает ошибку всеми возможными способами
 
Цитата
Sergey Gorokhov написал:
еще можно вот так:
["STOP_ORDER_KEY"] = string.format("%.0f", ST_orderNum)
этот вариант дает bad argument #2 to 'format' (number expected, got nil)
Значение поля "номер стоп-заявки", Выдает ошибку всеми возможными способами
 
Цитата
Sergey Gorokhov написал:
Здравствуйте,
Номер должен быть в виде строки и без нулей.
["STOP_ORDER_KEY"] = "1314760"

к слову tostring("1314760.0000000") вернет "1314760.0000000" (не правильно)
а tostring(1314760.0000000) вернет "1314760" (правильно)

попробуйте добавить +0 в параметре функции tostring
["STOP_ORDER_KEY"] = tostring(ST_orderNum+0)
Sergey Gorokhov,   вариант ["STOP_ORDER_KEY"] = tostring(ST_orderNum+0) возвращает "attempt to perform arithmetic on local 'ST_orderNum' (a nil value)"
Значение поля "номер стоп-заявки", Выдает ошибку всеми возможными способами
 
tonumber(ST_orderNum) , конечно тоже пробовал
Значение поля "номер стоп-заявки", Выдает ошибку всеми возможными способами
 
Получаю номер стоп заявки из таблицы и пытаюсь ее снять через ["STOP_ORDER_KEY"]
получаю ошибку или "не указано значение поля" - если вводить сразу полученную переменную = ST_orderNum
либо "Неправильно указан номер заявки: "1314760.000000" - если вводить через функции

перепробовано уже:
math.floor(ST_orderNum)
tostring(ST_orderNum)
math.abs(ST_orderNum)

Каким же должен быть формат данного поля?
Обращение к конкретному окну Quik и конкретной вкладке
 
Sergey Gorokhov, ок.

к Окну можно обратиться и через командную строку, например..

А по Вкладкам внутри Окна можно как-то переходить?  
Обращение к конкретному окну Quik и конкретной вкладке
 
 скрипты на  Lua, если это имеет значение..
Обращение к конкретному окну Quik и конкретной вкладке
 
Здравствуйте!

1. Возможно ли обращение к конкретному окну программы, если запущено более одного экземпляра? (действие -  развернуть на весь экран)

2. Возможно ли обращение к конкретной вкладке внутри окна? (действие -  развернуть на весь экран, то есть перейти на нее)

Скрипт делает скрин экрана по событию, было бы крайне удобно при работе несколькими скриптами скринить именно нужную вкладку в нужном экземпляре программы.
Версия 7.2 - Идентификаторы, Изменились поля идентификаторов
 
Zoya Skvorcova, здравствуйте!

а когда (примерно) ожидать?

Чтобы понять стоит ли заново инсталлировать версию 7.0 или ждать обновления..
Версия 7.2 - Идентификаторы, Изменились поля идентификаторов
 
В версии 7.0 у каждого индикатора было своё (независимое, уникальное) поле Идентификатор. Данное поле позволяло скрипту однозначно идентифицировать получаемую информацию.
В версии 7.2, устанавливая идентификатор к любому Графику любого Инструмента, я получаю сквозную установку данного идентификатора для данного типа Графика на всех Инструментах.

Пример в скринах. Ставлю идентификатор к Прайс на Br - такой же выскакивает на всех Инструментах..

Как взять данные Прайс Br и Si, например. И быть уверенным, что это данные именно с этих Инструментов?
Страницы: 1
Наверх