Ejemplo n.º 1
0
        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!");
                }
            }
        }
Ejemplo n.º 2
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!");
                }
            }
        }
Ejemplo n.º 3
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");
        }