Если Вы хотите заказать советник или индикатор, то публикуйте в эту группу тех. задание. Если Ваш заказ не очень сложный, то велика вероятность, что Вам его смогут сделать даже бесплатно
Программистам MQL: подпишитесь на группу, чтобы получать уведомления о заказах.
int vol[9]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ intOnInit() { //--- indicator buffers mapping Comment(""); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ voidPutLabel(string text,string name,int x,int y) { ObjectDelete(0,name); //--- создадим текстовую метку ObjectCreate(0,name,OBJ_LABEL,0,0,0); //--- установим координаты метки ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x); ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y); //--- установим угол графика, относительно которого будут определяться координаты точки ObjectSetInteger(0,name,OBJPROP_CORNER,1); //--- установим текст ObjectSetString(0,name,OBJPROP_TEXT,text); //--- установим шрифт текста ObjectSetString(0,name,OBJPROP_FONT,"Arial"); //--- установим размер шрифта ObjectSetInteger(0,name,OBJPROP_FONTSIZE,12); //--- установим цвет ObjectSetInteger(0,name,OBJPROP_COLOR,Red); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ intOnCalculate(constint rates_total, constint prev_calculated, const datetime &time[], constdouble&open[], constdouble&high[], constdouble&low[], constdouble&close[], constlong&tick_volume[], constlong&volume[], constint&spread[]) { double h1=iHigh(s1,0,iHighest(s1,0,MODE_HIGH,count,0)); double l1=iLow(s1,0,iLowest(s1,0,MODE_LOW,count,0)); int v1=(int)((h1-l1)/MarketInfo(s1,MODE_POINT)); int sp1=(int)MarketInfo(s1,MODE_SPREAD); vol[0]=v1;
double h2=iHigh(s2,0,iHighest(s2,0,MODE_HIGH,count,0)); double l2=iLow(s2,0,iLowest(s2,0,MODE_LOW,count,0)); int v2=(int)((h2-l2)/MarketInfo(s2,MODE_POINT)); int sp2=(int)MarketInfo(s2,MODE_SPREAD); vol[1]=v2;
double h3=iHigh(s3,0,iHighest(s3,0,MODE_HIGH,count,0)); double l3=iLow(s3,0,iLowest(s3,0,MODE_LOW,count,0)); int v3=(int)((h3-l3)/MarketInfo(s3,MODE_POINT)); int sp3=(int)MarketInfo(s3,MODE_SPREAD); vol[2]=v3;
double h4=iHigh(s4,0,iHighest(s4,0,MODE_HIGH,count,0)); double l4=iLow(s4,0,iLowest(s4,0,MODE_LOW,count,0)); int v4=(int)((h4-l4)/MarketInfo(s4,MODE_POINT)); int sp4=(int)MarketInfo(s4,MODE_SPREAD); vol[3]=v4;
double h5=iHigh(s5,0,iHighest(s5,0,MODE_HIGH,count,0)); double l5=iLow(s5,0,iLowest(s5,0,MODE_LOW,count,0)); int v5=(int)((h5-l5)/MarketInfo(s5,MODE_POINT)); int sp5=(int)MarketInfo(s5,MODE_SPREAD); vol[4]=v5;
double h6=iHigh(s6,0,iHighest(s6,0,MODE_HIGH,count,0)); double l6=iLow(s6,0,iLowest(s6,0,MODE_LOW,count,0)); int v6=(int)((h6-l6)/MarketInfo(s6,MODE_POINT)); int sp6=(int)MarketInfo(s6,MODE_SPREAD); vol[5]=v6;
double h7=iHigh(s7,0,iHighest(s7,0,MODE_HIGH,count,0)); double l7=iLow(s7,0,iLowest(s7,0,MODE_LOW,count,0)); int v7=(int)((h7-l7)/MarketInfo(s7,MODE_POINT)); int sp7=(int)MarketInfo(s7,MODE_SPREAD); vol[6]=v7;
double h8=iHigh(s8,0,iHighest(s8,0,MODE_HIGH,count,0)); double l8=iLow(s8,0,iLowest(s8,0,MODE_LOW,count,0)); int v8=(int)((h8-l8)/MarketInfo(s8,MODE_POINT)); int sp8=(int)MarketInfo(s8,MODE_SPREAD); vol[7]=v8;
//--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+
В следующем топике можно создать двумерный массив. В первом измерении будет цифра соответствующая паре, во втором волатильность. Затем отсотировать по второму измерению и по цифровому значению определить пары с наибольшей волатильностью.
Отслеживание возрастания волатильности уже на 3-й топик, я еще пока не представляю как буду это реализовывать.
Комментарии (6)
35 AM2 Сообщений: 16521 - Андрей
В следующем топике можно создать двумерный массив. В первом измерении будет цифра соответствующая паре, во втором волатильность. Затем отсотировать по второму измерению и по цифровому значению определить пары с наибольшей волатильностью.
Отслеживание возрастания волатильности уже на 3-й топик, я еще пока не представляю как буду это реализовывать.
35 AM2 Сообщений: 16521 - Андрей
24 igrun Автор Сообщений: 1723 - igrun
19 Kashtan Сообщений: 739 - Игорь
и ошибку пишет 2018.07.06 01:44:25.896 PairVol GBPJPYc,M5: zero divide in 'PairVol' (78,25)
16 cerber04 Сообщений: 409
24 igrun Автор Сообщений: 1723 - igrun
Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий