Станислав (Все сообщения пользователя)

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

Страницы: 1
attempt to index a nil value, При переборе циклом for выдвет ошибку attempt to index a nil value
 
Спасибо, SearchItems сработал. Ошибка больше не возникает!
attempt to index a nil value, При переборе циклом for выдвет ошибку attempt to index a nil value
 
При переборе циклом for выдвет ошибку attempt to index a nil value. В чем ошибка функции?
Код
function Count_Contracts_By_Price(price, sell_or_buy_order)
    local qty_opders = 0

    for f = 0, getNumberOf("orders") - 1 do
        local order_info = getItem("orders", f)
        if order_info.sec_code == Emit and order_info.account == MyAccount and CheckBit(order_info.flags, 0) == 1 and (order_info.brokerref == "LimitLevels") then
            if (order_info.price == price) and (CheckBit(order_info.flags, 2) == 1) and (sell_or_buy_order == "Sell") then
                qty_opders = qty_opders + order_info.qty
            elseif (order_info.price == price) and (CheckBit(order_info.flags, 2) ~= 1) and (sell_or_buy_order == "Buy") then
                qty_opders = qty_opders + order_info.qty
            end
        end
    end
    return qty_opders
end

Кодировка в таблицах Квика
 
Да, проблема решена. Я код пишу в MS Visual Studio Code и кодировка стояла UTF-8. Для решения проблемы нужно просто пересохранить файл в кодировке Windows 1251 и все будет тип топ.
Кодировка в таблицах Квика
 
Да, стандартные таблицы Квика работают как надо, проблема с таблицами робота
Кодировка в таблицах Квика
 
Установил стандартные шрифты, как указано в пунктах 1-3. Убрал файл info.wnd из корневой папки, перезапустил Квик, открылся Квик безо всяких таблиц графиков и .тп., запустил робота и все как прежде - вместо русских букв показывает иероглифы. Может проблема в Windows 11. У меня лицензионная система, купленная официально. Но нюанс в том, что сборка Британская. Может там собака зарыта?
Кодировка в таблицах Квика
 
Не помогло, перевел все названия из своих таблиц на английский язык, что очень неприятно. Хотелось бы чтоб все было на великом могучем.  
Кодировка в таблицах Квика
 
У меня Windows 11, сделал все по аналогии, но работать как надо не стало
Кодировка в таблицах Квика
 
Если бы ничего не изменилось, то все работало бы нормально, как это было до этого.
Кодировка в таблицах Квика
 
Больше двух лет не запускал своего робота и возникла в нем необходимость. При отображении таблиц робота вместо русских блов отображаются непонятные символы (СКИРН). Как исправить проблему?
Таблицы в функции
 
Вы правы, когда делаешь так:
Код
local function Algo(S)

local pos = S.POS
local mp = S.MIDDLE_PRICE

end
то все замечательно работает, но тогда универсальность функции теряется. Мне нужно, чтобы в эту функцию можно было передавать и другие таблицы. А иначе придется эту функцию несколько раз копировать
Таблицы в функции
 
У меня еще вопрос, можно ли таблицу передавать в функцию, как переменную? Она в строковое значение не переведится ли? Может у меня из-за этого ошибка? Он же ругается, что ждет таблицу, а получает переменную.

А вот с этим  S = {}............S = 'lalalla' все в порядке
Таблицы в функции
 
Вызываю вот так:
Код
Algo(S, S.Pos, S.MIDDLE_PRICE)
Таблицы в функции
 
И некая функция:
Код
function Algo(s, sPos, sMIDDLE_PRICE)


end
Почему, когда я передаю таблицу в качестве параметров функции, функция не работает и выдает сообщение, функция ждет таблицу, а получает строковые данные?
Таблицы в функции
 
Здравстуйте, имеется таблица:
Код
S                  = 0       
S.POS              = 0               
S.MIDDLE_PRICE     = 0   
Прибыль/Убыток
 
Всех приветствую! Есть у кого код, который высчитвает из таблицы сделок прибыль и убыток по инструменту срочного рынка? Если не жалко поделитесь пожалуйста!
Транзакции на снятие Лимит. заявки
 
В общем пока здесь демагогию разводили, код заработал как-то сам, причем правильно)) Не знаю как это получилось.. Всем спасибо за ответы :lol:  
Транзакции на снятие Лимит. заявки
 
Это все, конечно, замечательно, но может кто-нибудь скинет этот кусок кода, который нормально умеет снимать заявки? (если не жалко конечно)
Транзакции на снятие Лимит. заявки
 
Поставил задержку (пробовал от 1 до 5 секунд) теперь вот что выдает:
Транзакции на снятие Лимит. заявки
 
Функция вызывается вот этим кодом:

if (PosNow == 0 or (PosNow ~= 0 and SignFunc(PosNow) ~= SignFunc(PrevPos)))then
   DeleteAllProfit(MyAccount, Emit, Class, FileLog,  "Удаление ПРОФИТА при перевороте или нулевой позе")
end

Если текущая поза равна нулю или был переворот позиции, то удаляются все профиты.
Транзакции на снятие Лимит. заявки
 
Скрин
Транзакции на снятие Лимит. заявки
 
Есть участок кода:
function DeleteAllProfit(acc, emit, class, file, prevString) --ФУНКЦИЯ УДАЛЕНИЯ ВСЕХ ТЕЙК-ПРОФИТОВ
   local N = getNumberOf("orders")
   local count = 0
   for i = 0, N - 1 do
       local row = getItem("orders", i)
       if (row.account == acc and row.sec_code == emit and row.class_code == class) then
           if (bit.band(row.flags,1) > 0) then
               local keyNumber = row.order_num
               DeleteProfitByNumber(emit, class, keyNumber, file, prevString)
               count = count + 1
           end
       end
   end
return count
end

function DeleteProfitByNumber(emit, class, keyNumber, file, prevString) --ФУНКЦИЯ УДАЛЕНИЯ ЗАЯВКИ ПО НОМЕРУ
transaction = { ["CLASSCODE"] = class,
                       ["SECCODE"] = emit,
                       ["TRANS_ID"] = "123",
                       ["ACTION"] = "KILL_ORDER",
                       ["ORDER_KEY"] = tostring(keyNumber),
                       ["CLIENT_CODE"] = "accountSL",
                      }
sendTransaction(transaction)
end

Вопрос: почему при вызове функции "DeleteAllProfit " заявка удаляется правильно, но одновременно выскакивает ошибка в Квике:Ошибка снятия заявки. [GW][14] "Не найдена заявка для удаления"?  
Отладка кода, Программа для отладки кода на языке lua для квик версии 9+
 
Здравствуйте, подскажите пожалуйста (а лучше) дайте ссылку на работающий отладчик кода. DECODA не работает... Спасибо!
Страницы: 1
Наверх