Beispiel #1
0
        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);
                }
            }
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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();
        }
Beispiel #4
0
 public abstract void OnBar_UserCode(IBarContext context);