Das ist gleich ein Beispiel für die Verwendun von MyAlert.mqh
Die Einstellungen eines Charts auf alle anderen offenen Charts anwenden.
Verwendet die Funktionen ChartSaveTemplate() und ChartApplyTemplate().
Ist nicht wirklich auf meinem Mist gewachsen, aber ist wesentlich verbessert worden.
Und mit ErrorCheck!
Code:
//+------------------------------------------------------------------+
//| ApplyTemplate.mq5 |
//| Copyright © 2017 Ing. Otto Pauser |
//| https://www.opa-trader.at |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2017 Ing. Otto Pauser"
#property link "https://www.opa-trader.at"
#property version "1.00"
#include <MyAlert.mqh>
string TmplName = "LastApplied"; // unter diesem Namen wird die aktuelle Einstellung gespeichert
// wird immer kommentarlos überschrieben
void OnStart()
{
ENUM_TIMEFRAMES initPeriod = _Period; // Werte des aktuellen Charts merken
long initScale = ChartGetInteger(ChartID(),CHART_SCALE);
long initChartID = ChartID();
long currChartID = ChartFirst(); // Schleifenvariable über alle Charts
if(!ChartSaveTemplate(initChartID,TmplName)) // hier wird die aktuelle Einstellung in Datei geschrieben
MyAlert(StdErrMsg);
while(currChartID>=0) // hier laden wir das Template
{
if(currChartID!=initChartID)
{
if(!ChartApplyTemplate(currChartID, TmplName))
MyAlert();
}
currChartID=ChartNext(currChartID);
}
currChartID = ChartFirst(); // reset auf ersten Chart
while(currChartID>=0) // hier werden Periode und Scale eingestellt
{
if(currChartID!=initChartID)
{
if(ChartPeriod(currChartID)!=initPeriod)
ChartSetSymbolPeriod(currChartID,ChartSymbol(currChartID),initPeriod);
if(ChartGetInteger(currChartID,CHART_SCALE)!=initScale)
ChartSetInteger(currChartID,CHART_SCALE, initScale);
}
currChartID=ChartNext(currChartID);
}
PlaySound("ok"); // machma a bisserl Lärm
}
Das Tool kommt ins Script-Verzeichnis und kann sehr viel Zeit sparen!