0
36
Небольшой скрипт, открывает недостающие пары и применяет туда шаблон.
Полезная штука потому бывает закроешь случайно вкладку-другую, а потом мучительно перебираешь которую из 28 случайно бахнул :-)
Да и сам по себе терминал иногда при перезапусках "забывает" что было открыто.
А так - в случае необходимости запустил скрипт и он всё нужное сделал
//+------------------------------------------------------------------+ //| OpenMajors.mq5 | //| Maxim A.Kuznetsov | //| https://www.luxtrade.tk | //+------------------------------------------------------------------+ #property copyright "Maxim A.Kuznetsov" #property link "https://www.luxtrade.tk" #property version "1.00" // Открывает все недостающие чарты с мажорами // если задан шаблон, то применяет его #property script_show_inputs sinput string TEMPLATE=""; string majors[]={ "USD", "GBP", "CHF", "AUD", "NZD", "JPY", "CAD" }; string charts[]; void OnStart() { for(long chart=ChartFirst();chart>=0;chart=ChartNext(chart)) { string name=ChartSymbol(chart); if (!ArrayContain(charts,name)) ArrayPush(charts,name); } for(int pos=SymbolsTotal(false);pos>=0;pos--) { string name=SymbolName(pos,false); if (name=="") continue; if (ArrayContain(charts,name)) continue; string base=SymbolInfoString(name,SYMBOL_CURRENCY_BASE); string quote=SymbolInfoString(name,SYMBOL_CURRENCY_PROFIT); if (base!=quote && ArrayContain(majors,base) && ArrayContain(majors,quote)) { long chart=ChartOpen(name,PERIOD_M15); if (chart!=0) { ArrayPush(charts,name); if (TEMPLATE!="") { ChartApplyTemplate(chart,TEMPLATE); } } } } } bool ArrayContain(string &arr[],string element) { for(int pos=ArraySize(arr)-1;pos>=0;pos--) { if (arr[pos]==element) return true; } return false; } int ArrayPush(string &arr[],string element) { int id=ArraySize(arr); if (ArrayResize(arr,id+1)!=id+1) return -1; arr[id]=element; return id; }
Файлы:
OpenMajors.ex5
12 kb
OpenMajors.mq5
4 kb