Переписать 4 индикаторов с МТ4 на МТ5

MQL5 Indicators

Job finished

Execution time 1 day
Feedback from customer
Работу сделал быстро. В общении адекватен. Приятно было общаться

Specification

Необходимо переписать четыре  индикатора написанных на языке  MQL4 на язык МQL5 по 15 долларов за штуку. Больше собственно и сказать нечего... Больше и сказать нечего... Ну кроме  того, чтобы было быстро и дешево

//+------------------------------------------------------------------+
//|                                                       _RAZ_3.mq4 |
//|                                                   Nikolay Kobzar |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "Nikolay Kobzar"
#property link      "www.traderacademy.ru"

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Blue

double r[];
double r1[];
double z[];
double yy[];
double yy1[];

extern int pm = 60;  // 
extern int t = 2; // ??? ??????? (1-s/2-e)

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   IndicatorShortName("_RAZ_3");
   IndicatorBuffers(5);
   
   SetIndexBuffer(0,r);
   SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2);
   SetIndexLabel(0,"r");
   
   SetIndexBuffer(1,r1);
   SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,2);
   SetIndexLabel(1,"r1");
   
   SetIndexBuffer(2,z);
   SetIndexBuffer(3,yy);
   SetIndexBuffer(4,yy1);
       
   SetLevelStyle(STYLE_DOT,1,Red);
   SetLevelValue(0,0);
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int counted_bars=IndicatorCounted();

   if (Bars <= pm) return(0);
   if (counted_bars < 0) return(-1);
   if (counted_bars > 0) counted_bars--;

   int loopbegin = Bars - counted_bars - 1;
       
   for(int i=loopbegin; i>=0; i--) {
//----
   double RAZ,RAZ1,x;
   if (t==1) x = iMA(NULL,0,pm,0,MODE_SMA,PRICE_CLOSE,i);
   else x = iMA(NULL,0,pm,0,MODE_EMA,PRICE_CLOSE,i);
   z[i] = (Close[i]-x)/Close[i]*100;
   RAZ = (z[i] + z[i+1])/2.0;
   RAZ1 = (z[i+1] + z[i+2])/2.0;

   if (RAZ>RAZ1) yy[i]=1; else yy[i]=0;
   if (RAZ<RAZ1) yy1[i]=-1; else yy1[i]=0;
   
   for (int j=i;j>=0;j--) {r1[j]=0;r[j]=0;}
   if ((yy[i+1]>0) && (yy1[i]<0)) { r[i]=0; r1[i]=-1; }
   if ((yy1[i+1]<0) && (yy[i]>0)) { r[i]=1; r1[i]=0; }

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

 

//+------------------------------------------------------------------+
//|                                               !_TREND_5_BALL.mq4 |
//|                                                   Nikolay Kobzar |
//|                                                            v.0.2 |
//+------------------------------------------------------------------+
#property copyright "Nikolay Kobzar"
#property link      "www.traderacademy.ru"

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Blue

double r1[];
double r2[];
double NMACD1[];
double NMACD2[];

extern int n1 = 12;  // Параметр 1 быстрой средней
extern int n2 = 72;  // Параметр 1 медленной средней
extern int n3 = 72;  // Параметр 2 быстрой средней
extern int n5 = 120;  // Параметр 2 медленной средней
extern int n4 = 2;  // тип средней (1-s/2-e/3-v)


//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   IndicatorShortName("!_TREND_5_BALL");
   IndicatorBuffers(4);
   
   SetIndexBuffer(0,r1);
   SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,1);
   SetIndexLabel(0,"");
   
   SetIndexBuffer(1,r2);
   SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,1);
   SetIndexLabel(1,"");
   
   SetIndexBuffer(2,NMACD1);  
   SetIndexBuffer(3,NMACD2);  

   SetLevelStyle(STYLE_DOT,1,Red);
   SetLevelValue(0,0);      
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
  
   if (Bars <= n5+1) return(0);  
   int counted_bars=IndicatorCounted();
   if (counted_bars < 0) return(-1);
   if (counted_bars > 0) counted_bars--;

   int loopbegin = Bars - counted_bars;
       
   for(int i=loopbegin; i>=0; i--) {
//----
   int x1,x2;
   
   switch(n4)
   {
     case 1:
       NMACD1[i]=iMA(NULL,0,n1,0,MODE_SMA,PRICE_MEDIAN,i)-iMA(NULL,0,n2,0,MODE_SMA,PRICE_MEDIAN,i);
       NMACD2[i]=iMA(NULL,0,n3,0,MODE_SMA,PRICE_MEDIAN,i)-iMA(NULL,0,n5,0,MODE_SMA,PRICE_MEDIAN,i);
       break;
     case 2:
       NMACD1[i]=iMA(NULL,0,n1,0,MODE_EMA,PRICE_MEDIAN,i)-iMA(NULL,0,n2,0,MODE_EMA,PRICE_MEDIAN,i);
       NMACD2[i]=iMA(NULL,0,n3,0,MODE_EMA,PRICE_MEDIAN,i)-iMA(NULL,0,n5,0,MODE_EMA,PRICE_MEDIAN,i);
       break;   
     case 3:
       NMACD1[i]=iMA(NULL,0,n1,0,MODE_LWMA,PRICE_MEDIAN,i)-iMA(NULL,0,n2,0,MODE_LWMA,PRICE_MEDIAN,i);
       NMACD2[i]=iMA(NULL,0,n3,0,MODE_LWMA,PRICE_MEDIAN,i)-iMA(NULL,0,n5,0,MODE_LWMA,PRICE_MEDIAN,i);
   }

   if (NMACD1[i] >= NMACD1[i+1]) x1=1; else x1=-1;
   if (NMACD2[i] >= NMACD2[i+1]) x2=1; else x2=-1; 
   if ((x1==1) && (x2==1)) {r1[i]=2;r2[i]=0;}
   if ((x1==-1) && (x2==-1)) {r1[i]=0;r2[i]=-2;}
   if ((x1*x2)==-1) {r1[i]=1;r2[i]=-1;}  
      
//----
   }
   return(0);
  }
//+--------------------
//+------------------------------------------------------------------+
//|                                                 _TREND_STOCH.mq4 |
//|                                                   Nikolay Kobzar |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "Nikolay Kobzar"
#property link      "www.traderacademy.ru"

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red

double r[];
double x[];

extern int p1 = 30;
extern int p2 = 8;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   IndicatorShortName("_TREND_STOCH");
   IndicatorBuffers(2);
   SetIndexBuffer(0,r);
   SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1);
   SetIndexLabel(0,"r");
   
   SetIndexBuffer(1,x); 
   SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1);  
       
   SetLevelStyle(STYLE_DOT,1,Red);
   SetLevelValue(0,0);
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int counted_bars=IndicatorCounted();

   if (Bars <= p1) return(0);
   if (counted_bars < 0) return(-1);
   if (counted_bars > 0) counted_bars--;

   int loopbegin = Bars - counted_bars - 1;
   
   double x1;
       
   for(int i=loopbegin; i>=0; i--) {
//----

x[i] = iStochastic(NULL,0,p1,2,p2,MODE_SMA,0,1,i);
x1 = x[i+1]; 
if (x[i]>x1) r[i]=1;
if (x[i]<x1) r[i]=-1;
if (x[i]==x1) r[i]=0;

//----
   }
   return(0);
  }
//+------------------------------------------------------------------+
/+------------------------------------------------------------------+
//|                                                   !_TREND_PO.mq4 |
//|                                                   Nikolay Kobzar |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "Nikolay Kobzar"
#property link      "www.traderacademy.ru"

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red

double R[];
double F[];

extern int n1 = 8;  // Параметр быстрой средней
extern int n2 = 60; // Параметр медленной средней
extern int n3 = 1;  // тип средней (1-s/2-e)

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   IndicatorShortName("!_TREND_PO");
   IndicatorBuffers(2);
   SetIndexBuffer(0,R);
   SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1);
   SetIndexLabel(0,"R");
   
   SetIndexBuffer(1,F);   
       
   SetLevelStyle(STYLE_DOT,1,Red);
   SetLevelValue(0,0);
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int counted_bars=IndicatorCounted();

   if (Bars <= n2) return(0);
   if (counted_bars < 0) return(-1);
   if (counted_bars > 0) counted_bars--;

   int loopbegin = Bars - counted_bars - 1;
       
   for(int i=loopbegin; i>=0; i--) {
//----

if (n3 == 1) F[i]=iMA(NULL,0,n1,0,MODE_SMA,PRICE_CLOSE,i) 
                  - iMA(NULL,0,n2,0,MODE_SMA,PRICE_CLOSE,i);
if (n3 == 2) F[i]=iMA(NULL,0,n1,0,MODE_EMA,PRICE_CLOSE,i)
                  - iMA(NULL,0,n2,0,MODE_EMA,PRICE_CLOSE,i);
if (F[i]>=F[i+1]) R[i]=1; else R[i]=-1;

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

Responded

1
Developer 1
Rating
(3)
Projects
4
25%
Arbitration
0
Overdue
0
Free
2
Developer 2
Rating
(47)
Projects
89
43%
Arbitration
5
20% / 60%
Overdue
9
10%
Free
3
Developer 3
Rating
(280)
Projects
650
28%
Arbitration
111
19% / 61%
Overdue
319
49%
Free
4
Developer 4
Rating
(563)
Projects
932
47%
Arbitration
302
59% / 25%
Overdue
124
13%
Busy
5
Developer 5
Rating
(1857)
Projects
3460
88%
Arbitration
73
40% / 15%
Overdue
265
8%
Free
6
Developer 6
Rating
(336)
Projects
620
38%
Arbitration
39
23% / 64%
Overdue
93
15%
Free
Similar orders
dify indicator MA_Cloud for mt4 and mt5, give source code with comments 1)Need to change alerts and arrows for cross price only true 2 MA without crossing (direction from small to big) 2)Fix the error when change to any timeframe for MA (disapeer) and for arrows (in history is very big on vertically out of see screenshot) 3)Add alerts for crossing of 2 MA (MA Small cross MA big) Arrows, Message, Sound - (True/False)
Изменить графический интерфейс утилиты, исправить расположение кнопок, изменить вид некоторых окон и добавить новые. Сохранить текущую адаптивность и работоспособность кнопок. Подробнее расскажу в ТЗ с наглядными скриншотами, что и где поменять. Правки нужно внести в МТ4 и МТ5 версии. Спасибо за ваши заявки, рассмотрю каждую
Мне нужен робот, который будет иметь следующие необходимые параметры: 1. робот должен работать на MT5 2. минимальный депозит $100 3. количество транзакций в день на депозит $100 с лотом 0,01 минимум 1000 4. макс прасат 15%
написать индикатор распознования флета. выявления флета из трёх частей проверки. в каждой части свой расчёт, по барам, по количеству поинтов, по ширине (высоте) баров, по минимальным значениям... когда все расчеты сошлись и не вышли из пропорций, тогда рисуется флет. Задание готово, отправлю подходящему кандидату. передача оплаты, когда индикатор будет работать без проблем, по всем параметрам расчетов. возможны не
был старый работоспособный скрипт на очень старом МТ4... есть необходимость переписать его на MQL5, чтобы проверить теоретическую работоспособность в современном мире описание вроде бы где-то сохранилось кто-нибудь сможет помочь с этим вопросом и за какие деньги

Project information

Budget
60- USD