public virtual SingleOrder Execute(Signal signal) { SingleOrder singleOrder = new SingleOrder(); singleOrder.Instrument = signal.Instrument; singleOrder.Strategy = signal.Strategy.Name; singleOrder.StrategyComponent = ((object) signal.Sender).ToString(); singleOrder.StrategyFill = signal.StrategyFill; singleOrder.StrategyPrice = signal.StrategyPrice; singleOrder.ForceMarketOrder = signal.QvSj2cjRxv; if (signal.Fuwj5CvMiW) singleOrder.FillOnBarMode = (int) signal.R2djQy947W; switch (signal.Side) { case SignalSide.Buy: singleOrder.Side = Side.Buy; break; case SignalSide.BuyCover: singleOrder.Side = Side.Buy; break; case SignalSide.Sell: singleOrder.Side = Side.Sell; break; case SignalSide.SellShort: singleOrder.Side = Side.SellShort; break; default: throw new NotSupportedException(); } switch (signal.Type) { case SignalType.Market: singleOrder.OrdType = OrdType.Market; break; case SignalType.Limit: singleOrder.OrdType = OrdType.Limit; singleOrder.Price = signal.LimitPrice; break; case SignalType.Stop: singleOrder.OrdType = OrdType.Stop; singleOrder.StopPx = signal.StopPrice; break; case SignalType.StopLimit: singleOrder.OrdType = OrdType.StopLimit; singleOrder.StopPx = signal.StopPrice; singleOrder.Price = signal.LimitPrice; break; case SignalType.TrailingStop: singleOrder.OrdType = OrdType.TrailingStop; singleOrder.TrailingAmt = signal.StopPrice; break; default: throw new NotSupportedException(); } singleOrder.OrderQty = signal.Qty; singleOrder.TimeInForce = signal.TimeInForce; singleOrder.Text = signal.Text; this.MetaStrategyBase.cWMWqoTObJ((StrategyBase) signal.Strategy, singleOrder); singleOrder.Send(); return singleOrder; }
public virtual SingleOrder ShortExit(Instrument instrument, string text) { if (!this.Strategy.IsInstrumentActive(instrument)) return (SingleOrder) null; Signal signal = new Signal(Clock.Now, ComponentType.Exit, SignalType.Market, SignalSide.BuyCover, instrument, text); if (!this.HasPosition || this.Position.Side != PositionSide.Short) { signal.Status = SignalStatus.Rejected; signal.Rejecter = ComponentType.Exit; } return this.Strategy.BgvpSPpUAD(signal); }
public virtual SingleOrder LongExit(Instrument instrument, string text) { if (!this.Strategy.IsInstrumentActive(instrument)) return (SingleOrder) null; Signal signal = new Signal(Clock.Now, ComponentType.CrossExit, SignalType.Market, SignalSide.Sell, instrument, text); Position position = this.Portfolio.Positions[instrument]; if (position == null || position.Side != PositionSide.Long) { signal.Status = SignalStatus.Rejected; signal.Rejecter = ComponentType.CrossExit; } return this.Strategy.BgvpSPpUAD(signal); }
public void DrawSignal(Signal signal, int padNumber) { lock(this.dataLock) { if (!this.volumePadShown && padNumber > 1) --padNumber; SignalView view = new SignalView(signal, this.pads[padNumber]); this.pads[padNumber].AddPrimitive(view); view.SetInterval(this.leftDateTime, this.rightDateTime); } }
public virtual SingleOrder LongExit(Instrument instrument, double price, string text) { if (!this.Strategy.IsInstrumentActive(instrument)) return (SingleOrder) null; Signal signal = new Signal(Clock.Now, ComponentType.Exit, SignalType.Market, SignalSide.Sell, instrument, text); signal.StrategyFill = true; signal.StrategyPrice = price; if (!this.HasPosition || this.Position.Side != PositionSide.Long) { signal.Status = SignalStatus.Rejected; signal.Rejecter = ComponentType.Exit; } return this.Strategy.BgvpSPpUAD(signal); }
public virtual SingleOrder EmitSignal(Signal signal) { return this.Strategy.BgvpSPpUAD(signal); }
public virtual bool Validate(Signal signal) { return true; }
internal SingleOrder BgvpSPpUAD(Signal obj0) { obj0.Strategy = this; double positionSize = this.moneyManagers[obj0.Instrument].GetPositionSize(obj0); if (positionSize > 0.0) { obj0.Qty = positionSize; if (!this.riskManagers[obj0.Instrument].Validate(obj0)) { obj0.Status = SignalStatus.Rejected; obj0.Rejecter = ComponentType.RiskManager; } if (!this.ayRpJCTRPY.Validate(obj0)) { obj0.Status = SignalStatus.Rejected; obj0.Rejecter = ComponentType.ExposureManager; } } else { obj0.Status = SignalStatus.Rejected; obj0.Rejecter = ComponentType.MoneyManager; } return this.MetaStrategy.PFARUMnUwZ(obj0); }
public virtual SingleOrder ShortExit(Instrument instrument, double price, string text) { if (!this.Strategy.IsInstrumentActive(instrument)) return (SingleOrder) null; Signal signal = new Signal(Clock.Now, ComponentType.CrossExit, SignalType.Market, SignalSide.BuyCover, instrument, text); signal.StrategyFill = true; signal.StrategyPrice = price; Position position = this.Portfolio.Positions[instrument]; if (position == null || position.Side != PositionSide.Short) { signal.Status = SignalStatus.Rejected; signal.Rejecter = ComponentType.CrossExit; } return this.Strategy.BgvpSPpUAD(signal); }
public SignalEventArgs(Signal signal) : base() { this.Signal = signal; }
public SignalView(Signal signal, Pad pad) : base() { this.JVpy8D2xUR = Color.SkyBlue; this.zMOyBnpkt3 = Color.SkyBlue; this.tHoyjarrU1 = Color.Pink; this.XNayo9fgOU = Color.Red; this.signal = signal; this.pad = pad; this.ToolTipEnabled = true; this.ToolTipFormat = "dfdfs"; }
public void Add(Signal signal) { this.signals.Add(signal); }
internal SingleOrder PFARUMnUwZ(Signal obj0) { bool flag = false; if (obj0.Status == SignalStatus.New) { if (this.k7bROYTXtn.Validate(obj0)) { obj0.Status = SignalStatus.Accepted; flag = true; } else { obj0.Status = SignalStatus.Rejected; obj0.Rejecter = ComponentType.MetaExposureManager; } } this.aNKR2wRnBL.Add(obj0); // if (this.iCcRBViVvB != null) // this.iCcRBViVvB(new SignalEventArgs(obj0)); if (flag) return this.XSvR57mV5s.Execute(obj0); else return (SingleOrder) null; }
private void oq2A1bOgQG(object obj0, DateTimeEventArgs obj1) { DateTime index = obj1.DateTime; switch (this.k5kAXvwmyK) { case TriggerType.Above: if (this.fISADbUH9Z[index] <= this.J3YAFHAWt0) break; this.rKEA9ZLnkT(); this.eiNALoFbZL = new Signal(Clock.Now, this.eiNALoFbZL.Sender, this.eiNALoFbZL.Type, this.eiNALoFbZL.Side, this.eiNALoFbZL.Qty, this.eiNALoFbZL.Price, this.eiNALoFbZL.Instrument, this.eiNALoFbZL.Text); this.nquAKcUOSY.BgvpSPpUAD(this.eiNALoFbZL); this.KWCAC961IE(TriggerStatus.Executed); break; case TriggerType.Below: if (this.fISADbUH9Z[index] >= this.J3YAFHAWt0) break; this.rKEA9ZLnkT(); this.eiNALoFbZL = new Signal(Clock.Now, this.eiNALoFbZL.Sender, this.eiNALoFbZL.Type, this.eiNALoFbZL.Side, this.eiNALoFbZL.Qty, this.eiNALoFbZL.Price, this.eiNALoFbZL.Instrument, this.eiNALoFbZL.Text); this.nquAKcUOSY.BgvpSPpUAD(this.eiNALoFbZL); this.KWCAC961IE(TriggerStatus.Executed); break; } }
public Trigger(Strategy strategy, TriggerType type, DoubleSeries series, double level, Signal signal) : base() { this.pEXA4yCenN = Color.Brown; this.pZXAJFXyGb = Color.Green; this.YCKA0R33mr = Color.DarkGray; this.yXsAvQ0snw = true; this.wuIAEWD0JW = true; this.HKDAVnUw46 = "fdsdf"; this.nquAKcUOSY = strategy; this.k5kAXvwmyK = type; this.fISADbUH9Z = series; this.J3YAFHAWt0 = level; this.eiNALoFbZL = signal; this.lh4APrSwVL = TriggerStatus.Active; this.a9QA39LDVd = Clock.Now; this.gixAsE4W2J = DateTime.MinValue; this.nquAKcUOSY.YFmhKSovu(this); this.ULWAhR6fQR(); }