Перевод робота с lua 5.1 на lua 5.3

Страницы: 1
RSS
Перевод робота с lua 5.1 на lua 5.3
 
Добрый день.

Писал робота для Квика версии 7 на lua 5.1. При использовании на демо-версии Квика 7 версии робот работает; при использовании на реальной версии 8.12.0.41 - не выставляет отложку в соответствии с кодом.
Вопрос: каким образом нужно изменить код, чтобы робот заработал на новой версии Квика?
Возможно, есть какое-то руководство или отдельная тема на форуме, посвящённая изменениям в коде при переходе с lua 5.1 на lua 5.3?

Неработающая на новой версии Квика часть кода:

Код
function NewOtlLong(acc,emit,class)
   
   local NumOfCandlesM1 = getNumCandles (graphic_id)                     
   local t, n, _ = getCandlesByIndex(graphic_id, 0, NumOfCandlesM1-3, 3)      
   
   transaction={                                                
               ["ACCOUNT"] = acc,
               ["CLASSCODE"] = class,
               ["SECCODE"] = emit,
               ["ACTION"] = "NEW_STOP_ORDER",
               ["TRANS_ID"] = "001",
               ["OPERATION"] = "B",
               ["QUANTITY"] = "1",
               ["STOPPRICE"] = tostring((t[1].low)+60),
               ["PRICE"] = tostring((t[1].low)+60),
               ["EXPIRY_DATE"] = "GTC"
            }
   transaction.CLIENT_CODE = "РОБОТ"
   local res = sendTransaction(transaction)                        
   return 1                                                   
end
 
Много раз уже обсуждалось.
Для примера https://forum.quik.ru/messages/forum10/message49125/topic5841
lua 5.3 при использовании tostring к типу float добаляет ".0 в представление.
tostring(5) ~ "5.0"

Если число 5 выглядит как целое, но его тип math.type может быть float. Поэтому tostring добавит в представление точку и ноль. Квик такое не принимает в качестве параметра транзакций, где предполагается целое.
 
Цитата
Nikolay написал:
Много раз уже обсуждалось.
Для примера  https://forum.quik.ru/messages/forum10/message49125/topic5841
lua 5.3 при использовании tostring к типу float добаляет ".0 в представление.
tostring(5) ~ "5.0"

Если число 5 выглядит как целое, но его тип math.type может быть float. Поэтому tostring добавит в представление точку и ноль. Квик такое не принимает в качестве параметра транзакций, где предполагается целое.
Благодарю. Добавил math.floor:  tostring(math.floor((t[1].low)+60)), заработало.
Страницы: 1
Читают тему (гостей: 1)
Наверх