Debugging cAlgo BOT using Visual Studio does not initialize Indicators such as EMA

Created at 19 Jan 2014, 23:00
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!
SP

speculate555

Joined 16.01.2014

Debugging cAlgo BOT using Visual Studio does not initialize Indicators such as EMA
19 Jan 2014, 23:00



Problem: Indicators such as EMA are returning null values even after initialization while debugging.

I have been working on getting the Visual Studio debugger to debug a sample BOT code I've written. I compiled the following code into a dll first using Visual Studio.


using System;

using cAlgo.API;

using cAlgo.API.Indicators;

using cAlgo.API.Internals;

using cAlgo.API.Requests;

using cAlgo.Indicators;

using System.Collections;

using System.Collections.Generic;

 

namespace Rsi.TradeLibrary

{

    [Robot(TimeZone = TimeZones.UTC)]

    public class SampleBot : Robot

    {

          //Global Variables

          [Parameter("MA Type")]

          public MovingAverageType MAType { get; set; }

         [Parameter("Source")]

         public DataSeries SourceSeries { get; set; }

         [Parameter("Slow Periods", DefaultValue = 20)]

         public int SlowPeriods { get; set; }

         [Parameter("Fast Periods", DefaultValue = 10)]

         public int FastPeriods { get; set; }

         public ExponentialMovingAverage slowMa;

         public ExponentialMovingAverage fastMa;
 

         protected override void OnStart()

         {

             Print("Debugging Started");

             FastPeriods = 10;
             SlowPeriods = 20;

             fastMa = Indicators.ExponentialMovingAverage(SourceSeries, FastPeriods);
             slowMa = Indicators.ExponentialMovingAverage(SourceSeries, SlowPeriods);
 

         }
    }
}


I then referenced the dll in cAlgo IDE and was able to build successfully. I was also able to attach the debugger to cAlgo.exe process. I've verified that the control goes to OnStart method and gets executed fine by placing a breakpoint. However, SourceSeries value does not get initialized. It just always stays Null.


//#reference:..\..\..\..\Rsi.TradeLibrary\Rsi.TradeLibrary\bin\Debug\Rsi.TradeLibrary.dll

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)]
     public class RsiTradeBot : Rsi.TradeLibrary.SampleBot
     {

         protected override void OnStart()
         {
             // Put your initialization logic here

  
             base.OnStart();
         }

         protected override void OnTick()
         {
             // Put your core logic here
             base.OnTick();
         }

         protected override void OnStop()
         {
             // Put your deinitialization logic here
             base.OnStop();
         }
     }
}


Am I missing something? Can somebody please help me figure this out so I can debug the code correctly?

Thanks.

 


@speculate555