Can't set timeframe parameter for this indicator

Created at 28 Feb 2016, 16:48
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!
CO

ColossusFX

Joined 27.08.2015

Can't set timeframe parameter for this indicator
28 Feb 2016, 16:48


 

Hi, having problems with this code.

I need to be able to select the timeframe for this indicator.

When I do reference the parameter no trades are made at all.

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


namespace cAlgo.Indicators
{
    [Indicator(IsOverlay = false, TimeZone = TimeZones.UTC, AccessRights = AccessRights.None, ScalePrecision = 0)]
    [Levels(0, 10, 15, 20, 25, 30, 35, 40, 45, 50,
    55, 60, 70, 80, 90, 100, 200, 300)]
    public class PipsATRIndicator : Indicator
    {
        #region Indicator parameters
        [Parameter("Atr TimeFrame")]
        public TimeFrame AtrTimeFrame { get; set; }

        [Parameter("ATR Period", DefaultValue = 20)]
        public int AtrPeriod { get; set; }

        [Parameter("ATR MAType")]
        public MovingAverageType AtrMaType { get; set; }

        [Output("Pips ATR", Color = Colors.SteelBlue)]
        public IndicatorDataSeries Result { get; set; }
        #endregion

        private AverageTrueRange atr;

        protected override void Initialize()
        {
            atr = Indicators.AverageTrueRange(MarketData.GetSeries(AtrTimeFrame), AtrPeriod, AtrMaType);
        }

        public override void Calculate(int index)
        {
            Result[index] = atr.Result[index] / Symbol.PipSize;
        }

    }
}

When I set the following in cBot no trades are made.

[Parameter()]
        public TimeFrame AtrTimeFrame{ get; set; }

The indicator is working with the following in onstart()

pipsATR = Indicators.GetIndicator<PipsATRIndicator>(TimeFrame, AtrPeriod, AtrMaType);

But when I set it to

pipsATR = Indicators.GetIndicator<PipsATRIndicator>(AtrTimeFrame, AtrPeriod, AtrMaType);

Positions don't open.

I'm sure its simple, but I just cant seem to get it to work.

Thanks for any advice


@ColossusFX
Replies

croucrou
29 Feb 2016, 20:31

RE:

I think you have defined "TimeFrame" as a type of "AtrTimeFrame" and not as a value.

 

Default parameter seems to be the actual value. Try to set its default parameter as e.g. "TimeFrame.Hour" and see if that works.


@croucrou

ColossusFX
06 Mar 2016, 17:41

Thanks for the help.

It works, but optimization went from 2hrs to 12hrs!

Thanks again


@ColossusFX