private void button_Click(object sender, RoutedEventArgs e)
        {
            System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
            //if (stw==null) stw = SpreadTraderWindow.CreateFromBaml(assembly);

            //Zweistein.Diagnostics.doSnoopWindow(this);
            if (stw == null)
            {
                stw = new SpreadTraderWindow();
                NinjaTrader.NinjaScript.Strategies.SpreadExitStrategy strategy = new NinjaTrader.NinjaScript.Strategies.SpreadExitStrategy();
                stw.fromStrategy(strategy);
                stw.InitializeComponent();

                stw.FillGrid();
            }
            if (stw != null)
            {
                stw.Show();
            }
        }
        public TargetExitQuantity ExitNow(SingleSpread spread)
        {
            if (DateTime.Now < created.AddMinutes(2))
            {
                return(TargetExitQuantity.None);
            }
            // let the trade breath for the first 2 minutes and therefore  do never exit within that time

            double pnl = spread.PnlPerUnit();

            if (stoplossperunit != 0 && pnl <= -1 * stoplossperunit)
            {
                return(TargetExitQuantity.All);
                // this is the case of a  hard stop
            }

            if (pnl <= minPnl)
            {
                return(TargetExitQuantity.All);
                // trailing stopp hit
            }
            if (pnl - stoplossperunit > minPnl)
            {
                //adjust trailing
                minPnl = pnl - stoplossperunit;
                if (spread.StrategyBase().TraceOrders)
                {
                    spread.StrategyBase().Print("MinPnl:" + minPnl.ToString());
                }
            }
            NinjaTrader.NinjaScript.Strategies.Strategy           s = spread.StrategyBase() as NinjaTrader.NinjaScript.Strategies.Strategy;
            NinjaTrader.NinjaScript.Strategies.SpreadExitStrategy S = s as NinjaTrader.NinjaScript.Strategies.SpreadExitStrategy;
            var spreadpriceseries = s.Spread(S.Closes[0], S.PriceString, spread.Lots1, S.strLeg2Instrument, spread.Lots2, S.Leg1PriceDisplayMultiplier, S.Leg2PriceDisplayMultiplier);
            // use all Indicators on the spread price series!!!
            // and applying SMA to it
            double smoothed = s.SMA(spreadpriceseries.SpreadValue, 3)[0];

            return(TargetExitQuantity.None);
        }
Ejemplo n.º 3
0
        public MainWindow()
        {
            strategy = new NinjaTrader.NinjaScript.Strategies.SpreadExitStrategy();

            InitializeComponent();
        }