Всем привет!
Попробовал создать стратегию и вроде все получилось, но не могу получить размер позиции
Стратегия обрабатывается по приходу новых сделок
Код
protected override void OnStarting()
{
this
.When(Security.SecurityNewTrades())
.Do(MakePosition);
base.OnStarting();
}
В процедуре MakePosition такой код
Код
...
var _myPosition = Trader.GetPosition(Portfolio, Security);
if (_myPosition != null)
{
Console.WriteLine("Position current value: {0}", _myPosition.CurrentValue);
Console.WriteLine("Position begin value: {0}", _myPosition.BeginValue);
Console.WriteLine("Position blocked value: {0}", _myPosition.BlockedValue);
}
if (lastTrade.Volume > 3)
{
var condition = true;
var conditionDirection = (first > last);
if (condition && !_gotPosition)
{
var direction = conditionDirection ? OrderDirections.Buy : OrderDirections.Sell;
var order = this.CreateOrder(direction, Security.GetMarketPrice(direction), Volume);
RegisterOrder(order);
_gotPosition = true;
}
}
PositionManager.Position всегда показывает 0.
Покопавшись на форуме нашел что можно получить позицию из трейдера, но Trader.GetPosition() у меня всегда возвращает null,
даже когда проходит не одна сделка, а несколько.
Пришлось заводить переменную _gotPosition чтобы понять что позиция есть.
Чуть не забыл, проверял на фьюче сбера.