Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
ФХЪРСап 13, 2024, 07:22:32 pm
Начало Помощь Поиск Войти Регистрация
Новости:

Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: заявка отменена выставляем новую « предыдущая тема следующая тема »
Страниц: [1] Печать
Автор Тема: заявка отменена выставляем новую  (Прочитано 7460 раз)
daytrader
Full Member
***
Сообщений: 174


Просмотр профиля Email
« : РТУгбвР 10, 2011, 02:14:50 pm »

что-то у меня никак не выходит переставить заявку.
проверить это как-то быстро невозможно, так что вот код.
id заявки у меня имеется

Code: [Select]
var order = getOrder(order_id);
var status = order["status"];
if (status != OS_INACTIVE){ // если статус заявки понятен
if (status == OS_CANCELLED) {
if (order["operation"] == OP_SELL) {
trade_action::sell(order["quantity"], ::lots,close-slip);
}
if (order["operation"] == OP_BUY) {
trade_action::buy(order["quantity"], ::lots,close+slip);
}
}
}

тут как-то трижды биржа снимала мои заявки (я так и не понял почему) но новые не переставлялись сразу же и вообще никак.

Код находится в calc ()

UPD
думаю что необходимо так же проверять на: OS_DENIED, OS_REJECTED,
OS_REMOVED, OS_REFUSED.
думаю поэтому и не выставлялись - не все условия были учтены.
« Последнее редактирование: РТУгбвР 10, 2011, 09:12:57 pm от daytrader » Записан
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #1 : РТУгбвР 11, 2011, 10:48:48 am »

Не вполне понятно что у вас происходит и что вы хотите сделать, да и код приведен не полностью - может быть ошибка и не в этом фрагменте, но в целом пока предварительно могу высказать следующие соображения:

1) Если заявка отклоняется брокером или биржей, то статус у нее будет OS_REJECTED или OS_DENIED. OS_CANCELLED - это статус заявки для случая, если вы сами сняли заявку.

2) Не понятно зачем вы делаете это в calc(). Логичнее делать это в onATFOrder/onClientOrder - эта функция вызывается при любом изменении статуса заявки.

3) Чтобы понять причину, по которой снимаются ваши заявки, найдите их в таблице заявок в терминале, и просто посмотрите их статус - там должна быть указана причина снятия заявки.

4) Не понятно зачем вы делаете дополнительную проверку на OS_INACTIVE. Если у вас статус заявки OS_CANCELLED, то он в любом случае не будет OS_INACTIVE - вы просто делаете лишние проверки.
Записан
daytrader
Full Member
***
Сообщений: 174


Просмотр профиля Email
« Ответ #2 : РТУгбвР 12, 2011, 09:50:53 am »

по поводу "зачем в calc" спасибо что подсказали, но я как-то все в калк пишу.

кенсел действительно не нужен. Так что я на || поставил все остальные.

Обычно биржа снимает что то ей не нравится - например цена. Хотя ни разу еще не было глюков с ценой.
Записан
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #3 : РТУгбвР 12, 2011, 10:08:59 am »

Вы имеете ввиду биржа именно снимает уже выставленную заявку, или именно отклоняет ее и не хочет выставлять? Посмотрите в статус заявки в соответствующей таблице в терминале - это должно прояснить ситуацию.
Записан
daytrader
Full Member
***
Сообщений: 174


Просмотр профиля Email
« Ответ #4 : РТУгбвР 12, 2011, 10:19:01 am »

в тех что я смотрел была "снята" но я как-то не посмотрел причину - звонил брокеру - сказали что цена вне лимита - но в той же таблице цена была указана именно в лимите. Вот я и думаю может у брокера был сбой?

Поэтому хочу сразу на все отфильтровать и переставлять заявку, но уже по текущим рыночным ценам естественно.

но на ваш вопрос не отвечу - так как в таблице на тот момент ничего не нашел, а сейчас пока нет отмененных заявок
Записан
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #5 : РТУгбвР 12, 2011, 11:03:46 am »

Ну вообще именно биржа заявки не снимает (лишь в конце торговой сессии) - это делает брокер. Но в любом случае ситуация странна и нетипичная - когда в следующий раз возникнет, посмотрите все же статус заявки и причину снятия. Должно стать понятнее что происходит.
Записан
daytrader
Full Member
***
Сообщений: 174


Просмотр профиля Email
« Ответ #6 : РТУгбвР 12, 2011, 03:44:44 pm »

вот кажется была снята заявка - но не могу найти причину в таблице...

и еще - как писать правильно в кавычках или нет

if (status == OS_MATCHED)

или

if (status == "OS_MATCHED")
Записан
nxz
Full Member
***
Сообщений: 241


Просмотр профиля Email
« Ответ #7 : РТУгбвР 12, 2011, 07:59:01 pm »

и еще - как писать правильно в кавычках или нет

if (status == OS_MATCHED)

или

if (status == "OS_MATCHED")

если эти коды могут сменниться, то я должен написать так
Code: [Select]
if (stz == OS_MATCHED ) 
Да, это оптимально.

http://www.transaq.ru/forum/index.php?topic=487.0
« Последнее редактирование: РТУгбвР 12, 2011, 08:01:28 pm от nxz » Записан
nikolz
Sr. Member
****
Сообщений: 285


Просмотр профиля Email
« Ответ #8 : РТУгбвР 13, 2011, 11:35:54 am »

вот кажется была снята заявка - но не могу найти причину в таблице...

и еще - как писать правильно в кавычках или нет

if (status == OS_MATCHED)

или

if (status == "OS_MATCHED")
Надо писать так:
if (status == OS_MATCHED)
status - это код состояния,
OS_MATCHED - это имя константы

Записан
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #9 : РТУгбвР 15, 2011, 10:01:50 am »

вот кажется была снята заявка - но не могу найти причину в таблице...

Кликните дважды на заявку в таблице заявок, и нажмите на кнопку "Статус".
Записан
Страниц: [1] Печать 
Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: заявка отменена выставляем новую « предыдущая тема следующая тема »
Перейти в:  


Войти

Powered by MySQL Powered by PHP Powered by SMF 2.0.10 | SMF © 2006-2008, Simple Machines LLC Valid XHTML 1.0! Valid CSS!