Фрагмент кода стратегии
var order = this.SellAtLimit(Security.LastTrade.Price + Security.MinStepSize);
order.WhenNewTrades().Do(trades => trades.ForEach(t =>
{
var stopDelta = t.Order.Price + (Security.MinStepSize * StopLossPoint);
var stopLoss = new StopLossStrategy(t, new Unit(stopDelta, UnitTypes.Limit));
var profitDelta = t.Order.Price - (Security.MinStepSize * TakeProfitPoint);
var takeProfit = new TakeProfitStrategy(t, new Unit(profitDelta, UnitTypes.Limit));
var tpsl = new TakeProfitStopLossStrategy(takeProfit, stopLoss);
ChildStrategies.Add(tpsl);
})).Apply(this);
Выставляется заявка Sell объемом 5 по цене 95,80, подключаются защитные стратегии, затем срабатывает заявка и активируется защита. SLS отправляет заявку Buy на регистрацию по цене 96,1 объемом 1 (Почему 1, а не 5?) TPS отправляет заявку Buy на регистрацию по цене 95,2 объемом 1 (Почему 1, а не 5?) В итоге появляются ошибки и по SLS и по TPS "Заявка не может быть принята на регистрацию. Неверно задана цена". Почему отправляются заявки, если уровни не достигнуты? Как я понял, заявки не будут отправляться, пока не достигнуты защитные уровни...
评论 (3)
登录 或 创建账户, 登录或注册以发表评论
С объемами я разобрался, вопрос, почему после открытия позиции SLS и TPS начинают отправлять заявки по рынку по цене защитного уровня?
А вот попробовал автоматическую защиту, там все корректно, при открытии позиции TPS и SLS заявки не направляют по рынку...
Вот таким образом задаю уровни SL,TP. Уровни не срабатывают, APS пишет, что запущена, котирует объем 1 на покупку по определенно сделке, но не хочет делать стоп. У меня задается StopLOssPoint в пунктах, в частности ставил 10 пунктов. Цена сделки 95,5, шаг цены 0,01, SL=10 пунктов => уровень SL должен быть 95,6. Или так задавать уровни нельзя?
Пробовал установить свойство StopLOssOffset не помогает. Тэйк-профит тоже не срабатывает.