Неверный код клиента

Страницы: 1
RSS
Неверный код клиента
 
Добрый день.
Брокер Открытие. Торгует робот на споте. Завёл себе ещё один счёт на ММВБ (второй), брокер добавил его в КВИК. Старый робот начал глючить, хотя в нём не вносились никакие изменения. Ошибка Неверный код клиента.
Сломал голову. Прошу подсказать что случилось
Вот строка отправки заявок:
conditions=="LONG"
Цитата
send_limit_buy_in, reply=sendLimit(class_code[sec],sec,"B",buy_price,buy_lots,account,"", conditions)
Вот функция
Код
function sendLimit(class,security,direction,price,volume,account,client_code,comment,execution_condition,expire_date,market_maker)
    if string_find(FUT_OPT_CLASSES,class)~=nil then
        return sendLimitFO(class,security,direction,price,volume,account,comment,execution_condition,expire_date,market_maker)
    else
        return sendLimitSpot(class,security,direction,price,volume,account,client_code,comment,market_maker)
    end
end
Код
function sendLimitSpot(class,security,direction,price,volume,account,client_code,comment,market_maker)
    -- отправка лимитированной заявки
    -- все параметры кроме кода клиента и коментария должны быть не нил
    -- ВАЖНО! цена должна быть стрингом с количеством знаков после точки для данной бумаги
    -- если код клиента нил - подлставляем счет
    -- market_maker - признак заявки маркет-мейкера. true\false
    -- Данная функция возвращает 2 параметра
    --     1. ID присвоенный транзакции либо nil если транзакция отвергнута на уровне сервера Квик
    --     2. Ответное сообщение сервера Квик либо строку с параметрами транзакции
    if (class==nil or security==nil or direction==nil or price==nil or volume==nil or account==nil) then
        return nil,"QL.sendLimitSpot(): Can`t send order. Nil parameters."
    end

    local trans_id=random_max()        
    local transaction={
        ["TRANS_ID"]=tostring(trans_id),
        ["ACTION"]="NEW_ORDER",
        ["CLASSCODE"]=class,
        ["SECCODE"]=security,
        ["OPERATION"]=direction,

        ["QUANTITY"]=string_format("%d",tostring(volume)),
        ["PRICE"]=toPrice(security,price,class),
        ["ACCOUNT"]=tostring(account)
    }
    if client_code==nil then
        transaction.client_code=tostring(account)
    else
        transaction.client_code=tostring(client_code)
    end
    if comment~=nil then
        transaction.client_code=string_sub(transaction.client_code..'/'..tostring(comment),0,20)
    else
        transaction.client_code=string_sub(transaction.client_code..'/QL',0,20)
    end
    if market_maker~=nil and market_maker then
        transaction['MARKET_MAKER_ORDER']='YES'
    end
    local res=sendTransaction(transaction)
    if res~="" then
        return nil, "QL.sendLimitSpot():"..res
    else
        return trans_id, "QL.sendLimitSpot(): Limit order sended sucesfully. Class="..class.." Sec="..security.." Dir="..direction.." Price="..price.." Vol="..volume.." Acc="..account.." Trans_id="..trans_id
    end
end
 
проблема решена
теперь надо задавать код клиента, а раньше можно было обойтись без этого
 
Здравствуйте,
Если код клиента у Вас один, то в транзакции его указывать не обязательно, сервер сам его подставит.
Если у Вас несколько кодов клиента, то требуется в транзакции явно указать какой нужно использовать.
Сейчас же у Вас в транзакции вообще отсутствует параметр указывающий какой код клиента использовать.
Добавьте в таблицу transaction параметр CLIENT_CODE по аналогии с остальными, в котором укажите нужный код клиента.
Страницы: 1
Читают тему
Наверх