public override void OnBar_UserCode(IBarContext context) { var bar = context.Bar; var seriesValues = context.SeriesValues; var ema10 = seriesValues["EMA_SMALL"]; var ema20 = seriesValues["EMA_BIG"]; //Debug.WriteLine("{0}, bar: {1}, ema9: {2}, ema13: {3}", bar.DateTime, bar.Close, ema9.Value, ema13.Value); if (ema10.Value > ema20.Value) { // up trend if (LongPositions.Count == 0) { CreatePosition(PositionSide.Long, bar.DateTime, bar.Close, 1); } } if (ema20.Value > ema10.Value) { // down trend if (ShortPositions.Count == 0) { CreatePosition(PositionSide.Short, bar.DateTime, bar.Close, 1); } } }
public override void OnBar_UserCode(IBarContext context) { IBar bar = context.Bar; var seriesValues = context.SeriesValues; var smallEma = seriesValues["EMA_SMALL"]; var bigEma = seriesValues["EMA_BIG"]; TryToOpenLongPositions(bar, smallEma, bigEma); TryToOpenShortPositions(bar, smallEma, bigEma); }
public void OnBar(IBarContext context) { _lastBar = context.Bar; Positions.ForEach(x => x.VerifyTakeProfitAndStopLoss(_lastBar.DateTime, _lastBar.Close)); if (IsTrailingStop) { Positions.ForEach(x => x.AdjustTrailingStopLoss(_lastBar.Close)); } PurgePositions(); OnBar_UserCode(context); PurgePositions(); }
public abstract void OnBar_UserCode(IBarContext context);