//+------------------------------------------------------------------+ //| FUNCTIONS FOR BOTH TESTERS | //+------------------------------------------------------------------+ void ProcessSymbolArray(string custom_string, int pair_preset, string &symbols_to_trade[], int &total_symbols) { string newSymbolString; if (pair_preset == ALL_SYMBOLS || pair_preset == ALL_SUBSTITUTE || pair_preset == ALL_SUFFIX) { newSymbolString = "EURJPY,EURCHF,EURCAD,EURUSD,EURNZD,EURAUD,EURGBP,GBPJPY,GBPCHF,GBPCAD,GBPUSD,GBPNZD,GBPAUD,AUDJPY,AUDCHF,AUDCAD,AUDUSD,AUDNZD,NZDJPY,NZDCHF,NZDCAD,NZDUSD,USDJPY,USDCHF,USDCAD,CADJPY,CADCHF,CHFJPY"; } else if (pair_preset == BT_ONLY) { newSymbolString = "AUDCAD,AUDNZD,CHFJPY,EURGBP,EURUSD"; } else if (pair_preset == ACTIVE_ONLY) { newSymbolString = Symbol(); } else if (pair_preset == ALL_AND_CUSTOM) { newSymbolString = "EURJPY,EURCHF,EURCAD,EURUSD,EURNZD,EURAUD,EURGBP,GBPJPY,GBPCHF,GBPCAD,GBPUSD,GBPNZD,GBPAUD,AUDJPY,AUDCHF,AUDCAD,AUDUSD,AUDNZD,NZDJPY,NZDCHF,NZDCAD,NZDUSD,USDJPY,USDCHF,USDCAD,CADJPY,CADCHF,CHFJPY"; if (custom_string != "") newSymbolString = newSymbolString + ","+custom_string; } else if (pair_preset == SYMBOL_FILE) { int file_handle = FileOpen(custom_string, FILE_TXT|FILE_COMMON|FILE_READ|FILE_ANSI|FILE_SHARE_READ); if (file_handle != INVALID_HANDLE) { FileReadArray(file_handle, symbols_to_trade); FileClose(file_handle); } else { Print("SYMBOL FILE \"" + custom_string + "\" NOT FOUND"); } } else //ACTIVE_ONLY { newSymbolString = custom_string; } if (pair_preset!=SYMBOL_FILE) { StringReplace(newSymbolString, " ", ""); StringSplit(newSymbolString, ',', symbols_to_trade); } total_symbols = ArraySize(symbols_to_trade); int i; for (i=0; i=0; k--) { #ifdef __MQL5__ SymbolSelect(symbols_to_trade[k], true); bool isCustom; if (!SymbolExist(symbolsToTrade[k], isCustom)) #else MqlRates array[]; if (CopyRates(symbolsToTrade[k], PERIOD_CURRENT, 0, 1, array)<0) #endif { int err=ArraySize(symbolsError); ArrayResize(symbolsError, err+1, starting); symbolsError[err]=symbols_to_trade[k]; symbols_to_trade[k] = symbols_to_trade[total_symbols-1]; total_symbols--; ArrayResize(symbolsToTrade, total_symbols); //Delete last } } for (int e=0; e