Андрей (Автор тем)

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

Страницы: 1
Функция CalcBuySell
 
Друзья, подскажите, пожалуйста, почему элементарный набор кода выдает nil на выходе? sleep перед выводом ставил, не помогает.
Код
function main()
   local OpOrder = "B"
   local qty
   local comis
   local PRC1 = tonumber(getParamEx("SPBFUT", "RIM1", "LAST").param_value)
   local PRC2 = tonumber(getParamEx("SPBFUT", "RIM1", "SEC_PRICE_STEP").param_value)
   
   
   if OpOrder == "B" then
      PRCStr = tostring(math.ceil(PRC1+50*PRC2))
      qty, comis = CalcBuySell("SPBFUT", "RIM1", "", "SPBFUT001bm", PRCStr, true)
   elseif OpOrder == "S" then
      PRCStr = tostring(math.ceil(PRC1-50*PRC2))
      qty, comis = CalcBuySell("SPBFUT", "RIM1", "", "SPBFUT001bm", PRCStr, false)
   end
   message(tostring(qty))
end

PS
КАК ЖЕ МНЕ ДОРОГ ЭТОТ LUA
Оптимизация QUIK
 
Господа разработчики, исключите всю ненужную для обывателя информацию из таблиц. 95% информации необходима только для профессионального финансового менеджмента и просто перегружает информативно.
Вот в какой таблице, например, найти текущее состояние счета. Под текущим я понимаю мгновенное (с учетом +/- вариационной маржи, комиссии брокера и пр. +/-). Я так понял приходится городить расчеты самому. А для этого надо знать всю объектную структуру программы (что в какую колонку переносится и перезаносится и при каких условиях) - чего нет в наличии. Вот откуда мне узнать за 1 минуту, не читая справки, (что нормально) какое у меня текущее состояние счета при нескольких открытых позициях на срочке и на фондовом без калькулятора?...
QUIK не отправляет заявку, в которой цена представлена переменной
 
Всем привет!
Объясните мне, пожалуйста, нижеследующий завих QLUA.
Вот так заявка отправляется:
Код
function main()
   Transaction={
   ["TRANS_ID"]   = "1005001",
   ["ACTION"]     = "NEW_ORDER",
   ["CLASSCODE"]  = "SPBFUT",
   ["SECCODE"]    = "RIH1",
   ["OPERATION"]  = "B", -- операция ("B" - buy, или "S" - sell)
   ["TYPE"]       = "L", -- L - лимитная 
   ["QUANTITY"]   = "1", -- количество
   ["ACCOUNT"]    = "SPBFUT001bm",
   ["PRICE"]      = "155500"
   }
   sendTransaction(Transaction)
end
А вот так игнорирует заявку:
Код
function main()
   local PRCStr = tostring(tonumber(getParamEx("SPBFUT", "RIH1", "LAST").param_value) + 50 * tonumber(getParamEx("SPBFUT", "RIH1", "SEC_PRICE_STEP").param_value))
   Transaction={
   ["TRANS_ID"]   = "1005001",
   ["ACTION"]     = "NEW_ORDER",
   ["CLASSCODE"]  = "SPBFUT",
   ["SECCODE"]    = "RIH1",
   ["OPERATION"]  = "B", -- операция ("B" - buy, или "S" - sell)
   ["TYPE"]       = "L", -- L - лимитная 
   ["QUANTITY"]   = "1", -- количество
   ["ACCOUNT"]    = "SPBFUT001bm",
   ["PRICE"]      = PRCStr
   }
   sendTransaction(Transaction)
end
В двух словах: в первом примере цена лимитника задана непосредственно строкой в поле, во втором варианте цена задана переменной.
Цена во втором случае высчитывается нормально и выводится в окно оповещений, но заявка не отправляется. Скрипт просто проходит по коду без какой-либо реакции. Ошибок также не выводит. Кто-нибудь знает ЧТО ЭТО ЗА БРЕД?
Терминал обновлял. Демо версия 8.11.0.66. Счет зарегистрирован у ARQA.
Перезагружался.
Монитор протирал.)))
Мышку гладил.)))
Мастдай не переустанавливал. Не предлагать.
Страницы: 1
Наверх