Стратегия не снимает заявки
Atom Ответить
15.12.2011


Все заявки на продажу выставлены одной и той же стратегией, перед отправкой новой заявки выполняется CancelActiveOrders.(кроме тех случаев, когда заявка исполнена.)
Два вопроса.
1) Почему заявки не были сняты вызовом CancelActiveOrders?
2) почему они не были сняты последующими вызовани CancelActiveOrders?

S# - 4.0.7

Теги:


Спасибо:




11 Ответов
freelancer

Фотография
Дата: 15.12.2011
Ответить


Используйте Trader.CancelOrders
Спасибо:

Alexander

Фотография
Дата: 15.12.2011
Ответить


Снимаются ли заявки по Trader.CancelOrders?
Спасибо:

freelancer

Фотография
Дата: 15.12.2011
Ответить


Trader.CancelOrders - Да
CancelActiveOrders - Нет
Спасибо:

Alexander

Фотография
Дата: 15.12.2011
Ответить


freelancer Перейти
Trader.CancelOrders - Да
CancelActiveOrders - Нет


Как часто наблюдается и начиная с какой примерно версии?
Для всех заявок или для каких-то отдельных - стоп \ обычные?
Спасибо:

freelancer

Фотография
Дата: 15.12.2011
Ответить


Alexander Mukhanchikov Перейти
freelancer Перейти
Trader.CancelOrders - Да
CancelActiveOrders - Нет


Как часто наблюдается и начиная с какой примерно версии?
Для всех заявок или для каких-то отдельных - стоп \ обычные?

Не могу сказать. Как-то давно заметил (несколько месяцев назад). Потом нашел Trader.CancelOrders и успокоился. Я пробовал только на стопах
Спасибо:

vader

Фотография
Дата: 15.12.2011
Ответить


Снимаются ли заявки по Trader.CancelOrders? - не знаю, я использую только CancelActiveOrders.
Если я буду использовать Trader.CancelOrders, то они снимет также и заявки других стратегий по этому инструменту.

Как часто наблюдается и начиная с какой примерно версии?
Не могу сказать, было ли это в прошлых версиях, т.к. тестировать так, как сейчас стал недавно.
я запускаю по две стратегии по трем инструментам сразу, и эта проблем проявляется примерно через раз.
Вчера, например у одной стратегии осталось не снятами 5 заявок.

Для всех заявок или для каких-то отдельных - стоп \ обычные?
Использую только обычные заявки.
Автор топика
Спасибо:

freelancer

Фотография
Дата: 15.12.2011
Ответить


У меня паре портфель+инструмент соответствует только одна стратегия
Спасибо:

vader

Фотография
Дата: 15.12.2011
Ответить


у меня не так.
Автор топика
Спасибо:

vader

Фотография
Дата: 15.12.2011
Ответить


Да, ещё такое замечание, может оно поможет разобраться в проблеме.
Перед регистрацией заявки стратегия проверяет, сколько актвных заявок у неё есть, если их больше двух, онадолжна остановится. Остановки НЕ произошло.

Код

try{
					base.RegisterOrder(order);
				}
				catch(Exception ex){
					WriteDiagnostics("Register- " + ex.Message);
					AbortStop("Register_ex");
					ShowErrorMessage(order, ex.Message);
				}
				if(GetCountActiveOrders() > 2){
					AbortStop("Register_GetCountActiveOrders");
					ShowErrorMessage("У режима три или более активных заявки одновременно.");
				}

public int GetCountActiveOrders()
		{
			IEnumerable<Order> activeOrders = Orders.Where(p => p.State == OrderStates.Active);
			return activeOrders.Count();
		}
Автор топика
Спасибо:

Alexander

Фотография
Дата: 15.12.2011
Ответить


CancelActiveOrders - это метод стратегии
И снимает она заявки от стратегии - стопы и обычные

Распечатайте перед каждым вызовом CancelActiveOrders все стоп \ обычные заявки, у которых State == OrderStates.Active
Спасибо:

vader

Фотография
Дата: 19.12.2011
Ответить


"CancelActiveOrders - это метод стратегии" - да, я знаю. Приведенный кусок кода взят из стратегии.

Распечатайте перед каждым вызовом CancelActiveOrders все стоп \ обычные заявки, у которых State == OrderStates.Active -
Когда повториться - отпишусь.
Автор топика
Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy