public class StopLoss {
private IList<double> stopLossBaseList;
double koeff = 0;
public StopLoss(IList<double> stopLossBaseList, double koeff) {
this.stopLossBaseList = stopLossBaseList;
this.koeff = koeff;
}
public void createOn(IPosition position, int barIndex) {
double stopLossPrice = stopLossBaseList[barIndex - 1] * koeff;
if (position.IsShort) {
stopLossPrice = position.EntryPrice + stopLossPrice;
} else {
stopLossPrice = position.EntryPrice - stopLossPrice;
}
position.CloseAtStop(
barIndex,
stopLossPrice,
SignalUtils.STOP_LOSS_CLOSE
);
}
}