void ReloadCustomIndicators()
{
// Check if the strategy contains custom indicators
bool strategyHasCustomIndicator = false;
foreach (IndicatorSlot slot in Data.Strategy.Slot)
{ // Searching the strategy slots for a custom indicator
if (Indicator_Store.CustomIndicatorNames.Contains(slot.IndicatorName))
{
strategyHasCustomIndicator = true;
break;
}
}
if (strategyHasCustomIndicator)
{ // Save the current strategy
DialogResult dialogResult = WhetherSaveChangedStrategy();
if (dialogResult == DialogResult.Yes)
SaveStrategy();
else if (dialogResult == DialogResult.Cancel)
return;
}
// Reload all the custom indicators
Custom_Indicators.LoadCustomIndicators();
if (strategyHasCustomIndicator)
{ // Load and calculate a new strategy
Data.StrategyDir = Path.Combine(Data.ProgramDir, Data.DefaultStrategyDir);
if (OpenStrategy(Path.Combine(Data.StrategyDir, "New.xml")) == 0)
{
AfterStrategyOpening(false);
Calculate(false);
}
}
return;
}