Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
//			}
        }