Не указано значение поля "К/П"

Страницы: 1
RSS
Не указано значение поля "К/П"
 
Здравствуйте! Пишу торгового робота. При запуске появляется ошибка в терминале:

"TransOpenPos(): Error:  Не указано значение поля "К/П" "

Что такое это неизвестное "К/П"?
 
Цитата
Егор Масалкин написал:
Здравствуйте! Пишу торгового робота. При запуске появляется ошибка в терминале:

"TransOpenPos(): Error:  Не указано значение поля "К/П" "

Что такое это неизвестное "К/П"?
Здравствуйте,

Это направление транзакции. Покупка/Продажа.
Откройте форму ввода заявки и посмотрите, как у Вас обозначено направление заявки.
Именно так и нужно указать. Т.е если Купля, то в роботе указываете Купля, а не Покупка.
 
Цитата
Egor Zaytsev написал:
Цитата
Егор Масалкин   написал:
Здравствуйте! Пишу торгового робота. При запуске появляется ошибка в терминале:

"TransOpenPos(): Error:  Не указано значение поля "К/П" "

Что такое это неизвестное "К/П"?
Здравствуйте,

Это направление транзакции. Покупка/Продажа.
Откройте форму ввода заявки и посмотрите, как у Вас обозначено направление заявки.
Именно так и нужно указать. Т.е если Купля, то в роботе указываете Купля, а не Покупка.

То есть если у меня написано "Покупка", то в строке отправки заявки
['OPERATION']  =
Соответственно указываем "Покупка" или "Продажа", верно?
 
Цитата
Егор Масалкин написал:
Цитата
Egor Zaytsev   написал:
Цитата
Егор Масалкин   написал:
Здравствуйте! Пишу торгового робота. При запуске появляется ошибка в терминале:

"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:  Неправильно указана операция: "Продажа"
 
Здравствуйте,
Причина в этих строках:
Цитата
Егор Масалкин написал:
if (Type=='B') then direction='Покупка'
 else direction='Продажа' end;

удалите их
 
Цитата
Sergey Gorokhov написал:
Здравствуйте,
Причина в этих строках:
Цитата
Егор Масалкин   написал:
if (Type=='B') then direction='Покупка'
 else direction='Продажа' end;
удалите их
Но тогда direction будет пустой...
а ведь ['OPERATION'] = direction,

Как быть в таком случае?
 
Егор Масалкин,
Укажите так:
['OPERATION'] = Type,
 
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
 
Кажется я понял в чем ошибка... скорее всего связана с областью видимости переменной Type
 
Код
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
 
Вроде получилось, спасибо!
Страницы: 1
Читают тему
Наверх