Как-то не приходило в голову. А мысль на самом деле богатая. Надо подумать.
слепил простейший генератор:
///////////////////////////////////// string ex4="testexpert_1_1";//имя экспа ///////////////////////////////////// string tfs[]={"H4","M15","M30","H1"}; int tfc=4; string li[]={"GBPJPY","EURUSD","USDJPY","USDCHF","USDCAD","GBPUSD","AUDUSD","EURGBP","EURCHF","GBPCHF","EURJPY","EURAUD"}; //{"EURCAD","AUDCAD","GBPJPY","NZDJPY","AUDJPY","AUDNZD","EURUSD","USDJPY","USDCHF","USDCAD","GBPUSD","AUDUSD","CADJPY","AUDCHF","NZDUSD","EURGBP","EURCHF","GBPCHF","EURJPY","EURAUD","EURNZD","GBPCAD","GBPAUD","GBPNZD","CHFJPY","CADCHF","NZDCHF","NZDCAD","XAUUSD","XAGUSD"}; void start(){ int h,i,k,l;double x; string symbol; for (i=0; i<ArraySize(li); i++) { symbol=li[i]; for (k=0; k<tfc; k++){ string ts=tfs[k],tss=ts; if(StringLen(ts)<3) tss=ts+"_"; h=FileOpen(symbol+"_"+tss+"_"+ex4+".ini",FILE_CSV|FILE_WRITE,';'); //FileWrite(h); FileWrite(h,"TestSymbol="+symbol); FileWrite(h,"TestPeriod="+ts); FileWrite(h,"TestReport=tester\\" +symbol+"_"+tss+"_"+ex4 ); FileWrite(h,"TestExpert="+ex4); FileWrite(h,"TestExpertParameters="+ex4+".set"); FileWrite(h,"TestModel=2"); FileWrite(h,"TestRecalculate=true"); FileWrite(h,"TestOptimization=true"); FileWrite(h,"TestReplaceReport=true"); FileWrite(h,"TestShutdownTerminal=true"); FileClose(h); } } Comment ("done"); Print("done."); }может, кому пригодится..
У меня аналогичный вопрос, только из приведённого примера мне не всё ясно. Он открывает какой-то файл строчкой
h=FileOpen(symbol+"_"+tss+"_"+ex4+".ini",FILE_CSV|FILE_WRITE,';');
Но мне не понятно, откуда должны взяться эти файлы (открываются они вроде внутри цикла). Может, их надо создать? И не совсем мне понятно, их нужно создавать отдельно для каждого сочетания инструмента и интервала? И тогда мне не очень понятно, как их потом передавать MetaTrader'у, из help'а я на эту тему тоже мало что понял.
h=FileOpen(symbol+"_"+tss+"_"+ex4+".ini",FILE_CSV|FILE_WRITE,';');
Это и есть открытие и создание файла
В общем я пришёл к выводу, что проще самому написать что-то на WScript. Только это мне не помогает, я так и не понял, как ж заставить MetaTrader пройтись по нескольким инструментам. Если я в ini-файле пишу несколько раз все эти строки, то MetaTrader выполняет тест только по первому инструменту и игнорирует следующие. Если я пишу в командной строке "C:\Program Files\MetaTrader - Alpari\terminal.exe" "C:\Program Files\MetaTrader - Alpari\tester\thetest*.ini", то MetaTrader вообще никакого тестирования не выполняет. Из документации мне ничего не понятно, как ж заставить его сгонять тест по нескольким инструментам, а методом тыка у меня так вот варианты исчерпались. В приведённом примере я вообще не вижу строчек, где б эти файлы передавались MetaTrader'у. Так что получается, что файлы сгенерировать можно, а вот что с ними делать, чтоб выполнилось тестирование...
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
наверняка, задача типичная....
если подобный велосипед уже изобретен, то был бы рад любой помощи. ..
нужно протестировать эксперт на всех инструментах (штук 30) на нескольких таймфреймах...
это чего, надо создать 120 ini-файлов и бат-файл со 120 строчками?
может, кто-то писал уже cофт-генератор для этих .ini?