//+------------------------------------------------------------------+ //| AllChart_PairChange1.2.mq4 | //| Rondo | //| http://fx-dollaryen.seesaa.net/ | //+------------------------------------------------------------------+ #property copyright "Rondo" #property link "http://fx-dollaryen.seesaa.net/" #property version "1.2" #property strict #property indicator_chart_window input string Pair1 = "USDJPY"; input string Pair2 = "EURJPY"; input string Pair3 = "GBPJPY"; input string Pair4 = "EURUSD"; input string Pair5 = "GBPUSD"; input string Pair6 = "AUDUSD"; input string Pair7 = "AUDJPY"; input string Pair8 = "USDCAD"; input color labelColor = clrWhite; //表示するラベルの色 string indiName = "PairChange"; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping int width = (int)ChartGetInteger(0, CHART_WIDTH_IN_PIXELS, 0); //RecCreate(indiName+"_Rectangle", width-815, 5, width-5, 30, clrDimGray); LabelCreate(indiName+Pair1, "|"+Pair1+"|", width-805, 7, 10, labelColor); LabelCreate(indiName+Pair2, "|"+Pair2+"|", width-705, 7, 10, labelColor); LabelCreate(indiName+Pair3, "|"+Pair3+"|", width-605, 7, 10, labelColor); LabelCreate(indiName+Pair4, "|"+Pair4+"|", width-505, 7, 10, labelColor); LabelCreate(indiName+Pair5, "|"+Pair5+"|", width-405, 7, 10, labelColor); LabelCreate(indiName+Pair6, "|"+Pair6+"|", width-305, 7, 10, labelColor); LabelCreate(indiName+Pair7, "|"+Pair7+"|", width-205, 7, 10, labelColor); LabelCreate(indiName+Pair8, "|"+Pair8+"|", width-105, 7, 10, labelColor); //---_ return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason){ objDelete(indiName); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //--- int width = (int)ChartGetInteger(0, CHART_WIDTH_IN_PIXELS, 0); //RecCreate(indiName+"_Rectangle", width-815, 5, width-5, 30, clrDimGray); LabelCreate(indiName+Pair1, "|"+Pair1+"|", width-805, 7, 10, labelColor); LabelCreate(indiName+Pair2, "|"+Pair2+"|", width-705, 7, 10, labelColor); LabelCreate(indiName+Pair3, "|"+Pair3+"|", width-605, 7, 10, labelColor); LabelCreate(indiName+Pair4, "|"+Pair4+"|", width-505, 7, 10, labelColor); LabelCreate(indiName+Pair5, "|"+Pair5+"|", width-405, 7, 10, labelColor); LabelCreate(indiName+Pair6, "|"+Pair6+"|", width-305, 7, 10, labelColor); LabelCreate(indiName+Pair7, "|"+Pair7+"|", width-205, 7, 10, labelColor); LabelCreate(indiName+Pair8, "|"+Pair8+"|", width-105, 7, 10, labelColor); //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+ //| ChartEvent function | //+------------------------------------------------------------------+ void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam){ if(id == CHARTEVENT_CHART_CHANGE){ int width = (int)ChartGetInteger(0, CHART_WIDTH_IN_PIXELS, 0); //RecCreate(indiName+"_Rectangle", width-815, 5, width-5, 30, clrDimGray); LabelCreate(indiName+Pair1, "|"+Pair1+"|", width-805, 7, 10, labelColor); LabelCreate(indiName+Pair2, "|"+Pair2+"|", width-705, 7, 10, labelColor); LabelCreate(indiName+Pair3, "|"+Pair3+"|", width-605, 7, 10, labelColor); LabelCreate(indiName+Pair4, "|"+Pair4+"|", width-505, 7, 10, labelColor); LabelCreate(indiName+Pair5, "|"+Pair5+"|", width-405, 7, 10, labelColor); LabelCreate(indiName+Pair6, "|"+Pair6+"|", width-305, 7, 10, labelColor); LabelCreate(indiName+Pair7, "|"+Pair7+"|", width-205, 7, 10, labelColor); LabelCreate(indiName+Pair8, "|"+Pair8+"|", width-105, 7, 10, labelColor); } if(id == CHARTEVENT_OBJECT_CLICK){ if(sparam == indiName+Pair1) ChartChange(Pair1); if(sparam == indiName+Pair2) ChartChange(Pair2); if(sparam == indiName+Pair3) ChartChange(Pair3); if(sparam == indiName+Pair4) ChartChange(Pair4); if(sparam == indiName+Pair5) ChartChange(Pair5); if(sparam == indiName+Pair6) ChartChange(Pair6); if(sparam == indiName+Pair7) ChartChange(Pair7); if(sparam == indiName+Pair8) ChartChange(Pair8); } } void ChartChange(string Pair){ long currChart, prevChart=ChartFirst(); int i=0, limit=100; while(i=0;i--){ string ObjName = ObjectName(i); if(StringFind(ObjName, basicName) >=0) ObjectDelete(ObjName); } }