По какой причине не отменяется заявка?

Страницы: 1
RSS
По какой причине не отменяется заявка?, Или где и как можно посмотреть причину отмены транзакции по снятию заявки?
 
Написал простого робота, который покупает по рыночной стоимости и продает по тейк-профиту, но если график пошел не туда (куда надо) ставлю фьючерс на продажу по рыночной стоимости, а стоп- заявку пытаюсь снять, но система Quik выдает сообщение, что снять указанную заявку не может. Самые простые причины допускаю или ошибка в коде или ошибка в определении номера заявки и в коде, но как локализовать причину ошибки не могу понять. Вот часть кода на всякий случай, может кто то что то подскажет?
Поиск номера ордера по номеру транзакции
Код
...
 ordernum=snat_zayvk(trans) --номер заявки по которой была отправлена транзакции на покупку ТП
 stopzayvka(ordernum)
...
function snat_zayvk(tran)
  for i=0,getNumberOf('orders')-1 do --количество записей в таблице
    local orders = getItem('orders', i); -- получает строку с номером i
      if tonumber(orders.trans_id)==tonumber(tran) then
         ordernum=tonumber(orders.order_num)
     end
  end
  return ordernum
end
И код транзакции на снятие заявки по номеру ордера заявки
Код
function stopzayvka(nom_order)
   transid_m=tonumber(osdat());
 local Transaction={
    ['TRANS_ID']   = tostring(transid_m),  
    ['ACCOUNT']    = 'SPBFUT000pf',           
   ['CLASSCODE']  = 'SPBFUT',
    ['ACTION']     = 'KILL_ORDER',
   ['ORDER_KEY']   = tostring(nom_order)
  }
 sendTransaction(Transaction)
   end
человек (не робот)
 
Вот опять это сообщение вылетело(
человек (не робот)
 
Цитата
Андрей написал:
Написал простого робота, который покупает по рыночной стоимости
Все просто, рыночные заявки на то и рыночные что они либо сразу исполняются, либо сразу снимаются. На то они и рыночные.
Следовательно снимать просто нечего.
Нельзя снять уже снятую заявку.
Нельзя снять уже исполненную заявку.
 
Спасибо за ответ, то что вы написали это понятно и логично, я снимаю стоп заявки, или точнее сказать лимитированные заявки, которые не ушли ещё на сервер, они находятся у брокера и не исполнены. Они должны сниматься и снимаются в ручную, у меня не получается снимать их из программы. Формируется ли какой либо флаг на транзакцию по снятию лимитированной стоп заявки. В таблице транзакции я их не вижу или надо просто настроить обратный вызов на транзакцию и там смотреть флаг не исполнения транзакции? Да еаверно так и надо)
человек (не робот)
 
Цитата
Андрей написал:
я снимаю стоп заявки,
нет, Вы снимаете НЕ стоп заявки, а обычные биржевые заявки.
orders - это НЕ таблица стоп заявок.
KILL_ORDER - НЕ снимает стоп заявки и никогда не снимал, он снимает только обычные заявки.
Следовательно Вы снимаете НЕ стоп заявки, а обычные биржевые заявки.

Цитата
Андрей написал:
или точнее сказать лимитированные заявки, которые не ушли ещё на сервер, они находятся у брокера и не исполнены.
таких заявок вообще не бывает.
Есть биржевые заявки, которые УЖЕ на бирже и судя по выше сказанному о них и идет речь.
А есть стоп-заявки, которые действительно находятся на сервере брокера, но они в таблице stop_orders и для их снятия нужна транзакция KILL_STOP_ORDER

В связи с этим Вы скорей всего снимаете не то что Вам надо снять.
Проверьте еще раз внимательней, что Вы снимаете в терминале и что пытаетесь снять в коде скрипта.
 
Понял, спасибо большое) проверю вечером
человек (не робот)
Страницы: 1
Читают тему (гостей: 1)
Наверх