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); }
// 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); } }
// 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"); * } * } */ }
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); } }
// 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"); // } // } }
public Ets2PrefabRoute GetRoute(int entryNode, IndicatorSignal signal) { throw new NotImplementedException(); }