Котирование
Atom
16.01.2015


Как я понимаю есть 2 варианта запустить котирования
1) из документации http://stocksharp.com/do...c-bc8b-4afde645e483.htm
Код
var strategy = new MarketQuotingStrategy(order, new Unit());
base.ChildStrategies.Add(strategy);

Работает нормально, по крайней мере позиции набирает.


2) из одного из обновления http://stocksharp.com/fo...285/Stock--4-0-Release/
Код

this.OpenPositionByQuoting(10);

Работает не нормально, либо не правильно использую
В стратегии просто набираю позицию

В тестовом КВИКе выдает ошибку

Лог приложу
Еще раз повторю, что 1й работает а 2й не работает
Вопрос: это я не правильно использую или это баг?
log.txt 72 KB (304)

Теги:


Спасибо:


<< < 3 4 5 
RomSunZ

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


Судя по коду на кодплексе проблема в том, что
Код

					this.AddInfoLog("Отмена заявки {0}.", _order.TransactionId);
					_isCanceling = true;

					_order
						.WhenCanceled()
						.Do((r, o) =>
						{
							this.AddInfoLog("Заявка {0} была снята. Время снятия {1}.", o.TransactionId, o.LastChangeTime);

							Rules.RemoveRulesByToken(o, r);

							if (_order == o)
							{
								_manualReRegisterOrder = _order;
								_order = null;
								_isCanceling = false;
								ProcessQuoting();
							}
							else
								this.AddWarningLog("Заявка {0} устарела.", o.TransactionId);
						})
						.Once()
						.Sync(_syncToken)
						.Apply(this);

					CancelOrder(_order);

_order.WhenCanceled() не срабатывает, т.к. ордер УЖЕ отменен до того, как подписались на это событие. Думаю, нужно добавить проверку типа _order.State==OrderStates.Active. Если да, то выполнить выше приведенную ветку, если нет и орден не NULL и состояние стратегии Active, то вызвать ProcessQuoting, либо в конце процедуры ProcessQuoting делать проверку
Код

if (_isCanceling==true && this.ProcessState==ProcessStates.Active && _order.State==OrderStates.Done)
{
_isCanceling=false;
ProcessQuoting();
//либо вызвать здесь событие orderCancelled, чтобы сработала ветка приведенная выше, либо делать подписку на событие WhenCanceled в момент создания ордера...
}
Спасибо:
<< < 3 4 5 

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

loading
clippy