создание из Lua заявки тэйк-профит и стоп-лимит

Страницы: 1
RSS
создание из Lua заявки тэйк-профит и стоп-лимит, заявка не выставляется
 
Добрый день!

Помогите, пожалуйста, разобраться. Скрипт отправляет две заявки: обычную и стоп-заявку типа "тэйк-профит и стоп-лимит". Обычная заявка проходит. Стоп-заявку терминал вообще не замечает, никаких ошибок не выдает. Заявки нет.
Причем, когда отправляет обычную стоп заявку типа стоп-лимит - все работает. Видимо, у меня где-то что-то неправильно указано для заявки типа "тэйк-профит и стоп-лимит"....
Вот функция, которая вызывает заявку:

function doBuy(curPrice)
   local price = curPrice + BUFFER -- цена заявки на покупку
   local q = getQuantity("B", price)

   PrintDbgStr("ПОКУПАЕМ! "..tostring(q))

   -- посчитаем относительный размер стопа
   local relStopSize = getStopSize()
   PrintDbgStr("размер стопа: " .. relStopSize)

   local stop_price = curPrice - relStopSize -- уровень стопа
   PrintDbgStr("Стоп-цена: " .. stop_price)

local take_profit_price = curPrice + PROFIT_SIZE -- уроверь тейк-профита
PrintDbgStr("Тейк-профит: " .. take_profit_price)

   -- заявка
   local order = {
       ["TRANS_ID"]    = "1",
       ["ACTION"]      = "NEW_ORDER",
       ["CLASSCODE"]   = "SPBFUT",
       ["CLIENT_CODE"] = CLIENT_CODE,
       ["SECCODE"]     = INSTRUMENT,
       ["ACCOUNT"]     = ACCOUNT,
       ["OPERATION"]   = "B",
       ["QUANTITY"]    = string.format('%.0f', q),
       ["PRICE"]       = string.format('%.0f', price)
       --["TYPE"]        = L  -- так было в прошлом роботе, не знаю что это значит
   }

   -- стоп-заявка
   local stop = {
       ["TRANS_ID"]     = "2",
       ["ACTION"]       = "NEW_STOP_ORDER",
       ["CLASSCODE"]   = "SPBFUT",
["CLIENT_CODE"]     = CLIENT_CODE,
       ["SECCODE"]     = INSTRUMENT,
       ["ACCOUNT"]     = ACCOUNT,
       ["OPERATION"]   = "S",
["QUANTITY"] = string.format('%.0f', q),
["STOPPRICE"]   = string.format('%.0f', take_profit_price),
["STOP_ORDER_KIND"] = "TAKE_PROFIT_AND_STOP_LIMIT_ORDER",
["STOPPRICE2"]   = string.format('%.0f', stop_price),
       ["PRICE"]       = string.format('%.0f', stop_price - BUFFER),
["OFFSET"] = OTSTUP,
["OFFSET_UNITS"] = "PRICE_UNITS",
["SPREAD"] = SPRED,
["SPREAD_UNITS"] = "PRICE_UNITS",
       ["EXPIRY_DATE"] = "TODAY"
}

   sendTransaction(order)
   sendTransaction(stop)
end
 
Цитата
Михаил написал:

Стоп-заявку терминал вообще не замечает, никаких ошибок не выдает. Заявки нет.

sendTransaction(stop)

По документации:
"Формат вызова:  STRING result sendTransaction(TABLE transaction)"

Сделайте так:
Код
local result = sendTransaction(stop)
И посмотрите, что вернул сам терминал в result, например:
Код
message(result)
 
Благодарю!

Решено. Проблема оказаль в неправильном формате значений отступа и спреда (нужно было задавать их через string.format...
Страницы: 1
Читают тему
Наверх