Если Вам нужен такой советник, потрудитесь изучить его работу и составить Тех Задание, для написания советника. Может тогда программисты и возьмутся выполнить.
Дружище, есть уже «Придуманные» советники, но они стоят денег, если продаются.
Ты же хочешь не вложив ни труда, ни опыта, ни денег, получить что-то, что с 10 баксов сделает тебе 100к, да еще и за неделю)). Не нужно думать что ты самый умный, ты хитрожопый. Удачи, БРО.)
<code> //+------------------------------------------------------------------+ //| MAPeriod.mq4 | //| Copyright 2023, AM2 | //| https://www.forexsystems.biz | //+------------------------------------------------------------------+ #property copyright "Copyright 2023, AM2" #property link "https://www.forexsystems.biz" #property version "1.00" #property strict #property indicator_chart_window #property indicator_buffers 1 input int period_ma = 2; input int width = 2; input color clr = clrRed; input ENUM_APPLIED_PRICE pr = 0; double m[]; int map=period_ma; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping SetIndexStyle(0,DRAW_LINE,0,width,clr); SetIndexBuffer(0,m); PutButton("More",30,90,"+"); PutLabel("Num",27,60,IntegerToString(map)); PutButton("Less",30,30,"-"); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| 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[]) { //--- for(int i=0; i<rates_total; i++) { m[i]=iMA(NULL,0,map,0,0,pr,i); } //--- 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_OBJECT_CLICK && sparam=="More") { map++; ObjectSetString(0,"Num",OBJPROP_TEXT,IntegerToString(map)); ObjectSetInteger(0,"More",OBJPROP_STATE,false); } if(id==CHARTEVENT_OBJECT_CLICK && sparam=="Less") { map--; ObjectSetString(0,"Num",OBJPROP_TEXT,IntegerToString(map)); ObjectSetInteger(0,"Less",OBJPROP_STATE,false); } } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void PutButton(string name,int x,int y,string text) { ObjectDelete(0,name); ObjectCreate(0,name,OBJ_BUTTON,0,0,0); //--- установим координаты кнопки ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x); ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y); //--- установим размер кнопки ObjectSetInteger(0,name,OBJPROP_XSIZE,20); ObjectSetInteger(0,name,OBJPROP_YSIZE,20); //--- установим угол графика, относительно которого будут определяться координаты точки ObjectSetInteger(0,name,OBJPROP_CORNER,3); //--- установим текст ObjectSetString(0,name,OBJPROP_TEXT,text); //--- установим шрифт текста ObjectSetString(0,name,OBJPROP_FONT,"Arial"); //--- установим размер шрифта ObjectSetInteger(0,name,OBJPROP_FONTSIZE,12); //--- установим цвет текста ObjectSetInteger(0,name,OBJPROP_COLOR,Black); //--- установим цвет фона ObjectSetInteger(0,name,OBJPROP_BGCOLOR,White); //--- установим цвет границы ObjectSetInteger(0,name,OBJPROP_BORDER_COLOR,Blue); //--- переведем кнопку в заданное состояние ObjectSetInteger(0,name,OBJPROP_STATE,false); //--- скроем (true) или отобразим (false) имя графического объекта в списке объектов ObjectSetInteger(0,name,OBJPROP_HIDDEN,false); //--- установим приоритет на получение события нажатия мыши на графике ObjectSetInteger(0,name,OBJPROP_ZORDER,0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void PutLabel(string nm,int x,int y,string text) { ObjectDelete(0,nm); //--- создадим текстовую метку ObjectCreate(0,nm,OBJ_LABEL,0,0,0); //--- установим координаты метки ObjectSetInteger(0,nm,OBJPROP_XDISTANCE,x); ObjectSetInteger(0,nm,OBJPROP_YDISTANCE,y); //--- установим угол графика, относительно которого будут определяться координаты точки ObjectSetInteger(0,nm,OBJPROP_CORNER,3); //--- установим текст ObjectSetString(0,nm,OBJPROP_TEXT,text); //--- установим шрифт текста ObjectSetString(0,nm,OBJPROP_FONT,"Arial"); //--- установим размер шрифта ObjectSetInteger(0,nm,OBJPROP_FONTSIZE,12); //--- установим цвет ObjectSetInteger(0,nm,OBJPROP_COLOR,clrYellow); //--- включим (true) или отключим (false) режим перемещения метки мышью ObjectSetInteger(0,nm,OBJPROP_SELECTABLE,false); ObjectSetInteger(0,nm,OBJPROP_SELECTED,false); } </code>verta81