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); }
public MainWindow() { strategy = new NinjaTrader.NinjaScript.Strategies.SpreadExitStrategy(); InitializeComponent(); }