Группа "Стол заказов MQL"

Рейтинг 2146



РЕКОМЕНДУЮ



дополнить индикатор

есть такой индикатор ZigZagWithPipsValueindicator.ex4 (20 Kb) жаль только в EX4 файле. можно ли добавить к нему алерт пара, т\ф, сел\бай когда цифры меняют цвет ( с зелёного на красный звучит алерт на ТЕКУЩЕЙ СВЕЧКИ. спасибо
  • 0
  • Просмотров: 1917
  • 10 июля 2019, 20:27
  • komod
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
Следующая запись в группе  
Доработка индикатора "Величина отката". (2)
10 июля 2019
12 июля 2019

Брокер для ваших роботов, 15 лет на рынке

Комментарии (35)

+
0
skupe:max.celica
имеется открытый код
avatar

  8  Maxix Сообщений: 59

  • 10 июля 2019, 20:33
+
0
скинь сюда или в личку пожалуйста если не жалко
avatar

  10  komod Автор Сообщений: 91

  • 10 июля 2019, 20:47
+
0
Лучше сюда.
avatar

  11  Kuzimich Сообщений: 246 - Андрей

  • 10 июля 2019, 20:49
+
0
Перестань хернёй маятся.Скидывай сюда, если есть.А то везде свой скайп суёшь.Поделись с народом.Мало ли кому пригодится.Тут всё, для всех бесплатно.Если тебя это не устраивает-тогда вали отселева.Без тебя проживём.*evil* 
avatar

  11  Kuzimich Сообщений: 246 - Андрей

  • 10 июля 2019, 20:59
+
0
нужен файл *.mq4
avatar

  35  AM2 Сообщений: 16265 - Андрей

  • 10 июля 2019, 20:51
+
0
ищю. пока не получается
avatar

  10  komod Автор Сообщений: 91

  • 10 июля 2019, 20:59
+
0
нашла, а как теперь сюда закинуть?
он есть в свободном доступе. кто сможет закиньте сюда.
Редактирован: 10 июля 2019, 21:16
avatar

  10  komod Автор Сообщений: 91

  • 10 июля 2019, 21:13
+
0
komod
сегодня читал про императора комода. кадр был похлеще калигулы! *stesnitelno*  :D 
avatar

  35  AM2 Сообщений: 16265 - Андрей

  • 10 июля 2019, 21:19
+
0
я она :D 
avatar

  10  komod Автор Сообщений: 91

  • 10 июля 2019, 21:32
+
0
Андрей здравствуйте, попутно к теме, можно ли*think*  сделать в этом индикаторе обычную буферную стрелку на заданные параметры пипсов и баров при их достижении появляется стрелка ?!
avatar

  8  Maxix Сообщений: 59

  • 10 июля 2019, 21:32
+
0
вот скинули, не пожалели спасибо. подходит?
avatar

  10  komod Автор Сообщений: 91

  • 10 июля 2019, 21:35
+
0
на 16-е
avatar

  35  AM2 Сообщений: 16265 - Андрей

  • 10 июля 2019, 22:06
+
0
#property copyright «Copyright © 2012, Gehtsoft USA LLC»
#property link «fxcodebase.com»

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
//---- indicator parameters
extern int ExtDepth=12;
extern int ExtDeviation=5;
extern int ExtBackstep=3;
extern int FontSize=8;
extern color TextColor=Brown;
//---- indicator buffers
double ExtMapBuffer[];
double ExtMapBuffer2[];
int giSumCounter,giSumTotal;

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(2);
//---- drawing settings
SetIndexStyle(0,DRAW_SECTION);
//---- indicator buffers mapping
SetIndexBuffer(0,ExtMapBuffer);
SetIndexBuffer(1,ExtMapBuffer2);
SetIndexEmptyValue(0,0.0);
//---- indicator short name
IndicatorShortName(«ZigZag_Counter (»+ExtDepth+","+ExtDeviation+","+ExtBackstep+")");
//---- initialization done
return(0);
}
int deinit()
{
ObjectsDeleteAll(0, OBJ_TEXT);
return(0);
}
void DeleteLabels(double startBar, double endBar)
{
int i;
int obj_total=ObjectsTotal();
string obj_name;
datetime obj_time;
for (i=obj_total-1;i>=0;i--)
{
obj_name=ObjectName(i);
if (ObjectType(obj_name)!=OBJ_TEXT) continue;
obj_time=ObjectGet(obj_name, OBJPROP_TIME1);
if ( (obj_time>=startBar) && (obj_time<=endBar) && (StringSubstr(obj_name,0,5)==«Count») )
{
ObjectDelete(obj_name);
}
}
return;
}

string TextFormat(int bars, double pips)
{

giSumCounter = giSumCounter+1;
giSumTotal = giSumTotal+(bars+1);
//Print(«Average bars ~ BarsLast = »,(bars)+1," giSumCounter= ",giSumCounter," giSumTotal= ",giSumTotal, " Ave Bars = ",giSumTotal / giSumCounter);
Comment(
"\n Ave Bars = ",giSumTotal / giSumCounter
//"\n Lots = ",Lots,
//"\n dFracDim = ",dFracDim
);
return (""+(DoubleToStr(MathAbs(bars)+1,0))+" bars, "+DoubleToStr(MathFloor(MathAbs(pips)/Point+0.5),0)+" pips");

}

void DrawLabel(int bar1, int bar2, double price1, double price2)
{
int Nbar1=iBarShift(NULL, 0, bar1);
int Nbar2=iBarShift(NULL, 0, bar2);
string Str=TextFormat(Nbar1-Nbar2, price1-price2);
string obj_name=«Count „+bar2;
ObjectCreate(obj_name, OBJ_TEXT, 0, bar2, price2);
ObjectSetText(obj_name, Str, FontSize, “Arial», TextColor);
ObjectSet(obj_name, OBJPROP_PRICE1, price2);
return;
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{

giSumCounter=0;giSumTotal=0;
int shift, back,lasthighpos,lastlowpos;
double val,res;
double curlow,curhigh,lasthigh,lastlow;

for(shift=Bars-ExtDepth; shift>=0; shift--)
{
val=Low[Lowest(NULL,0,MODE_LOW,ExtDepth,shift)];
if(val==lastlow) val=0.0;
else
{
lastlow=val;
if((Low[shift]-val)>(ExtDeviation*Point)) val=0.0;
else
{
for(back=1; back<=ExtBackstep; back++)
{
res=ExtMapBuffer[shift+back];
if((res!=0)&&(res>val)) ExtMapBuffer[shift+back]=0.0;
}
}
}
ExtMapBuffer[shift]=val;
//--- high
val=High[Highest(NULL,0,MODE_HIGH,ExtDepth,shift)];
if(val==lasthigh) val=0.0;
else
{
lasthigh=val;
if((val-High[shift])>(ExtDeviation*Point)) val=0.0;
else
{
for(back=1; back<=ExtBackstep; back++)
{
res=ExtMapBuffer2[shift+back];
if((res!=0)&&(res<val)) ExtMapBuffer2[shift+back]=0.0;
}
}
}
ExtMapBuffer2[shift]=val;
}

// final cutting
lasthigh=-1; lasthighpos=-1;
lastlow=-1; lastlowpos=-1;

for(shift=Bars-ExtDepth; shift>=0; shift--)
{
curlow=ExtMapBuffer[shift];
curhigh=ExtMapBuffer2[shift];
if((curlow==0)&&(curhigh==0)) continue;
//---
if(curhigh!=0)
{
if(lasthigh>0)
{
if(lasthigh<curhigh) ExtMapBuffer2[lasthighpos]=0;
else ExtMapBuffer2[shift]=0;
}
//---
if(lasthigh<curhigh || lasthigh<0)
{
lasthigh=curhigh;
lasthighpos=shift;
}
lastlow=-1;
}
//----
if(curlow!=0)
{
if(lastlow>0)
{
if(lastlow>curlow) ExtMapBuffer[lastlowpos]=0;
else ExtMapBuffer[shift]=0;
}
//---
if((curlow<lastlow)||(lastlow<0))
{
lastlow=curlow;
lastlowpos=shift;
}
lasthigh=-1;
}
}
DeleteLabels(Time[Bars-1], Time[0]);
double LastPrice=EMPTY_VALUE;
int LastBar=EMPTY_VALUE;
for(shift=Bars-1; shift>=0; shift--)
{
if(shift>=Bars-ExtDepth) ExtMapBuffer[shift]=0.0;
else
{
res=ExtMapBuffer2[shift];
if(res!=0.0)
{
ExtMapBuffer[shift]=res;
}
else
{
res=ExtMapBuffer[shift];
}

if (res!=0)
{
if (LastPrice!=EMPTY_VALUE)
{
DrawLabel(Time[LastBar], Time[shift], LastPrice, res);
}
LastPrice=res;
LastBar=shift;
}
}
}
return(0);
}
avatar

  8  Maxix Сообщений: 59

  • 10 июля 2019, 21:22
+
0
*drinks* ,*hi* 
avatar

  11  Kuzimich Сообщений: 246 - Андрей

  • 10 июля 2019, 21:44
+
0
можно ли добавить к нему алерт пара, т\ф, сел\бай когда цифры меняют цвет ( с зелёного на красный


а когда цифры меняют цвет? даже в коде прописано что цвет текста всегда постоянный:


void DrawLabel(int bar1,int bar2,double price1,double price2)
  {
   int Nbar1=iBarShift(NULL, 0, bar1);
   int Nbar2=iBarShift(NULL, 0, bar2);
   string Str=TextFormat(Nbar1-Nbar2,price1-price2);
   string obj_name="Count "+bar2;
   ObjectCreate(obj_name,OBJ_TEXT,0,bar2,price2);
   ObjectSetText(obj_name,Str,FontSize,"Arial",TextColor);
   ObjectSet(obj_name,OBJPROP_PRICE1,price2);
   return;
  }
avatar

  35  AM2 Сообщений: 16265 - Андрей

  • 14 июля 2019, 09:08
+
0
просто файл в mg немного другой тот что скинули. а мой файл меняет цвет. что можно сделать в таком случае? может скомплимировать мой файл ex4? ребятки помогите кто знающий?
avatar

  10  komod Автор Сообщений: 91

  • 15 июля 2019, 09:56
+
0
Я могу скомпилировать твой EXE. файл в mql4, вот держи цвет меняет, проверяй. Единственно при компиляции куда то потерялся расчёт баров, но ты не переживай Андрей без труда их найдёт.
avatar

  8  Maxix Сообщений: 59

  • 16 июля 2019, 16:25
+
0
#property copyright «Copyright © 2010, sangmane@forexfactory.com.»
#property link «mailto:steven00@fastmail.fm»

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
//---- indicator parameters
extern int ExtDepth=200;
extern int ExtDeviation=8;
extern int ExtBackstep=12;
//---- indicator buffers
double ZigzagBuffer[];
double HighMapBuffer[];
double LowMapBuffer[];
int level=3; // recounting's depth
bool downloadhistory=false;
double Pip;
bool Started=False;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(3);
//---- drawing settings
SetIndexStyle(0,DRAW_SECTION);
//---- indicator buffers mapping
SetIndexBuffer(0,ZigzagBuffer);
SetIndexBuffer(1,HighMapBuffer);
SetIndexBuffer(2,LowMapBuffer);
SetIndexEmptyValue(0,0.0);

//---- indicator short name
IndicatorShortName(«ZigZag(»+ExtDepth+","+ExtDeviation+","+ExtBackstep+")");
if(Digits==3 || Digits==5) Pip = 10*Point;
else Pip = Point;
//---- initialization done
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int deinit()
{
DelObj();
return(0);
}

void DelObj()
{
string ObjName;
for(int i=ObjectsTotal()-1; i>=0; i--)
{
ObjName = ObjectName(i);
if(StringFind(ObjName,«ZZLabel»,0)>=0)
ObjectDelete(ObjName);
}
return;
}

int start()
{
int i, counted_bars = IndicatorCounted();
int limit,counterZ,whatlookfor;
int shift,back,lasthighpos,lastlowpos;
double val,res;
double curlow,curhigh,lasthigh,lastlow;

if (counted_bars==0 && downloadhistory) // history was downloaded
{
ArrayInitialize(ZigzagBuffer,0.0);
ArrayInitialize(HighMapBuffer,0.0);
ArrayInitialize(LowMapBuffer,0.0);
}
if (counted_bars==0)
{
limit=Bars-ExtDepth;
downloadhistory=true;
}
if (counted_bars>0)
{
while (counterZ<level && i<100)
{
res=ZigzagBuffer[i];
if (res!=0) counterZ++;
i++;
}
i--;
limit=i;
if (LowMapBuffer[i]!=0)
{
curlow=LowMapBuffer[i];
whatlookfor=1;
}
else
{
curhigh=HighMapBuffer[i];
whatlookfor=-1;
}
for (i=limit-1;i>=0;i--)
{
ZigzagBuffer[i]=0.0;
LowMapBuffer[i]=0.0;
HighMapBuffer[i]=0.0;
}
}
for(shift=limit; shift>=0; shift--)
{
val=Low[iLowest(NULL,0,MODE_LOW,ExtDepth,shift)];
if(val==lastlow) val=0.0;
else
{
lastlow=val;
if((Low[shift]-val)>(ExtDeviation*Point)) val=0.0;
else
{
for(back=1; back<=ExtBackstep; back++)
{
res=LowMapBuffer[shift+back];
if((res!=0)&&(res>val)) LowMapBuffer[shift+back]=0.0;
}
}
}
if (Low[shift]==val) LowMapBuffer[shift]=val; else LowMapBuffer[shift]=0.0;
//--- high
val=High[iHighest(NULL,0,MODE_HIGH,ExtDepth,shift)];
if(val==lasthigh) val=0.0;
else
{
lasthigh=val;
if((val-High[shift])>(ExtDeviation*Point)) val=0.0;
else
{
for(back=1; back<=ExtBackstep; back++)
{
res=HighMapBuffer[shift+back];
if((res!=0)&&(res<val)) HighMapBuffer[shift+back]=0.0;
}
}
}
if (High[shift]==val) HighMapBuffer[shift]=val; else HighMapBuffer[shift]=0.0;
}

// final cutting
if (whatlookfor==0)
{
lastlow=0;
lasthigh=0;
}
else
{
lastlow=curlow;
lasthigh=curhigh;
}
for (shift=limit;shift>=0;shift--)
{
res=0.0;
bool OutOfForLoop=False;
switch(whatlookfor)
{
case 0: // look for peak or lawn
if (lastlow==0 && lasthigh==0)
{
if (HighMapBuffer[shift]!=0)
{
lasthigh=High[shift];
lasthighpos=shift;
whatlookfor=-1;
ZigzagBuffer[shift]=lasthigh;
res=1;
}
if (LowMapBuffer[shift]!=0)
{
lastlow=Low[shift];
lastlowpos=shift;
whatlookfor=1;
ZigzagBuffer[shift]=lastlow;
res=1;
}
}
break;
case 1: // look for peak
if (LowMapBuffer[shift]!=0.0 && LowMapBuffer[shift]<lastlow && HighMapBuffer[shift]==0.0)
{
ZigzagBuffer[lastlowpos]=0.0;
lastlowpos=shift;
lastlow=LowMapBuffer[shift];
ZigzagBuffer[shift]=lastlow;
res=1;
}
if (HighMapBuffer[shift]!=0.0 && LowMapBuffer[shift]==0.0)
{
lasthigh=HighMapBuffer[shift];
lasthighpos=shift;
ZigzagBuffer[shift]=lasthigh;
whatlookfor=-1;
res=1;
}
break;
case -1: // look for lawn
if (HighMapBuffer[shift]!=0.0 && HighMapBuffer[shift]>lasthigh && LowMapBuffer[shift]==0.0)
{
ZigzagBuffer[lasthighpos]=0.0;
lasthighpos=shift;
lasthigh=HighMapBuffer[shift];
ZigzagBuffer[shift]=lasthigh;
}
if (LowMapBuffer[shift]!=0.0 && HighMapBuffer[shift]==0.0)
{
lastlow=LowMapBuffer[shift];
lastlowpos=shift;
ZigzagBuffer[shift]=lastlow;
whatlookfor=1;
}
break;
default: OutOfForLoop=True;
}
if(OutOfForLoop) break;
}
//////////////////
if(counted_bars<1)
{
DelObj();
limit = Bars-1;
}
else limit = 0;
for(i = limit; i>=0; i--)
{
int k = i;
double zz;
double d1=0,d2=0,d3=0;
datetime t1=0,t2=0,t3=0;
while(k<Bars-2)
{
zz = ZigzagBuffer[k];
if(zz!=0)
{
d1 = d2; d2 = d3; d3 = zz;
t1 = t2; t2 = t3; t3 = Time[k];
}
if(d1>0) break;
k++;
}
if(d1==0) continue;
double LabelPos;
int ib = iBarShift(NULL,0,t1);
if(d1>d2) LabelPos = NormalizeDouble(High[ib]+0.5*iATR(NULL,0,10,ib),Digits);
else LabelPos = Low[ib];
string ObjName = «ZZLabel_Leg1»;
if(ObjectFind(ObjName)<0)
ObjectCreate(ObjName,OBJ_TEXT,0,t1,LabelPos);
else
ObjectMove(ObjName,0,t1,LabelPos);
ObjectSetText(ObjName,DoubleToStr(MathAbs(d2-d1)/Pip,1),32,«Arial»,Blue);
//////////////////////
if(i==0)
{
LabelPos = Close[0];
ObjName = «ZZLabel_Bid»;
int rOffset = 5*Period()*60;
if(ObjectFind(ObjName)<0)
ObjectCreate(ObjName,OBJ_TEXT,0,Time[0]+rOffset,LabelPos);
else
ObjectMove(ObjName,0,Time[0]+rOffset,LabelPos);
ObjectSetText(ObjName,DoubleToStr(MathAbs(Close[0]-d1)/Pip,1),5,«Arial»,Yellow);
}
//////////////////////
ib = iBarShift(NULL,0,t2);
if(d2>d3) LabelPos = NormalizeDouble(High[ib]+0.5*iATR(NULL,0,10,ib),Digits);
else LabelPos = Low[ib];
ObjName = «ZZLabel»+t1;
if(ObjectFind(ObjName)<0)
{
ObjectCreate(ObjName,OBJ_TEXT,0,t2,LabelPos);
ObjectSetText(ObjName,DoubleToStr(MathAbs(d3-d2)/Pip,1),20,«Arial»,White);
}
}
//////////////////

return(0);
}
//+------------------------------------------------------------------+
avatar

  8  Maxix Сообщений: 59

  • 16 июля 2019, 16:25
+
0
вот спасибо друг. ждём тогда андрея
ещё бы если бы можно было менять цвет этих цифр самим, было бы вообще класс, а то тот зелёный уже в глазах совсем сливается. Андрей сделай пожалуйста эту функцию тоже если возможно.
Редактирован: 16 июля 2019, 17:02
avatar

  10  komod Автор Сообщений: 91

  • 16 июля 2019, 16:45
+
0
Андрей всё готово. ждём
avatar

  10  komod Автор Сообщений: 91

  • 16 июля 2019, 17:10
+
0
на 22-е
avatar

  35  AM2 Сообщений: 16265 - Андрей

  • 16 июля 2019, 17:14
+
0
было же на 16? на сегодня
avatar

  10  komod Автор Сообщений: 91

  • 16 июля 2019, 17:19
+
0
пришлите пожалуйста индикатор в нормальном виде, файлом или в тегах с кодом. в таком виде его нужно сидеть и править.
avatar

  35  AM2 Сообщений: 16265 - Андрей

  • 16 июля 2019, 19:28
+
0
куда прислать, тут не вставляются файлы…
avatar

  8  Maxix Сообщений: 59

  • 17 июля 2019, 07:57
+
0
куда?
avatar

  10  komod Автор Сообщений: 91

  • 17 июля 2019, 09:44
+
0
komod, пишите скайп, почту, вконтакте, одноклассники, даже аську, ватцап… скину вам код mql а дальше сами отредактируете начальный файл в ваше теме, или новую тему в стол заказов. если что вот мой skupe:max.celica. Есть готовая заказная (платная) версия это ZZ который ставит на заданные парамаетры высот стрелку,… тоже вручу.
avatar

  8  Maxix Сообщений: 59

  • 17 июля 2019, 11:17
комментарий был удален 2019-07-17 13:18:47 komod

+
0
я так понимаю нужно делать повторный топик для этого заказа, потому как докинуть нужный файл уже не возможно. нужно просить администрацию, чтобы доделали тут кнопочку для загрузки в таком случае файла. это очень не удобно, когда так происходит.
или Андрей всё таки сделаешь невозможное возможным ))
avatar

  10  komod Автор Сообщений: 91

  • 17 июля 2019, 14:29
+
0
чем данный зигзаг отличается от обычного? я вчера восстановил файл, но особых различий не увидел. сигнал со сменой луча обычного зигзага есть в базе.
avatar

  35  AM2 Сообщений: 16265 - Андрей

  • 17 июля 2019, 17:41
+
0
не знаю чем он отличается, но есть мысль и мониторю в паре с другим индткатором. получится сделать всё таки мой заказ?
avatar

  10  komod Автор Сообщений: 91

  • 17 июля 2019, 18:26
+
0
я смотрел ничем не отличается
avatar

  35  AM2 Сообщений: 16265 - Андрей

  • 17 июля 2019, 18:37
+
0
а можно я посмотрю? ))
avatar

  10  komod Автор Сообщений: 91

  • 17 июля 2019, 18:47
+
0
один в один

avatar

  35  AM2 Сообщений: 16265 - Андрей

  • 17 июля 2019, 19:42
+
0
это считается топик с заданием выполненно?
avatar

  10  komod Автор Сообщений: 91

  • 17 июля 2019, 22:39
+
0
в базе есть индикатор с сигналом на смене колена зигзага. если не найдете напишу.
avatar

  35  AM2 Сообщений: 16265 - Андрей

  • 18 июля 2019, 17:53

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий