Подскажите!
4 копии советника на 4 графиках. Торговать должен только тот, что на активном окне (сейчас открываются 4 сделки, каждая в своей копии).
Советник имеет интефейс с кнопками которые тоже надо синхронизировать.......
void OnInit(void) { string nm="myButt_1"+Symbol(); ObjectCreate(0,nm,OBJ_BUTTON,0,0,0); ObjectSetInteger(0,nm,OBJPROP_XSIZE,50); ObjectSetInteger(0,nm,OBJPROP_YSIZE,20); ObjectSetInteger(0,nm,OBJPROP_YDISTANCE,20); //-- nm="myButt_2"+Symbol(); ObjectCreate(0,nm,OBJ_BUTTON,0,0,0); ObjectSetInteger(0,nm,OBJPROP_XSIZE,50); ObjectSetInteger(0,nm,OBJPROP_YSIZE,20); ObjectSetInteger(0,nm,OBJPROP_YDISTANCE,50); } //+------------------------------------------------------------------+ void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { //--- проверим событие на нажатие кнопки мышки if(id==CHARTEVENT_OBJECT_CLICK && ObjectGetInteger(0,sparam,OBJPROP_TYPE)==OBJ_BUTTON) { long currChart=ChartFirst(); int i=0; while(i<CHARTS_MAX) { // у нас наверняка не больше CHARTS_MAX открытых графиков if(ObjectGetInteger(0,sparam,OBJPROP_STATE)) { ObjectSetInteger(currChart,sparam,OBJPROP_STATE,true); ObjectSetString(currChart,sparam,OBJPROP_TEXT,"ON"); ChartRedraw(currChart); } else { ObjectSetInteger(currChart,sparam,OBJPROP_STATE,false); ObjectSetString(currChart,sparam,OBJPROP_TEXT,"OFF"); ChartRedraw(currChart); } currChart=ChartNext(currChart); // на основании предыдущего получим новый график if(currChart==-1) break; // достигли конца списка графиков i++; // не забудем увеличить счетчик } } }
Подскажите!
4 копии советника на 4 графиках. Торговать должен только тот, что на активном окне (сейчас открываются 4 сделки, каждая в своей копии).
Советник имеет интефейс с кнопками которые тоже надо синхронизировать.......
void OnTick(void) { // if(ChartGetInteger(0, CHART_BRING_TO_TOP)) return; // Окно не активно - выход if(ChartGetInteger(0, CHART_BRING_TO_TOP)) { // Выполняется код, если окно активно Print("Active: ",Period()); } }
Да Глобальные переменные для синхронизации.

- www.mql5.com
Зачем, если это делается простейшим путём без них, тем более что дал рабочий код
Зачем, если это делается простейшим путём без них, тем более что дал рабочий код
Кнопками управляют самописные функции, чтоб не писать много буков под каждую кнопку. То есть одна функция на 6 кнопок и еще одна на 4 кнопки и тд. Изначально пошди по пути глобальных переменных.
Подскажите, как решить проблему синхронизации кнопок с такими вводными?
Кнопками управляют самописные функции, чтоб не писать много буков под каждую кнопку. То есть одна функция на 6 кнопок и еще одна на 4 кнопки и тд. Изначально пошди по пути глобальных переменных.
Подскажите, как решить проблему синхронизации кнопок с такими вводными?
//+------------------------------------------------------------------+ void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { //--- проверим событие на нажатие кнопки мышки if(id==CHARTEVENT_OBJECT_CLICK && ObjectGetInteger(0,sparam,OBJPROP_TYPE)==OBJ_BUTTON) { long currChart=ChartFirst(); int i=0; while(i<CHARTS_MAX) { // у нас наверняка не больше CHARTS_MAX открытых графиков if(ObjectGetInteger(0,sparam,OBJPROP_STATE)) { ObjectSetInteger(currChart,sparam,OBJPROP_STATE,true); ChartRedraw(currChart); } else { ObjectSetInteger(currChart,sparam,OBJPROP_STATE,false); ChartRedraw(currChart); } currChart=ChartNext(currChart); // на основании предыдущего получим новый график if(currChart==-1) break; // достигли конца списка графиков i++; // не забудем увеличить счетчик } } }
void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { if(id == CHARTEVENT_OBJECT_CLICK && ObjectGetInteger(0, sparam, OBJPROP_TYPE) == OBJ_BUTTON) { long currChart = ChartFirst(); int i = 0; while(i < CHARTS_MAX) // у нас наверняка не больше CHARTS_MAX открытых графиков { //+------------------------------------------------------------------+ //| КНОПКА BIGSIG | //+------------------------------------------------------------------+ if(sparam == "BIGSIG") { if(ObjectGetInteger(0, "BIGSIG", OBJPROP_STATE)) { BIGSIG = true; GlobalVariableSet("BIGSIG", BIGSIG); ObjectSetInteger(currChart, "BIGSIG", OBJPROP_STATE, BIGSIG); //SetSTTX("BIGSIG", NULL, BIGSIG, NULL); ObjectSetInteger(currChart, "BIGSIG", OBJPROP_BGCOLOR, C'0,151,167'); ObjectSetInteger(currChart, "BIGSIG", OBJPROP_BORDER_COLOR, clrBlue); ObjectSetInteger(currChart, "BIGSIG", OBJPROP_COLOR, clrLime); } else { BIGSIG = false; GlobalVariableSet("BIGSIG", BIGSIG); ObjectSetInteger(currChart, "BIGSIG", OBJPROP_STATE, BIGSIG); //SetSTTX("BIGSIG", NULL, BIGSIG, NULL); ObjectSetInteger(currChart, "BIGSIG", OBJPROP_BGCOLOR, clrDarkGray); ObjectSetInteger(currChart, "BIGSIG", OBJPROP_BORDER_COLOR, clrBlack); ObjectSetInteger(currChart, "BIGSIG", OBJPROP_COLOR, clrWhite); } //GlobalVariableSet("BIGSIG", BIGSIG); SetSTTX("BIGSIG", NULL, BIGSIG, NULL); ChartRedraw(currChart); Alert("BIGSIG = ", BIGSIG); Alert( GlobalVariableGet("BIGSIG")); } //if(ObjectGetInteger(0, sparam, OBJPROP_STATE)) //{ // ObjectSetInteger(currChart, sparam, OBJPROP_STATE, true); // ObjectSetString(currChart, sparam, OBJPROP_TEXT, "ON"); // ChartRedraw(currChart); //} //else //{ // ObjectSetInteger(currChart, sparam, OBJPROP_STATE, false); // ObjectSetString(currChart, sparam, OBJPROP_TEXT, "OFF"); // ChartRedraw(currChart); //} currChart = ChartNext(currChart); // на основании предыдущего получим новый график if(currChart == -1) break; // достигли конца списка графиков i++; // не забудем увеличить счетчик } }

- www.mql5.com
Как передать в функцию SetSTTX("BIGSIG", NULL, BIGSIG, NULL) значение глобальной переменной на всех графиках, а не только на текущем?

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Подскажите!
4 копии советника на 4 графиках. Торговать должен только тот, что на активном окне (сейчас открываются 4 сделки, каждая в своей копии).
Советник имеет интефейс с кнопками которые тоже надо синхронизировать.......