public EncogFrameworkIndicator EncogFrameworkIndicator(Data.IDataSeries input, string host, string indicatorName, int port)
{
if (cacheEncogFrameworkIndicator != null)
for (int idx = 0; idx < cacheEncogFrameworkIndicator.Length; idx++)
if (cacheEncogFrameworkIndicator[idx].Host == host && cacheEncogFrameworkIndicator[idx].IndicatorName == indicatorName && cacheEncogFrameworkIndicator[idx].Port == port && cacheEncogFrameworkIndicator[idx].EqualsInput(input))
return cacheEncogFrameworkIndicator[idx];
lock (checkEncogFrameworkIndicator)
{
checkEncogFrameworkIndicator.Host = host;
host = checkEncogFrameworkIndicator.Host;
checkEncogFrameworkIndicator.IndicatorName = indicatorName;
indicatorName = checkEncogFrameworkIndicator.IndicatorName;
checkEncogFrameworkIndicator.Port = port;
port = checkEncogFrameworkIndicator.Port;
if (cacheEncogFrameworkIndicator != null)
for (int idx = 0; idx < cacheEncogFrameworkIndicator.Length; idx++)
if (cacheEncogFrameworkIndicator[idx].Host == host && cacheEncogFrameworkIndicator[idx].IndicatorName == indicatorName && cacheEncogFrameworkIndicator[idx].Port == port && cacheEncogFrameworkIndicator[idx].EqualsInput(input))
return cacheEncogFrameworkIndicator[idx];
EncogFrameworkIndicator indicator = new EncogFrameworkIndicator();
indicator.BarsRequired = BarsRequired;
indicator.CalculateOnBarClose = CalculateOnBarClose;
#if NT7
indicator.ForceMaximumBarsLookBack256 = ForceMaximumBarsLookBack256;
indicator.MaximumBarsLookBack = MaximumBarsLookBack;
#endif
indicator.Input = input;
indicator.Host = host;
indicator.IndicatorName = indicatorName;
indicator.Port = port;
Indicators.Add(indicator);
indicator.SetUp();
EncogFrameworkIndicator[] tmp = new EncogFrameworkIndicator[cacheEncogFrameworkIndicator == null ? 1 : cacheEncogFrameworkIndicator.Length + 1];
if (cacheEncogFrameworkIndicator != null)
cacheEncogFrameworkIndicator.CopyTo(tmp, 0);
tmp[tmp.Length - 1] = indicator;
cacheEncogFrameworkIndicator = tmp;
return indicator;
}
}