Егор Масалкин написал: Здравствуйте! Пишу торгового робота. При запуске появляется ошибка в терминале:
"TransOpenPos(): Error: Не указано значение поля "К/П" "
Что такое это неизвестное "К/П"?
Здравствуйте,
Это направление транзакции. Покупка/Продажа. Откройте форму ввода заявки и посмотрите, как у Вас обозначено направление заявки. Именно так и нужно указать. Т.е если Купля, то в роботе указываете Купля, а не Покупка.
Егор Масалкин написал: Здравствуйте! Пишу торгового робота. При запуске появляется ошибка в терминале:
"TransOpenPos(): Error: Не указано значение поля "К/П" "
Что такое это неизвестное "К/П"?
Здравствуйте,
Это направление транзакции. Покупка/Продажа. Откройте форму ввода заявки и посмотрите, как у Вас обозначено направление заявки. Именно так и нужно указать. Т.е если Купля, то в роботе указываете Купля, а не Покупка.
То есть если у меня написано "Покупка", то в строке отправки заявки ['OPERATION'] = Соответственно указываем "Покупка" или "Продажа", верно?
Егор Масалкин написал: Здравствуйте! Пишу торгового робота. При запуске появляется ошибка в терминале:
"TransOpenPos(): Error: Не указано значение поля "К/П" "
Что такое это неизвестное "К/П"?
Здравствуйте,
Это направление транзакции. Покупка/Продажа. Откройте форму ввода заявки и посмотрите, как у Вас обозначено направление заявки. Именно так и нужно указать. Т.е если Купля, то в роботе указываете Купля, а не Покупка.
То есть если у меня написано "Покупка", то в строке отправки заявки ['OPERATION'] = Соответственно указываем "Покупка" или "Продажа", верно?
Да, если транзакция записывается в универсальном виде, если используется примеры из документации на QUIK, то нужно писать «S» – продать, «B» – купить. Выложите свой код транзакции, мы посмотрим и скажем точно.
Type - параметр типа заявки, либо 'B' либо 'S' Код переписал под "покупку\продажу", но ещё на запускал
function trade(Type) trans_id = trans_id + 1; price = 0; local Operation = ''; if Type=='B' then price=getParamEx(Settings.CLASS_CODE,Settings.SEC_CODE,"OFFER") else price=getParamEx(Settings.CLASS_CODE,Settings.SEC_CODE,"BID") end; TransOpenPos(); end
function TransOpenPos() -- Получает ID для следующей транзакции trans_id = trans_id + 1 -- Заполняет структуру для отправки транзакции local direction; if (Type=='B') then direction='Покупка' else direction='Продажа' end; local Transaction={ ['TRANS_ID'] = tostring(trans_id), ['ACTION'] = 'NEW_ORDER', ['CLASSCODE'] = Settings.CLASS_CODE, ['SECCODE'] = Settings.SEC_CODE, ['OPERATION'] = direction, -- операция ("B" - buy, или "S" - sell) ['TYPE'] = 'L', -- по рынку (LIMIT) ['QUANTITY'] = '1', -- количество ['ACCOUNT'] = Settings.ACCOUNT, ['PRICE'] = tostring(math.floor(price.param_value)), ['COMMENT'] = '' } -- Отправляет транзакцию local Res = sendTransaction(Transaction) if Res ~= '' then message('TransOpenPos(): Error: '..Res) else message('TransOpenPos(): FUCK YEAH') end end
TransOpenPos(): Error: Не указано значение поля "К/П"
Код:
function trade(Type) trans_id = trans_id + 1; price = 0; local Operation = ''; if Type=='B' then price=getParamEx(Settings.CLASS_CODE,Settings.SEC_CODE,"OFFER") else price=getParamEx(Settings.CLASS_CODE,Settings.SEC_CODE,"BID") end; TransOpenPos(); end
function TransOpenPos() -- Получает ID для следующей транзакции trans_id = trans_id + 1 -- Заполняет структуру для отправки транзакции local direction; local Transaction={ ['TRANS_ID'] = tostring(trans_id), ['ACTION'] = 'NEW_ORDER', ['CLASSCODE'] = Settings.CLASS_CODE, ['SECCODE'] = Settings.SEC_CODE, ['OPERATION'] = Type, -- операция ("B" - buy, или "S" - sell) ['TYPE'] = 'L', -- по рынку (LIMIT) ['QUANTITY'] = '1', -- количество ['ACCOUNT'] = Settings.ACCOUNT, ['PRICE'] = tostring(math.floor(price.param_value)), ['COMMENT'] = '' } -- Отправляет транзакцию local Res = sendTransaction(Transaction) if Res ~= '' then message('TransOpenPos(): Error: '..Res) else message('TransOpenPos(): FUCK YEAH') end end
function trade(Type)
trans_id = trans_id + 1;
price = 0;
local Operation = '';
if Type=='B' then
price=getParamEx(Settings.CLASS_CODE,Settings.SEC_CODE,"OFFER")
else
price=getParamEx(Settings.CLASS_CODE,Settings.SEC_CODE,"BID")
end;
TransOpenPos(Type);
end
function TransOpenPos(Type)
if not (Type=='B') then Type=='S'
-- Получает ID для следующей транзакции
trans_id = trans_id + 1
-- Заполняет структуру для отправки транзакции
local direction;
local Transaction={
['TRANS_ID'] = tostring(trans_id),
['ACTION'] = 'NEW_ORDER',
['CLASSCODE'] = Settings.CLASS_CODE,
['SECCODE'] = Settings.SEC_CODE,
['OPERATION'] = Type, -- операция ("B" - buy, или "S" - sell)
['TYPE'] = 'L', -- по рынку (LIMIT)
['QUANTITY'] = '1', -- количество
['ACCOUNT'] = Settings.ACCOUNT,
['PRICE'] = tostring(math.floor(price.param_value)),
['COMMENT'] = ''
}
-- Отправляет транзакцию
local Res = sendTransaction(Transaction)
if Res ~= '' then message('TransOpenPos(): Error: '..Res) else message('TransOpenPos(): FUCK YEAH') end
end
function trade(Type)
trans_id = trans_id + 1;
price = 0;
local Operation = '';
if Type=='B' then
price=getParamEx(Settings.CLASS_CODE,Settings.SEC_CODE,"OFFER")
else
price=getParamEx(Settings.CLASS_CODE,Settings.SEC_CODE,"BID")
end;
TransOpenPos(Type);
end
function TransOpenPos(Type)
if not (Type=='B') then Type='S'
-- Получает ID для следующей транзакции
trans_id = trans_id + 1
-- Заполняет структуру для отправки транзакции
local direction;
local Transaction={
['TRANS_ID'] = tostring(trans_id),
['ACTION'] = 'NEW_ORDER',
['CLASSCODE'] = Settings.CLASS_CODE,
['SECCODE'] = Settings.SEC_CODE,
['OPERATION'] = Type, -- операция ("B" - buy, или "S" - sell)
['TYPE'] = 'L', -- по рынку (LIMIT)
['QUANTITY'] = '1', -- количество
['ACCOUNT'] = Settings.ACCOUNT,
['PRICE'] = tostring(math.floor(price.param_value)),
['COMMENT'] = ''
}
-- Отправляет транзакцию
local Res = sendTransaction(Transaction)
if Res ~= '' then message('TransOpenPos(): Error: '..Res) else message('TransOpenPos(): FUCK YEAH') end
end