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

Рейтинг 2073



РЕКОМЕНДУЮ



Индикатор MT4 на основе стандартного индикатора ЗигЗаг

Здравствуйте Андрей!
Пожалуйста создайте индикатор по следующим условиям.
Индикатор MT4 на основе стандартного индикатора ЗигЗаг
Параметры Индикатора
1. Параметры индикатора ЗигЗаг
2. Символ 1 – вводиться вручную
3. Символ 2 – вводиться вручную
4. Символ 3 – вводиться вручную
Индикатор измеряет расстояние последнего луча Индикатора ЗигЗаг по все трем символам и в окне где он запущен отображает следующую информацию:
Символ 1 – Луч роста/спада, размер луча __ пунктов, изменение ___ процентов
Символ 2 – Луч роста/спада, размер луча __ пунктов, изменение ___ процентов
Символ 3 – Луч роста/спада, размер луча __ пунктов, изменение ___ процентов

Для расчёта изменения в процентах берем размер луча в пунктах и делим на (текущая цена Символа / 100), например, размер луча 20 пунктов и текущая цена Символа 1 = 1,2320, изменение в процентах 20/(1,2320/100)= 0,16%

Заранее благодарен за реализацию.
  • +1
  • Просмотров: 4271
  • 1 мая 2018, 21:10
  • izzatilla
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
Доработки Совы
Следующая запись в группе  
Доработка советника http://zakaz.opentraders.ru/44941.html
01 мая 2018
02 мая 2018

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

+
0
на 9-е
avatar

  34  AM2 Сообщений: 15826 - Андрей

  • 1 мая 2018, 21:17
+
0
Пока в таком виде:




//+------------------------------------------------------------------+
//|                                                          ZZZ.mq4 |
//|                                              Copyright 2018, AM2 |
//|                                      http://www.forexsyatems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, AM2"
#property link      "http://www.forexsyatems.biz"
#property version   "1.00"
#property strict
#property indicator_chart_window

input string s1="GBPUSD";
input string s2="EURUSD";
input string s3="USDCHF";
input ENUM_TIMEFRAMES tf=PERIOD_H1;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double GetExtremumZZPrice(string sy="",int tfm=0,int ne=0,int dp=12,int dv=5,int bs=3)
  {
   if(sy=="" || sy=="0") sy=Symbol();
   double zz;
   int    i,k=iBars(sy,tfm),ke=0;

   for(i=1; i<k; i++)
     {
      zz=iCustom(sy,tfm,"ZigZag",dp,dv,bs,0,i);
      if(zz!=0)
        {
         ke++;
         if(ke>ne) return(zz);
        }
     }
   Print("GetExtremumZZPrice(): Экстремум ЗигЗага номер ",ne," не найден");
   return(0);
  }
//+------------------------------------------------------------------+
//| 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[])
  {
//---
   double zz11=GetExtremumZZPrice(s1,tf,0,12,5,3);
   double zz12=GetExtremumZZPrice(s1,tf,1,12,5,3);
   double p1=MarketInfo(s1,MODE_POINT);

   double zz21=GetExtremumZZPrice(s2,tf,0,12,5,3);
   double zz22=GetExtremumZZPrice(s2,tf,1,12,5,3);
   double p2=MarketInfo(s2,MODE_POINT);

   double zz31=GetExtremumZZPrice(s3,tf,0,12,5,3);
   double zz32=GetExtremumZZPrice(s3,tf,1,12,5,3);
   double p3=MarketInfo(s3,MODE_POINT);

   double po1=(zz11-zz12)/p1;
   double po2=(zz21-zz22)/p2;
   double po3=(zz31-zz32)/p3;

   double bid1=MarketInfo(s1,MODE_BID);
   double bid2=MarketInfo(s2,MODE_BID);
   double bid3=MarketInfo(s3,MODE_BID);

   Comment("\n "+s1+" "+(string)((int)(po1))+" points  "+(string)(NormalizeDouble(MathAbs(po1/bid1/100),2))+"%",
           "\n "+s2+" "+(string)((int)(po2))+" points  "+(string)(NormalizeDouble(MathAbs(po2/bid2/100),2))+"%",
           "\n "+s3+" "+(string)((int)(po3))+" points  "+(string)(NormalizeDouble(MathAbs(po3/bid3/100),2))+"%");
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

avatar

  34  AM2 Сообщений: 15826 - Андрей

  • 8 мая 2018, 18:29
+
0
avatar

  34  AM2 Сообщений: 15826 - Андрей

  • 8 мая 2018, 20:01
+
0
Спасибо. В параметры Индикатора не включен следующее.
1. Параметры индикатора ЗигЗаг

И почему то терминал тормозит после запуска индикатора, пока не удалось запустить индикатор.
avatar

  5  izzatilla Автор Сообщений: 107 - telma

  • 9 мая 2018, 07:49
+
0
Вчера около часа гонял, тормозов не заметил хоть и комп не особо мощный и сегодня запустился. Параметры добавил: www.opentraders.ru/downloads/1890/

avatar

  34  AM2 Сообщений: 15826 - Андрей

  • 9 мая 2018, 08:36
+
0
Работает. Спасибо!
avatar

  5  izzatilla Автор Сообщений: 107 - telma

  • 11 мая 2018, 06:52

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