void OnTradeByChartTrader(object sender, IndicatorEventArgs e)
        {
            this.Update();
            IndicatorSignal isig = e.IndSignal;

            Print(String.Format("{0}:OnTradeByChartTrader triggerred {1} Bip={2}, CurrentBar[0]={3}, DrawingTool.GetCurrentBar={4}, Time={5}, Time[0][0]={6}",
                                CurrentBars[BarsInProgress], isig.SignalName, BarsInProgress, CurrentBars[0], DrawingTool.GetCurrentBar(this), Times[BarsInProgress][0], Times[0][0]));
            //Draw.ArrowUp(this, "tag1", true, 0, Lows[0][0] - TickSize, Brushes.Red);
            Draw.Diamond(this, "tag1", true, 0, Lows[0][0] - TickSize, Brushes.Red);
        }
Example #2
0
        // Define what actions to take when the event is raised.

        void OnTradeByPairSpdRs(object sender, IndicatorEventArgs e)
        {
            IndicatorSignal isig = e.IndSignal;

            //Print(String.Format("{0}:OnTradeByPairSpdRs triggerred {1} Bip{2}: Spread={3}, Middle={4}",
            //CurrentBars[BarsInProgress], isig.SignalName, BarsInProgress, giSpdRs.Spread[0], giSpdRs.Middle[0]));
            if (e.IndSignal.SignalName != null && HasPairPosition())
            {
                OnExitPositions(e);
            }
            else if (e.IndSignal.SignalName != null && IsTradingTime(IndicatorProxy.GetTimeByHM(TG_OpenStartH, TG_OpenStartM, true)))
            {
                OnEntryPositions(e);
            }
        }
Example #3
0
        // Define what actions to take when the event is raised.

        void OnTradeBySpdLadder(object sender, IndicatorEventArgs e)
        {
            IndicatorSignal isig = e.IndSignal;

            if (this.PrintOut > 1)
            {
                Print(String.Format("{0}:OnTradeBySpdLadder triggerred {1} Bip{2}: Spread={3}, HiAllTime={4}",
                                    CurrentBars[BarsInProgress], isig.SignalName, BarsInProgress, giSpdLadder.Spread[0], giSpdLadder.HiAllTime));
            }
            if (e.IndSignal.SignalName != null && HasPairPosition())
            {
                OnExitPositions(e);
            }
            else if (e.IndSignal.SignalName != null && IsTradingTime(IndicatorProxy.GetTimeByHM(TG_OpenStartH, TG_OpenStartM, true)))
            {
                OnEntryPositions(e);
            }
        }
        // Define what actions to take when the event is raised.

        void OnTradeByPairPctSpd(object sender, IndicatorEventArgs e)
        {
            IndicatorSignal isig = e.IndSignal;

            Print(String.Format("{0}:OnTradeByPairPctSpd triggerred {1} Bip{2}: PlotPctSpd={3}, PctChgSpdThresholdEn={4}",
                                CurrentBars[BarsInProgress], isig.SignalName, BarsInProgress, giPairPctSpd.PlotPctSpd[0], giPairPctSpd.PctChgSpdThresholdEn));
            if (IsTradingTime(IndicatorProxy.GetTimeByHM(TG_OpenStartH, TG_OpenStartM, true)) && giPairPctSpd.PlotPctSpd[0] <= PctChgSpdThresholdEn)
            {
                OnEntryPositions(e);
            }
            else
            {
                OnExitPositions(e);
            }

            /*
             * int q_max = GetTradeQuantity(giPctSpd.PctChgMaxBip, this.MM_ProfitFactorMax);
             * int q_min = GetTradeQuantity(giPctSpd.PctChgMinBip, this.MM_ProfitFactorMin);
             *
             * //exit at 9:40 am ct
             * if(isig.SignalName == giPctSpd.SignalName_ExitForOpen) {
             *      Print(String.Format("{0}:OnTradeByPctSpd Ex Bip={1}: MaxBip={2}, PosMax={3},  MinBip={4}, PosMin={5}",
             *      CurrentBars[BarsInProgress], BarsInProgress, giPctSpd.PctChgMaxBip, Positions[giPctSpd.PctChgMaxBip], giPctSpd.PctChgMinBip, Positions[giPctSpd.PctChgMinBip]));
             *      OnExitPositions(e);
             * } else { //entry at 9:02 am ct
             *      Print(String.Format("{0}:OnTradeByPctSpd En Bip={1}: PctSpd={2}, MaxBip={3}, MinBip={4}",
             *      CurrentBar, BarsInProgress, giPctSpd.PlotPctSpd[0], giPctSpd.PctChgMaxBip, giPctSpd.PctChgMinBip));
             *      if(isig.TrendDir.TrendDir == TrendDirection.Up) {
             *              IndicatorProxy.PrintLog(true, IsLiveTrading(),String.Format("{0}:{1} Ln Bip={2}: PctSpd={3}, MaxBipQuant={4}, MinBipQuant={5}",
             *              CurrentBars[BarsInProgress], e.Message, BarsInProgress, giPctSpd.PlotPctSpd[0],
             *              q_max, q_min));
             *              EnterLong(giPctSpd.PctChgMaxBip, q_max, "GIPctSpd");
             *              EnterShort(giPctSpd.PctChgMinBip, q_min, "GIPctSpd");
             *      }
             *      else if(isig.TrendDir.TrendDir == TrendDirection.Down) {
             *              IndicatorProxy.PrintLog(true, IsLiveTrading(),String.Format("{0}:{1} St Bip={2}: PctSpd={3}, MaxBipQuant={4}, MinBipQuant={5}",
             *              CurrentBars[BarsInProgress], e.Message, BarsInProgress, giPctSpd.PlotPctSpd[0],
             *              q_max, q_min));
             *              EnterShort(giPctSpd.PctChgMaxBip, q_max, "GIPctSpd");
             *              EnterLong(giPctSpd.PctChgMinBip, q_min, "GIPctSpd");
             *      }
             * } */
        }
Example #5
0
        protected void OnTradeByChartTrader(object sender, IndicatorEventArgs e)
        {
            this.Update();
            IndicatorSignal isig = e.IndSignal;

            Print(String.Format("{0}:OnTradeByChartTrader {1} Bip={2}, CurrentBar[0]={3}, DrawingTool.GetCurrentBar={4}, \r\n Bars.GetTime(CurrentBars[0])={5}, Time[BarsInProgress][0]={6}, Time[0][0]={7}",
                                CurrentBars[BarsInProgress], isig.SignalName, BarsInProgress, CurrentBars[0], DrawingTool.GetCurrentBar(this), Bars.GetTime(CurrentBars[0]), Times[BarsInProgress][0], Times[0][0]));
            if (isig.SignalAction != null)
            {
                if (isig.SignalAction.SignalActionType == SignalActionType.BarToLeft)
                {
                    StopEnBarIndex = StopEnBarIndex < 1? CurrentBars[0] : StopEnBarIndex - 1;
                }
                else if (isig.SignalAction.SignalActionType == SignalActionType.BarToRight)
                {
                    StopEnBarIndex = StopEnBarIndex > CurrentBars[0]? 1 : StopEnBarIndex + 1;
                }
            }
            UpdateStopEnBar();
            UpdateHiLoPrice();
        }
        // Define what actions to take when the event is raised.
        void OnTradeByPctSpd(object sender, IndicatorEventArgs e)
        {
            IndicatorSignal isig = e.IndSignal;

            Print(String.Format("{0}:OnTradeByPctSpd triggerred {1} Bip{2}: PctSpd={3}, MaxBip={4}, MinBip={5}",
                                CurrentBars[BarsInProgress], isig.SignalName, BarsInProgress, giPctSpd.PlotPctSpd[0], giPctSpd.PctChgMaxBip, giPctSpd.PctChgMinBip));
            int q_max = GetTradeQuantity(giPctSpd.PctChgMaxBip, this.MM_ProfitFactorMax);
            int q_min = GetTradeQuantity(giPctSpd.PctChgMinBip, this.MM_ProfitFactorMin);

            //exit at 9:40 am ct
            if (isig.SignalName == giPctSpd.SignalName_ExitForOpen)
            {
                Print(String.Format("{0}:OnTradeByPctSpd Ex Bip={1}: MaxBip={2}, PosMax={3},  MinBip={4}, PosMin={5}",
                                    CurrentBars[BarsInProgress], BarsInProgress, giPctSpd.PctChgMaxBip, Positions[giPctSpd.PctChgMaxBip], giPctSpd.PctChgMinBip, Positions[giPctSpd.PctChgMinBip]));
                OnExitPositions(e);
            }
            else                 //entry at 9:02 am ct
            {
                Print(String.Format("{0}:OnTradeByPctSpd En Bip={1}: PctSpd={2}, MaxBip={3}, MinBip={4}",
                                    CurrentBar, BarsInProgress, giPctSpd.PlotPctSpd[0], giPctSpd.PctChgMaxBip, giPctSpd.PctChgMinBip));
                if (isig.TrendDir.TrendDir == TrendDirection.Up)
                {
                    IndicatorProxy.PrintLog(true, IsLiveTrading(), String.Format("{0}:{1} Ln Bip={2}: PctSpd={3}, MaxBipQuant={4}, MinBipQuant={5}",
                                                                                 CurrentBars[BarsInProgress], e.Message, BarsInProgress, giPctSpd.PlotPctSpd[0],
                                                                                 q_max, q_min));
                    EnterLong(giPctSpd.PctChgMaxBip, q_max, "GIPctSpd");
                    EnterShort(giPctSpd.PctChgMinBip, q_min, "GIPctSpd");
                }
                else if (isig.TrendDir.TrendDir == TrendDirection.Down)
                {
                    IndicatorProxy.PrintLog(true, IsLiveTrading(), String.Format("{0}:{1} St Bip={2}: PctSpd={3}, MaxBipQuant={4}, MinBipQuant={5}",
                                                                                 CurrentBars[BarsInProgress], e.Message, BarsInProgress, giPctSpd.PlotPctSpd[0],
                                                                                 q_max, q_min));
                    EnterShort(giPctSpd.PctChgMaxBip, q_max, "GIPctSpd");
                    EnterLong(giPctSpd.PctChgMinBip, q_min, "GIPctSpd");
                }
            }
        }
        public void AddIndicatorSignal(ref IndicatorSignal isig)
        {
            if (_indicators == null)
            {
                _indicators = new Dictionary <string, List <IndicatorSignal> >();
            }
            if (!_indicators.ContainsKey(isig.IStr))
            {
                _indicators[isig.IStr] = new List <IndicatorSignal>();
            }

            foreach (IndicatorSignal i in _indicators[isig.IStr])
            {
                if (i.Same(isig))
                {
                    isig = i;
                    return;
                }
            }

            try
            {
                isig.Indicator = IndicatorSignal.IStrToObj(isig.TI, isig.IStr);
                isig.Indicator.Init(_dohlcv);
                if (isig.Indicator.GetType() == typeof(WnFTechnicalIndicators.TiESPNfr))
                {
                    ((WnFTechnicalIndicators.TiESPNfr)isig.Indicator).GetFrPrices();
                }

                _indicators[isig.IStr].Add(isig);
            }
            catch (ArgumentException ex)
            {
                Console.WriteLine("Exception at WnFChart.AddIndicatorSignal()\r\n" + ex.Message);
            }
        }
Example #8
0
        // Define what actions to take when the event is raised.
        void OnTradeBySQRSpd(object sender, IndicatorEventArgs e)
        {
            IndicatorSignal isig = e.IndSignal;
//			Print(String.Format("{0}:OnTradeBySQRSpd triggerred {1} Bip={2}: RocHiBip={3}, RocLoBip={4}, RocMidBip={5}",
//			CurrentBars[BarsInProgress], isig.SignalName, BarsInProgress, giSQRSpd.RocHighBip, giSQRSpd.RocLowBip, giSQRSpd.RocMidBip));

            SignalAction             sa = e.IndSignal.SignalAction;
            List <PairSpread <int> > ps = null;

            if (sa != null)
            {
                ps = sa.PairSpds;
            }
            int[] idxs = { ShortBip, MidLongBip, LongBip, MidShortBip };          // {BipSpyLn, BipSpySt, BipQQQLn, BipQQQSt, BipIWMLn, BipIWMSt};
            if (e.IndSignal.SignalName != null && HasPositions(idxs, 2))
            {
                OnExitPositions(e);
            }
            else if (e.IndSignal.SignalName != null
                     //&& BarsInProgress == BipIWM
                     && giSQRSpd.IsTradingTime(Times[BipIWM][0]))
            {
                if (ps != null)
                {
//					foreach(PairSpread<int> p in ps) {
//						Print(String.Format("{0}:OnTradeBySQRSpd Bip={1}, Symbol1={2}, Symbol2={3}, SpdType={4}, SpreadValue={5}",
//						CurrentBars[BarsInProgress], BarsInProgress,
//						p.Symbol1, p.Symbol2, p.SpdType, p.SpreadValue));
//					}
                    OnEntryPositions(e);
                }
            }
            return;

//			int q_max = GetTradeQuantity(giPctSpd.PctChgMaxBip, this.MM_ProfitFactorMax);
//			int q_min = GetTradeQuantity(giPctSpd.PctChgMinBip, this.MM_ProfitFactorMin);

//			//exit at 9:40 am ct
//			if(isig.SignalName == giPctSpd.SignalName_ExitForOpen) {
//				Print(String.Format("{0}:OnTradeByPctSpd Ex Bip={1}: MaxBip={2}, PosMax={3},  MinBip={4}, PosMin={5}",
//				CurrentBars[BarsInProgress], BarsInProgress, giPctSpd.PctChgMaxBip, Positions[giPctSpd.PctChgMaxBip], giPctSpd.PctChgMinBip, Positions[giPctSpd.PctChgMinBip]));
//				OnExitPositions(e);
//			} else { //entry at 9:02 am ct
//				Print(String.Format("{0}:OnTradeByPctSpd En Bip={1}: PctSpd={2}, MaxBip={3}, MinBip={4}",
//				CurrentBar, BarsInProgress, giPctSpd.PlotPctSpd[0], giPctSpd.PctChgMaxBip, giPctSpd.PctChgMinBip));
//				if(isig.TrendDir.TrendDir == TrendDirection.Up) {
//					IndicatorProxy.PrintLog(true, IsLiveTrading(),String.Format("{0}:{1} Ln Bip={2}: PctSpd={3}, MaxBipQuant={4}, MinBipQuant={5}",
//					CurrentBars[BarsInProgress], e.Message, BarsInProgress, giPctSpd.PlotPctSpd[0],
//					q_max, q_min));
//					EnterLong(giPctSpd.PctChgMaxBip, q_max, "GIPctSpd");
//					EnterShort(giPctSpd.PctChgMinBip, q_min, "GIPctSpd");
//				}
//				else if(isig.TrendDir.TrendDir == TrendDirection.Down) {
//					IndicatorProxy.PrintLog(true, IsLiveTrading(),String.Format("{0}:{1} St Bip={2}: PctSpd={3}, MaxBipQuant={4}, MinBipQuant={5}",
//					CurrentBars[BarsInProgress], e.Message, BarsInProgress, giPctSpd.PlotPctSpd[0],
//					q_max, q_min));
//					EnterShort(giPctSpd.PctChgMaxBip, q_max, "GIPctSpd");
//					EnterLong(giPctSpd.PctChgMinBip, q_min, "GIPctSpd");
//				}
//			}
        }
Example #9
0
 public Ets2PrefabRoute GetRoute(int entryNode, IndicatorSignal signal)
 {
     throw new NotImplementedException();
 }
Example #10
0
 public Ets2PrefabRoute GetRoute(int entryNode, IndicatorSignal signal)
 {
     throw new NotImplementedException();
 }