Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 21.10.17
Kronenchakra Kronenchakra ist offline
Gesperrter Benutzer
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 313
Kronenchakra befindet sich auf einem aufstrebenden Ast
Standard Template auf alle Charts anwenden - Update

Mittlerweile habe ich eine bessere Version von ApplyTemplate programmiert.
Das Script kann man natürlich mit einem HotKey verbinden, (zB Ctrl+T), dann ist das besonders bequem.
Code:
//+------------------------------------------------------------------+
//|                                                ApplyTemplate.mq5 |
//|                                Copyright © 2017 Ing. Otto Pauser |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2017 Ing. Otto Pauser"
#property link      ""
#property version   "1.00"
#property description "Aktuelles Template wird unter dem Namen 'LastApplied.tpl' gespeichert"
#property description "und auf alle offenen Charts angewendet"

string ProgName = MQLInfoString(MQL_PROGRAM_NAME);    // Name des Scripts (für MessageBox)
string TmplName = "LastApplied";                      // unter diesem Namen wird die aktuelle Einstellung gespeichert, wird immer kommentarlos überschrieben

void OnStart()
{
   ENUM_TIMEFRAMES initPeriod  = _Period;                                  // Timeframe des aktuellen Charts merken
   long            initScale   = ChartGetInteger(ChartID(),CHART_SCALE);   // scale des aktuellen Charts merken
   long            initChartID = ChartID();                                // aktueller Chart
   long            currChartID = ChartFirst();                             // Schleifenvariable über alle Charts

   if(!ChartSaveTemplate(initChartID,TmplName))                            // hier wird die aktuelle Einstellung in Datei geschrieben
      {
         PlaySound("alert");
         MessageBox("*ERROR* ChartSaveTemplate: "+TmplName,ProgName,MB_ICONERROR);
         return;                                                           // exit here
      }
      
   while(currChartID>=0)                                                   // Schleife über alle Charts
      {
         if(currChartID!=initChartID)                                      // nicht für Chart in dem das Script gestartet wurde
            {  
               //if(ChartSymbol(currChartID)!="SILVER")                      // nicht für Chart "SILVER". Diese Zeile kann enfernt werden, ist nur für meine Anwendung
                                                                             // ist auch Beispiel für Filter für Charts die nicht verändert werden sollen
                  if(!ChartApplyTemplate(currChartID, TmplName))           // Template anwenden
                     {
                        MessageBox("*ERROR* ChartApplyTemplate: "+TmplName,ProgName,MB_ICONERROR);
                        return;                       // exit here
                     }
               }
         currChartID=ChartNext(currChartID);
     }

   currChartID = ChartFirst();                                             // reset auf ersten Chart
   while(currChartID>=0)                                                   // nochmal Schleife über alle Charts
      {
         if(currChartID!=initChartID)                                      // nicht für Chart in dem das Script gestartet wurde
            {
               if(ChartPeriod(currChartID)!=initPeriod)                    // Timeframe einstellen
                  ChartSetSymbolPeriod(currChartID,ChartSymbol(currChartID),initPeriod);  

               if(ChartGetInteger(currChartID,CHART_SCALE)!=initScale)     // Scale einstellen
                  ChartSetInteger(currChartID,CHART_SCALE,  initScale);
            }
         currChartID=ChartNext(currChartID);
     }

   PlaySound("ok");                                                        // akustisch bemerkbar machen
}
Für den MT4 bitte umbenennen auf ApplyTemplate.mq4 und im MT4 kompilieren.

Grüße Otto
Angehängte Dateien
Dateityp: mq5 ApplyTemplate.mq5 (6,9 KB, 0x aufgerufen)