>null == position || position.EntryBarNum >= barNum
А может быть должно быть:
null == position || position.EntryBarNum > barNum
Дело в том, что stop-loss не выставляется на следующей после покупки свече, а только через свечу. Смотри скриншот.
Мне нужно, чтобы stop-loss не срабатывал на той же свече, что и покупка, но мог срабатывать на следующей.
Update:
То есть еще раз вся логика:
IPosition position = source.Positions.LastPositionActive;
if (
position == null /* && other conditions*/
) {
// try to buy or sell
} else {
if (null == position || position.EntryBarNum >= currentBar)
continue;
if (/* condition */) {
position.CloseAtMarket(nextBar, SignalUtils.CLOSE);
} else {
stopLoss.createOn(position, nextBar);
}
}
То, есть здесь надо либо position.EntryBarNum > currentBar и stop на следующий бар.
Либо position.EntryBarNum >= currentBar но тогда stop на текущий бар.
Как правильно сделать, чтобы добиться следующего:
Мне нужно, чтобы stop-loss _не_ срабатывал на той же свече, что и покупка, но мог срабатывать на _следующей_.