How to prefetch indicator history when Robot starts?
03 Oct 2018, 10:51
Hi!
Could you explain how to preload / prefetch indicator data (for example for ZigZag - https://ctrader.com/algos/indicators/show/1597) when cBot starts? Now I should whait for min 2 extremum points to draw Zigzag.
Thanks.
Replies
diiptrade
03 Oct 2018, 20:58
But, in real time it prefetch about 2k bars, in backtesting - about 120 bars... How to prefetch more?
@diiptrade
PanagiotisCharalampous
04 Oct 2018, 11:29
Hi Roman,
This is a limitation of backesting. A workaround is to start the backtesting earlier so that it can collect the necessary information.
Best Regards,
Panagiotis
@PanagiotisCharalampous

PanagiotisCharalampous
03 Oct 2018, 11:03
Hi Roman,
Data is loaded in Indicators on their initialization. There is nothing special you need to do about it. See below
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 NewcBot : Robot { [Parameter(DefaultValue = 0.0)] public double Parameter { get; set; } SimpleMovingAverage _sma; protected override void OnStart() { _sma = Indicators.SimpleMovingAverage(MarketSeries.Close, 14); for (int i = 14; i < _sma.Result.Count; i++) { Print("SMA: " + _sma.Result[i]); } } protected override void OnTick() { // Put your core logic here } protected override void OnStop() { // Put your deinitialization logic here } } }Best Regards,
Panagiotis
@PanagiotisCharalampous