cBot with Awesome Oscillator and Exponential Moving Average

Created at 26 Feb 2019, 12:13
How’s your experience with the cTrader Platform?
Your feedback is crucial to cTrader's development. Please take a few seconds to share your opinion and help us improve your trading experience. Thanks!
jamespeterwilkinson's avatar

jamespeterwilkinson

Joined 23.02.2019

cBot with Awesome Oscillator and Exponential Moving Average
26 Feb 2019, 12:13


Trade execution: AO is rising = buy and AO is falling = sell

Filter: I am attempting to add a Exponential Moving Average (Multi Time Frame) as a filter, with the period and timeframe as the parameters

AO = Awesome Oscillator indicator

EMAMTF = Exponential Moving Average (Multi Time Frame) indicator

using System;
using System.Linq;
using cAlgo.API;
using cAlgo.API.Indicators;
using cAlgo.API.Internals;
using cAlgo.Indicators;

namespace cAlgo.Robots
{
    [Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
    public class cBotAOEMA : Robot
    {

        [Parameter("Start Time", DefaultValue = "02:00")]
        public string StartTime { get; set; }

        [Parameter("Stop Time", DefaultValue = "22:00")]
        public string StopTime { get; set; }

        [Parameter("Stop Loss", DefaultValue = 10)]
        public int StopLoss { get; set; }

        [Parameter("Take Profit", DefaultValue = 20)]
        public int TakeProfit { get; set; }

        [Parameter("Slippage", DefaultValue = 10)]
        public int Slippage { get; set; }

        [Parameter("Volume In Units", DefaultValue = 1000)]
        public double volumeInUnits { get; set; }

        [Parameter(DefaultValue = 5, MinValue = 1)]
        public int MaxPositions { get; set; }

        [Parameter("AOMTF Timeframe")]
        public TimeFrame AOMTFTimeframe { get; set; }

        [Parameter("EMAMTF Periods", DefaultValue = 14)]
        public int Periods { get; set; }

        [Parameter("Source")]
        public DataSeries Source { get; set; }

        private AwesomeOscillator AO;
        private ExponentialMovingAverage EMAMTF;
        private MarketSeries MarketSeriesEMAMTF;


        protected override void OnStart()
        {
            AO = Indicators.AwesomeOscillator();
            EMAMTF = Indicators.ExponentialMovingAverage(Source, Periods);
            MarketSeriesEMAMTF = MarketData.GetSeries(TimeFrame);

        }

        protected override void OnBar()
        {
            if (Positions.Count < MaxPositions)
            {

                var tradingStarts = TimeSpan.ParseExact(StartTime, "hh\\:mm", null);
                var tradingStops = TimeSpan.ParseExact(StopTime, "hh\\:mm", null);
                if (Server.Time.TimeOfDay >= tradingStarts && Server.Time.TimeOfDay < tradingStops)
                }

                    if (Functions.IsRising(AO.Result) && (MarketSeriesEMAMTF.Close.HasCrossedAbove(EMAMTF))
                    {
                        ExecuteMarketOrder(TradeType.Buy, Symbol, volumeInUnits, "cBotAOEMA", StopLoss, TakeProfit, Slippage, "this is a comment");
                    }
                    else if (Functions.IsFalling(AO.Result) && (MarketSeriesEMAMTF.Close.HasCrossedBelow(EMAMTF))
                    {
                        ExecuteMarketOrder(TradeType.Sell, Symbol, volumeInUnits, "cBotAOEMA", StopLoss, TakeProfit, Slippage, "this is a comment");
                    }
              }
         }            
               

 

Will appreciate fresh eyes on this error:

Thank you

#tradesfae


@jamespeterwilkinson
Replies

PanagiotisCharalampous
26 Feb 2019, 12:17

Hi jpwtrading,

You have a wrong bracket at line 65 and lots of missing brackets at the end.

Best Regards,

Panagiotis


@PanagiotisCharalampous

jamespeterwilkinson
26 Feb 2019, 12:39

RE:

Panagiotis Charalampous said:

Hi jpwtrading,

You have a wrong bracket at line 65 and lots of missing brackets at the end.

Best Regards,

Panagiotis

@Panagiotis Thank you


@jamespeterwilkinson