protected override void OnStart() { _maCrossIndicator = Indicators.GetIndicator <MACrossOver>(SourceSeries, SlowPeriodParameter, MediumPeriodParameter, FastPeriodParameter, false, false, false); _fastMA = Indicators.MovingAverage(SourceSeries, FastPeriodParameter, MovingAverageType.Exponential); _mediumMA = Indicators.MovingAverage(SourceSeries, MediumPeriodParameter, MovingAverageType.Exponential); _slowMA = Indicators.MovingAverage(SourceSeries, SlowPeriodParameter, MovingAverageType.Exponential); _rsi = Indicators.RelativeStrengthIndex(SourceSeries, 14); _atr = Indicators.AverageTrueRange(Bars, 14, MovingAverageType.Exponential); Print("Take Longs: {0}", TakeLongsParameter); Print("Take Shorts: {0}", TakeShortsParameter); Print("Initial SL rule: {0}", InitialStopLossRule); Print("Initial SL in pips: {0}", InitialStopLossInPips); Print("Trailing SL rule: {0}", TrailingStopLossRule); Print("Trailing SL in pips: {0}", TrailingStopLossInPips); Print("Lot sizing rule: {0}", LotSizingRule); Print("Take profit rule: {0}", TakeProfitRule); Print("Take profit in pips: {0}", TakeProfitInPips); Print("Minutes to wait after position closed: {0}", MinutesToWaitAfterPositionClosed); Print("Move to breakeven: {0}", MoveToBreakEven); Print("Close half at breakeven: {0}", CloseHalfAtBreakEven); Print("MA Cross Rule: {0}", MaCrossRule); Print("H4MA: {0}", H4MaPeriodParameter); Print("Recording: {0}", RecordSession); Print("Enter at Market: {0}", EnterAtMarket); Print("BarsToAllowTradeToDevelop: {0}", BarsToAllowTradeToDevelop); Init(TakeLongsParameter, TakeShortsParameter, InitialStopLossRule, InitialStopLossInPips, TrailingStopLossRule, TrailingStopLossInPips, LotSizingRule, TakeProfitRule, TakeProfitInPips, MinutesToWaitAfterPositionClosed, MoveToBreakEven, CloseHalfAtBreakEven, DynamicRiskPercentage, BarsToAllowTradeToDevelop); Notifications.SendEmail("*****@*****.**", "*****@*****.**", "MA Cross Over robot initialized", "This is a test"); if (RecordSession) { _runId = SaveRunToDatabase(); if (_runId <= 0) { throw new InvalidOperationException("Run Id was <= 0!"); } } }
//private readonly List<SignalDay> _signals = new List<SignalDay> //{ // new SignalDay // { // SignalType = SignalType.DewUp, // Date = new DateTime(2016, 5, 10), // Bsr = 2.25, // RT = 1.06 // }, // new SignalDay // { // SignalType = SignalType.DewUp, // Date = new DateTime(2016, 5, 25), // Bsr = 1.50, // RT = 1.04 // }, // new SignalDay // { // SignalType = SignalType.DewUp, // Date = new DateTime(2016, 6, 30), // Bsr = 1.16, // RT = 1.02 // }, // new SignalDay // { // SignalType = SignalType.DewUp, // Date = new DateTime(2016, 9, 22), // Bsr = 2.22, // RT = 1.07 // }, // new SignalDay // { // SignalType = SignalType.DewUp, // Date = new DateTime(2016, 10, 10), // Bsr = 1.22, // RT = 1.01 // }, // new SignalDay // { // SignalType = SignalType.DewUp, // Date = new DateTime(2016, 11, 11), // Bsr = 1.07, // RT = 1.02 // }, // new SignalDay // { // SignalType = SignalType.DewUp, // Date = new DateTime(2017, 3, 30), // Bsr = 1.48, // RT = 1.02 // }, // new SignalDay // { // SignalType = SignalType.DewUp, // Date = new DateTime(2017, 4, 10), // Bsr = 1.13, // RT = 1.00 // }, // new SignalDay // { // SignalType = SignalType.DewUp, // Date = new DateTime(2017, 4, 17), // Bsr = 1.04, // RT = 0.99 // }, // new SignalDay // { // SignalType = SignalType.DewUp, // Date = new DateTime(2017, 4, 19), // Bsr = 1.16, // RT = 1.00 // }, // new SignalDay // { // SignalType = SignalType.DewUp, // Date = new DateTime(2017, 5, 22), // Bsr = 1.10, // RT = 0.99 // }, // new SignalDay // { // SignalType = SignalType.DewUp, // Date = new DateTime(2017, 7, 11), // Bsr = 1.20, // RT = 0.99 // }, // new SignalDay // { // SignalType = SignalType.DewUp, // Date = new DateTime(2017, 8, 31), // Bsr = 1.15, // RT = 1.01 // }, // new SignalDay // { // SignalType = SignalType.DewUp, // Date = new DateTime(2017, 11, 16), // Bsr = 1.02, // RT = 1.00 // }, // new SignalDay // { // SignalType = SignalType.DewUp, // Date = new DateTime(2018, 3, 7), // Bsr = 0.9, // RT = 0.99 // }, // new SignalDay // { // SignalType = SignalType.DewUp, // Date = new DateTime(2018, 4, 17), // Bsr = 1.08, // RT = 0.99 // }, // new SignalDay // { // SignalType = SignalType.DewUp, // Date = new DateTime(2018, 4, 27), // Bsr = 0.81, // RT = 0.97 // }, // new SignalDay // { // SignalType = SignalType.DewUp, // Date = new DateTime(2018, 5, 9), // Bsr = 1.21, // RT = 1.01 // }, // new SignalDay // { // SignalType = SignalType.DewUp, // Date = new DateTime(2018, 7, 6), // Bsr = 1.48, // RT = 1.01 // }, // new SignalDay // { // SignalType = SignalType.DewUp, // Date = new DateTime(2018, 8, 2), // Bsr = 0.79, // RT = 0.96 // }, // new SignalDay // { // SignalType = SignalType.DewUp, // Date = new DateTime(2018, 8, 14), // Bsr = 0.69, // RT = 0.94 // }, // new SignalDay // { // SignalType = SignalType.DewUp, // Date = new DateTime(2018, 8, 17), // Bsr = 0.69, // RT = 0.94 // }, // new SignalDay // { // SignalType = SignalType.DewUp, // Date = new DateTime(2018, 11, 28), // Bsr = 0.29, // RT = 0.89 // }, // new SignalDay // { // SignalType = SignalType.DewUp, // Date = new DateTime(2019, 1, 11), // Bsr = 0.64, // RT = 0.98 // }, // new SignalDay // { // SignalType = SignalType.DewUp, // Date = new DateTime(2019, 3, 28), // Bsr = 1.66, // RT = 1.05 // }, // new SignalDay // { // SignalType = SignalType.DewUp, // Date = new DateTime(2019, 6, 13), // Bsr = 0.46, // RT = 0.93 // }, // new SignalDay // { // SignalType = SignalType.DewUp, // Date = new DateTime(2019, 9, 5), // Bsr = 0.55, // RT = 0.95 // }, // new SignalDay // { // SignalType = SignalType.DewUp, // Date = new DateTime(2019, 10, 21), // Bsr = 0.96, // RT = 0.96 // }, // // ****************** DOWN SIGNALS // new SignalDay // { // SignalType = SignalType.DewDown, // Date = new DateTime(2019, 10, 1), // Bsr = 0.33, // RT = 0.90 // }, // new SignalDay // { // SignalType = SignalType.DewDown, // Date = new DateTime(2019, 8, 1), // Bsr = 0.61, // RT = 0.95 // }, // new SignalDay // { // SignalType = SignalType.DewDown, // Date = new DateTime(2019, 5, 9), // Bsr = 0.49, // RT = 0.93 // }, // new SignalDay // { // SignalType = SignalType.DewDown, // Date = new DateTime(2019, 3, 22), // Bsr = 1.65, // RT = 1.05 // }, // new SignalDay // { // SignalType = SignalType.DewDown, // Date = new DateTime(2018, 12, 4), // Bsr = 0.19, // RT = 0.85 // }, // new SignalDay // { // // BEST Signal // SignalType = SignalType.DewDown, // Date = new DateTime(2018, 10, 1), // Bsr = 0.63, // RT = 0.95 // }, // new SignalDay // { // SignalType = SignalType.DewDown, // Date = new DateTime(2018, 8, 15), // Bsr = 0.48, // RT = 0.92 // }, // new SignalDay // { // SignalType = SignalType.DewDown, // Date = new DateTime(2018, 8, 13), // Bsr = 0.56, // RT = 0.93 // }, // new SignalDay // { // SignalType = SignalType.DewDown, // Date = new DateTime(2019, 7, 30), // Bsr = 0.66, // RT = 0.95 // }, // new SignalDay // { // SignalType = SignalType.DewDown, // Date = new DateTime(2018, 6, 27), // Bsr = 0.7, // RT = 0.96 // }, // new SignalDay // { // SignalType = SignalType.DewDown, // Date = new DateTime(2018, 4, 30), // Bsr = 0.69, // RT = 0.96 // }, // new SignalDay // { // SignalType = SignalType.DewDown, // Date = new DateTime(2018, 4, 24), // Bsr = 0.77, // RT = 0.96 // }, // new SignalDay // { // SignalType = SignalType.DewDown, // Date = new DateTime(2018, 3, 22), // Bsr = 0.4, // RT = 0.93 // }, // new SignalDay // { // SignalType = SignalType.DewDown, // Date = new DateTime(2018, 2, 5), // Bsr = 0.34, // RT = 0.91 // }, // new SignalDay // { // SignalType = SignalType.DewDown, // Date = new DateTime(2017, 11, 13), // Bsr = 1.15, // RT = 1.00 // }, //}; protected override void OnStart() { ReadSignalData(); _closedHalf = false; _maCrossIndicator = Indicators.GetIndicator <MACrossOver>(SourceSeries, SlowPeriodParameter, MediumPeriodParameter, FastPeriodParameter); _fastMA = Indicators.MovingAverage(SourceSeries, FastPeriodParameter, MovingAverageType.Exponential); _mediumMA = Indicators.MovingAverage(SourceSeries, MediumPeriodParameter, MovingAverageType.Exponential); _slowMA = Indicators.MovingAverage(SourceSeries, SlowPeriodParameter, MovingAverageType.Exponential); var h4series = MarketData.GetSeries(TimeFrame.Hour4); _rsi = Indicators.RelativeStrengthIndex(SourceSeries, 14); _h4Rsi = Indicators.RelativeStrengthIndex(h4series.Close, 14); Print("Take Longs: {0}", TakeLongsParameter); Print("Take Shorts: {0}", TakeShortsParameter); Print("Initial SL rule: {0}", InitialStopLossRule); Print("Initial SL in pips: {0}", InitialStopLossInPips); Print("Trailing SL in pips: {0}", TrailingStopLossInPips); Print("Lot sizing rule: {0}", LotSizingRule); Print("Take profit in pips: {0}", TakeProfitInPips); Print("Minutes to wait after position closed: {0}", MinutesToWaitAfterPositionClosed); Print("Recording: {0}", RecordSession); Init(TakeLongsParameter, TakeShortsParameter, InitialStopLossRule, InitialStopLossInPips, 0, TrailingStopLossInPips, LotSizingRule, 0, TakeProfitInPips, MinutesToWaitAfterPositionClosed, false, false, DynamicRiskPercentage, BarsToAllowTradeToDevelop); Notifications.SendEmail("*****@*****.**", "*****@*****.**", "MA Cross Over robot initialized", "This is a test"); if (RecordSession) { _runId = SaveRunToDatabase(); if (_runId <= 0) { throw new InvalidOperationException("Run Id was <= 0!"); } } }
protected override void OnStart() { _maCrossIndicator = Indicators.GetIndicator <MACrossOver>(SourceSeries, SlowPeriodParameter, MediumPeriodParameter, FastPeriodParameter); _fastMA = Indicators.MovingAverage(SourceSeries, FastPeriodParameter, MovingAverageType.Exponential); _mediumMA = Indicators.MovingAverage(SourceSeries, MediumPeriodParameter, MovingAverageType.Exponential); _slowMA = Indicators.MovingAverage(SourceSeries, SlowPeriodParameter, MovingAverageType.Exponential); Print("Take Longs: {0}", TakeLongsParameter); Print("Take Shorts: {0}", TakeShortsParameter); Print("Initial SL rule: {0}", InitialStopLossRule); Print("Initial SL in pips: {0}", InitialStopLossInPips); Print("Trailing SL rule: {0}", TrailingStopLossRule); Print("Trailing SL in pips: {0}", TrailingStopLossInPips); Print("Lot sizing rule: {0}", LotSizingRule); Print("Take profit rule: {0}", TakeProfitRule); Print("Take profit in pips: {0}", TakeProfitInPips); Print("Minutes to wait after position closed: {0}", MinutesToWaitAfterPositionClosed); Print("Move to breakeven: {0}", MoveToBreakEven); Print("Close half at breakeven: {0}", CloseHalfAtBreakEven); Print("MA Cross Rule: {0}", MaCrossRule); Print("MADistanceFilter: {0}", MADistanceFilter); Print("MAsFlatFilter: {0}", MAsFlatFilter); Print("NewHighLowFilter: {0}", NewHighLowFilter); Print("BarsToAllowTradeToDevelop: {0}", BarsToAllowTradeToDevelop); Init(TakeLongsParameter, TakeShortsParameter, InitialStopLossRule, InitialStopLossInPips, TrailingStopLossRule, TrailingStopLossInPips, LotSizingRule, TakeProfitRule, TakeProfitInPips, MinutesToWaitAfterPositionClosed, MoveToBreakEven, CloseHalfAtBreakEven, DynamicRiskPercentage, BarsToAllowTradeToDevelop); Notifications.SendEmail("*****@*****.**", "*****@*****.**", "MA Cross Over robot initialized", "This is a test"); }