Дочерняя стратегия вызывает метод родительской


Дочерняя стратегия вызывает метод родительской
Atom
23.12.2011


У меня одна стратегия содержит в себе дочернию(другую) стратегию.
У меня есть лог, который я не могу понять.
AR Buy CancelOrder StopAggPutOrder 76797701
AR - дочерняя стартегия, она имеет метод CancelOrder, но не имеет метода StopAggPutOrder.
Метод StopAggPutOrder принадлежит родительской стратегии. при этом, судя по логу, метод CancelOrder, был вызва из метода StopAggPutOrder. т.к. Метод CancelOrder принимет как аргуметнт имя вызвавшего его метода.
И после этого вся программа закрылась, не выдав никакого сообщения об ошибке.
Да, метод CancelOrder попятался отменить исполненную заявку, но почему небыло никакого сообщения?
Код

public virtual void Do_CancelOrder(string callingMethod)
		{

			MarkOrderCanceledId("CancelOrder " + callingMethod);
			if(_order != null){
				try{
					this.Trader.CancelOrder(_order);
				}
				catch(Exception ex){
					string sessionStopped = "Сейчас эта сессия не идет";
					if(ex.Message.Contains(sessionStopped)){
						
					}
					else{
						throw ex;
					}
				}
			}
		}

на событие OnLog я подписан - там пусто.

Теги:


Спасибо:


1 2  >
Alexander

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


OnError
Спасибо:

vader

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


OnError тоже молчит
Спасибо:

Alexander

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


Как вы понимаете что программа закрылась? В чём это выражается?
Посмотрите на событие Strategy.Error
Спасибо:

vader

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


"Как вы понимаете что программа закрылась? В чём это выражается?"
Окно программы открыто и в какой-то момент она просто исчезает и её нет.

На Error подпишусь, ещё не успел новую версию скачать.

Ещё одна проблема, сделка не попала в стратегию.
На Strategy.NewMyTrades подписан, он не получил последнюю сделку.
При этом trader.NewMyTrades эу сделку получил
Спасибо:

Alexander

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


Вы кидаете exception из throw.
Зачем? Где-то выше вы его перехватываете?
Спасибо:

vader

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


"Вы кидаете exception из throw.
Зачем? Где-то выше вы его перехватываете?"
пока не перехватываю, но потом буду.
Кидаю я его, потому-что при невозможности снять заявки, робот должен остановится.
Спасибо:

Alexander

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


Так и останавливайте его работу.
Или перехватывайте exception выше.

Иначе ничего удивительно в таком завершении работы нет. :)
Спасибо:

frontman

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


А приложение вы как запускаете? Просто если не из студии и у вас эксепшн не перехватывается, то приложение закроется конечно..
Спасибо:

frontman

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


Я опоздал))
Спасибо:

vader

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


Я запускаю из SharpDevelop в Debug.
я надеюсь, что он мне что-нибудь скажет, есди произошла ошибка.

"А приложение вы как запускаете? Просто если не из студии и у вас эксепшн не перехватывается, то приложение закроется конечно.. "
проблема не стольько в том, что оно закрывается, а вот, что оно ничего не говорит при этом. Даже не предлгает исвать решения проблемы в интернете.
Спасибо:
1 2  >

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

loading
clippy