public void AddIndicatorSignal(int barNo, string signame, SignalActionType saType, SupportResistanceRange <double> snr) { SignalAction sa = new SignalAction(); sa.SignalActionType = saType; sa.SnR = snr; IndicatorSignal isig = new IndicatorSignal(); isig.BarNo = barNo; isig.SignalName = signame; isig.IndicatorSignalType = SignalType.SimplePriceAction; isig.SignalAction = sa; AddIndicatorSignal(barNo, isig); }
public void CheckTradeEvent() { //int en_H = TM_OpenEndH, en_M = TM_OpenEndM, ex_H = TM_ClosingH, ex_M = TM_ClosingM; //entry at 9:02 am ct if (BarsInProgress == BipIWM) { //&& SetRocSpreadHiLo()) { // Print(String.Format("{0}:CheckTradeEvent En Bip{1}: PctSpd={2}, MaxBip={3}, MinBip={4}", // CurrentBars[BarsInProgress], BarsInProgress, PlotPctSpd[0], PctChgMaxBip, PctChgMinBip)); IndicatorSignal isig = new IndicatorSignal(); Direction dir = new Direction(); SignalAction sigAct = new SignalAction(); PairSpread <int> prSpdHi = new PairSpread <int>(); PairSpread <int> prSpdLo = new PairSpread <int>(); if (IsSpreadBreakdown()) { dir.TrendDir = TrendDirection.Up; isig.SignalName = SignalName_BelowStdDev; SetLongShortBips(true); } // else if(Spread[0] <= LowerMin[0]) { // dir.TrendDir = TrendDirection.Up; // isig.SignalName = SignalName_BelowStdDevMin; // } else if (IsSpreadBreakout()) { dir.TrendDir = TrendDirection.Down; isig.SignalName = SignalName_AboveStdDev; SetLongShortBips(true); } prSpdHi.SpdType = SpreadType.High; prSpdHi.SpreadValue = RocHighSpread; prSpdHi.Symbol1 = ShortBip; prSpdHi.Symbol2 = MidLongBip; prSpdLo.SpdType = SpreadType.Low; prSpdLo.SpreadValue = RocLowSpread; prSpdLo.Symbol1 = LongBip; prSpdLo.Symbol2 = MidShortBip; List <PairSpread <int> > pspdList = new List <PairSpread <int> >(); pspdList.Add(prSpdHi); pspdList.Add(prSpdLo); sigAct.PairSpds = pspdList; // Print(String.Format("{0}: [{1}] Non-CutoffTime {2}: MaxBip={3}, %Max={4}, MinBip={5}, %Min={6}, %Spd={7}", // CurrentBar, Time[0], GetLongShortText(), // PctChgMaxBip, PctChgMax[0], PctChgMinBip, PctChgMin[0], PlotPctSpd[0])); // if(PctChgMaxBip != PctChgMinBip) { // if(PlotPctSpd[0] > 0) { // dir.TrendDir = TrendDirection.Up; // isig.SignalName = SignalName_EntryOnOpenLong; // } else if(PlotPctSpd[0] < 0) { // dir.TrendDir = TrendDirection.Down; // isig.SignalName = SignalName_EntryOnOpenShort; // } // } else // return; isig.BarNo = CurrentBars[BarsInProgress]; isig.TrendDir = dir; isig.IndicatorSignalType = SignalType.Spread; //isig.SignalName = SignalName_EntrySQRSpread; isig.SignalAction = sigAct; IndicatorEventArgs ievt = new IndicatorEventArgs(this.GetType().Name, String.Format(" [{0}] {1}", Times[BarsInProgress][0], GetLongShortText())); ievt.IndSignal = isig; //FireEvent(ievt); OnRaiseIndicatorEvent(ievt); } // else {// if(IsCutoffTime(BarsInProgress, ex_H, ex_M)) { //// Print(String.Format("{0}:CheckTradeEvent Ex Bip{1}: PctSpd={2}, MaxBip={3}, MinBip={4}", //// CurrentBars[BarsInProgress], BarsInProgress, PlotPctSpd[0], PctChgMaxBip, PctChgMinBip)); // IndicatorSignal isig = new IndicatorSignal(); // Direction dir = new Direction(); // // Print(String.Format("{0}: [{1}] Non-CutoffTime {2}: MaxBip={3}, %Max={4}, MinBip={5}, %Min={6}, %Spd={7}", // // CurrentBar, Time[0], GetLongShortText(), // // PctChgMaxBip, PctChgMax[0], PctChgMinBip, PctChgMin[0], PlotPctSpd[0])); // dir.TrendDir = TrendDirection.UnKnown; // isig.SignalName = SignalName_ExitForOpen; //// if(PlotPctSpd[0] > 0) { //// dir.TrendDir = TrendDirection.Up; //// isig.SignalName = SignalName_ExitForOpen; //// } else if(PlotPctSpd[0] < 0) { //// dir.TrendDir = TrendDirection.Down; //// isig.SignalName = SignalName_ExitForOpen; //// } else //// return; // isig.BarNo = CurrentBars[BarsInProgress]; // isig.TrendDir = dir; // isig.IndicatorSignalType = SignalType.SimplePriceAction; // IndicatorEventArgs ievt = new IndicatorEventArgs(this.GetType().Name, " CheckTradeEvent Ex: "); // ievt.IndSignal = isig; // //FireEvent(ievt); // OnRaiseIndicatorEvent(ievt); // } }