MarketSeries.Close array analogy to MQL4 CopyClose
24 Jul 2019, 15:14
Hi everyone!
I am new to this forum and cTrader for the matter! I come from using MQL4 but I-m now switching to cTrader for it's many features!
I'm sorry if this has been solved before. I've looked for it without any luck; I'm trying to build an array of close prices beginning from the last candle up until a term iCandle. When I call MarketSeries.Close[index] outside a for loop, the data is displayed nicely. Nonetheless, upon calling the method inside a for loop, I don't get any value back. I am also new to C# as I've been coding in Python for the last 2 years, so I'm guessing there must be something I'm doing wrong.
Any help will be much appreciated! Thank you!
Code:
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 Strategy5 : Robot
{
[Parameter("iCandle", DefaultValue = 7)]
public int iCandle { get; set; }
protected override void OnStart()
{
Print("initializing console");
}
protected override void OnBar()
{
//lets print the last 7 candle closes
Print("Printing the last 7 candles");
var lastIndex = MarketSeries.Close.Count - 1;
string data = "";
for (int i = lastIndex; i <= lastIndex-iCandle; i--)
{
string strclose = MarketSeries.Close[i].ToString();
data += strclose + ", ";
}
Print("last prices are {0}", data);
}
protected override void OnStop()
{
// Put your deinitialization logic here
}
}
}

firemyst
17 Aug 2019, 18:37
RE:
gutygs said:
Of course you won't get any values inside the for loop. Look at the conditions of your for loop.
for (int i = lastIndex; i <= lastIndex-iCandle; i--)
lastIndex is set to the last index.
i is set to this value.
So how is "i" going to be less than the "lastIndex - iCandle"?
Say lastIndex is 3000. So i starts off at 3000.
how is 3000 going to be <= (3000 - 5)?
It never will be.
So it never enters your for-loop.
And thus nothing is printed.
@firemyst