ПОМОГИТЕ !!!! переделать индиктор с MT4 под MT5.(бесплатно) - страница 3

 
10937:
Ах, та вы хотите увидеть типа дельты (разницу) и по ней предполагать в какую сторону цена склоняется больше )))))
  Ну это первая мысль ,которая приходит человеку при упоминании об этом 
 

Пытаюсь тестировать MT5. 

В МТ4 использую индикатор IchimokuAlert_v3

Брал отсюда https://www.forex-tsd.com/forum/debates-discussions/1175-ichimoku-alert/page2#comment_418797 

Может добрый человек понимающий переделает для MT5. 

Пробовал конвертировать по методике отсюда http://metatrader5.blogspot.com/2009/10/rewrite-mql-4-to-mql-5-script.html

При компиляции 55 ошибок 

Файлы:
 
Ваня:

Пытаюсь тестировать MT5. 

В МТ4 использую индикатор IchimokuAlert_v3

Брал отсюда https://www.forex-tsd.com/forum/debates-discussions/1175-ichimoku-alert/page2#comment_418797 

Может добрый человек понимающий переделает для MT5. 

Пробовал конвертировать по методике отсюда http://metatrader5.blogspot.com/2009/10/rewrite-mql-4-to-mql-5-script.html

При компиляции 55 ошибок 

вам будет проще открыть Ishimoku из поставки мт5.

и скопировать в него из вашего алерта блок кода .

//----
   string Msg,Subj;
  
   if (AlertType == 1 || AlertType == 3)
   {
      if (Tenkan_Buffer[1]>Kijun_Buffer[1] && Tenkan_Buffer[2]<Kijun_Buffer[2] && !UptrendAlert1)
...
...
...
 
o_O:

вам будет проще открыть Ishimoku из поставки мт5.

и скопировать в него из вашего алерта блок кода .

//----
   string Msg,Subj;
  
   if (AlertType == 1 || AlertType == 3)
   {
      if (Tenkan_Buffer[1]>Kijun_Buffer[1] && Tenkan_Buffer[2]<Kijun_Buffer[2] && !UptrendAlert1)
...
...
...

Спасибо! Добрый человек.

А подскажите между какими строками надо вставить этот блок кода? 

Поставил блок в конце. 6 ошибок при компиляции.

Ругается на

136 строка if (AlertType == 1 || AlertType == 3)

156 строка if (AlertType == 2 || AlertType == 3)

175строка return(rates_total);

176 строка ругается на скобку }

180 строка if (MsgAlerts) Alert(msgText);

181 строка if (eMailAlerts) SendMail(eMailSub, msgText); 

//+------------------------------------------------------------------+
//|                                                     Ichimoku.mq5 |
//|                        Copyright 2009, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "2010, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property description "Ichimoku Kinko Hyo"
//--- indicator settings
#property indicator_chart_window
#property indicator_buffers 5
#property indicator_plots   4
#property indicator_type1   DRAW_LINE
#property indicator_type2   DRAW_LINE
#property indicator_type3   DRAW_FILLING
#property indicator_type4   DRAW_LINE
#property indicator_color1  Red
#property indicator_color2  Blue
#property indicator_color3  SandyBrown,Thistle
#property indicator_color4  Lime
#property indicator_label1  "Tenkan-sen"
#property indicator_label2  "Kijun-sen"
#property indicator_label3  "Senkou Span A;Senkou Span B"
#property indicator_label4  "Chikou Span"
//--- input parameters
input int InpTenkan=9;     // Tenkan-sen
input int InpKijun=26;     // Kijun-sen
input int InpSenkou=52;    // Senkou Span B
//--- indicator buffers
double    ExtTenkanBuffer[];
double    ExtKijunBuffer[];
double    ExtSpanABuffer[];
double    ExtSpanBBuffer[];
double    ExtChikouBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,ExtTenkanBuffer,INDICATOR_DATA);
   SetIndexBuffer(1,ExtKijunBuffer,INDICATOR_DATA);
   SetIndexBuffer(2,ExtSpanABuffer,INDICATOR_DATA);
   SetIndexBuffer(3,ExtSpanBBuffer,INDICATOR_DATA);
   SetIndexBuffer(4,ExtChikouBuffer,INDICATOR_DATA);
//---
   IndicatorSetInteger(INDICATOR_DIGITS,_Digits+1);
//--- sets first bar from what index will be drawn
   PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,InpTenkan);
   PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,InpKijun);
   PlotIndexSetInteger(2,PLOT_DRAW_BEGIN,InpSenkou-1);
//--- lines shifts when drawing
   PlotIndexSetInteger(2,PLOT_SHIFT,InpKijun);
   PlotIndexSetInteger(3,PLOT_SHIFT,-InpKijun);
//--- change labels for DataWindow
   PlotIndexSetString(0,PLOT_LABEL,"Tenkan-sen("+string(InpTenkan)+")");
   PlotIndexSetString(1,PLOT_LABEL,"Kijun-sen("+string(InpKijun)+")");
   PlotIndexSetString(2,PLOT_LABEL,"Senkou Span A;Senkou Span B("+string(InpSenkou)+")");
//--- initialization done
  }
//+------------------------------------------------------------------+
//| get highest value for range                                      |
//+------------------------------------------------------------------+
double Highest(const double&array[],int range,int fromIndex)
  {
   double res=0;
//---
   res=array[fromIndex];
   for(int i=fromIndex;i>fromIndex-range && i>=0;i--)
     {
      if(res<array[i]) res=array[i];
     }
//---
   return(res);
  }
//+------------------------------------------------------------------+
//| get lowest value for range                                       |
//+------------------------------------------------------------------+
double Lowest(const double&array[],int range,int fromIndex)
  {
   double res=0;
//---
   res=array[fromIndex];
   for(int i=fromIndex;i>fromIndex-range && i>=0;i--)
     {
      if(res>array[i]) res=array[i];
     }
//---
   return(res);
  }
//+------------------------------------------------------------------+
//| Ichimoku Kinko Hyo                                               |
//+------------------------------------------------------------------+
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[])
  {
   int limit;
//---
   if(prev_calculated==0) limit=0;
   else                   limit=prev_calculated-1;
//---
   for(int i=limit;i<rates_total && !IsStopped();i++)
     {
      ExtChikouBuffer[i]=close[i];
      //--- tenkan sen
      double _high=Highest(high,InpTenkan,i);
      double _low=Lowest(low,InpTenkan,i);
      ExtTenkanBuffer[i]=(_high+_low)/2.0;
      //--- kijun sen
      _high=Highest(high,InpKijun,i);
      _low=Lowest(low,InpKijun,i);
      ExtKijunBuffer[i]=(_high+_low)/2.0;
      //--- senkou span a
      ExtSpanABuffer[i]=(ExtTenkanBuffer[i]+ExtKijunBuffer[i])/2.0;
      //--- senkou span b
      _high=Highest(high,InpSenkou,i);
      _low=Lowest(low,InpSenkou,i);
      ExtSpanBBuffer[i]=(_high+_low)/2.0;
     }
//--- done
   return(rates_total);
  }
//+------------------------------------------------------------------+

//----
   string Msg,Subj;
  
   if (AlertType == 1 || AlertType == 3)
   {
      if (Tenkan_Buffer[1]>Kijun_Buffer[1] && Tenkan_Buffer[2]<Kijun_Buffer[2] && !UptrendAlert1)
      {
         Subj = "Tenkan crosses Kijun: "+Symbol()+" on M"+Period();
         Msg = "BUY Signal --- : "+Subj+ " @ "+DoubleToStr(Close[1],Digits) + ", @ " + TimeToStr(TimeLocal(),TIME_SECONDS);
         UptrendAlert1 = true;
         DntrendAlert1 = false;
         DoAlerts(Msg,Subj);
      }
      if ( Tenkan_Buffer[1]<Kijun_Buffer[1] && Tenkan_Buffer[2]>Kijun_Buffer[2] && !DntrendAlert1)
      {  
         Subj = "Tenkan crosses Kijun: "+Symbol()+" on M"+Period();
         Msg = "SELL Signal --- : "+Subj+ " @ "+DoubleToStr(Close[1],Digits) + ", @ " + TimeToStr(TimeLocal(),TIME_SECONDS);
         UptrendAlert1 = false;
         DntrendAlert1 = true;
         DoAlerts(Msg,Subj);
      }
   }
  
   if (AlertType == 2 || AlertType == 3)
   {
      if (Close[1]>Close[1+Kijun] && Close[2]<Close[2+Kijun] && !UptrendAlert2)
      {
         Subj = "Kijun crossed Price: "+Symbol()+" on M"+Period();
         Msg = "BUY Signal --- : "+Subj+ " @ "+DoubleToStr(Close[1],Digits) + ", @ " + TimeToStr(TimeLocal(),TIME_SECONDS);
         DntrendAlert2 = false;
         UptrendAlert2 = true;
         DoAlerts(Msg,Subj);
      }
      if (Close[1]<Close[1+Kijun] && Close[2]>Close[2+Kijun] && !DntrendAlert2)
      {
         Subj = "Kijun crossed Price: "+Symbol()+" on M"+Period();
         Msg = "SELL Signal --- : "+Subj+ " @ "+DoubleToStr(Close[1],Digits) + ", @ " + TimeToStr(TimeLocal(),TIME_SECONDS);
         DntrendAlert2 = true;
         UptrendAlert2 = false;
         DoAlerts(Msg,Subj);
      }
   }
   return(rates_total);
}

void DoAlerts(string msgText, string eMailSub)
{
   if (MsgAlerts) Alert(msgText);
   if (eMailAlerts) SendMail(eMailSub, msgText);
}
//+------------------------------------------------------------------+


 

 
Ваня:

Спасибо! Добрый человек.

А подскажите между какими строками надо вставить этот блок кода?  

Обратитесь во фриланс, там вставят куски кода в нужные места.
 
Evgeny Belyaev:
Обратитесь во фриланс, там вставят куски кода в нужные места.
я даже и не знаю что такое "фриланс"
 
Ваня:
я даже и не знаю что такое "фриланс"
Фриланс
 
Ваня:
я даже и не знаю что такое "фриланс"
Теперь знаете?
 
Evgeny Belyaev:
Теперь знаете?

ага, складывается впечатление, что на русскоязычных темах население перестает понимать РУССКИЙ язык.

Эта тема "ПОМОГИТЕ !!!! переделать индиктор с MT4 под MT5.(бесплатно) "

Вы куда советуете пойти?

условия "фриланс":

II. Порядок выполнения Заказов

  1. Заказ в процессе выполнения проходит через следующие шаги:
    1. Соглашение о работе
    2. Согласование ТЗ
    3. Прототип/Макет
    4. Демонстрация
    5. Передача работ
    6. Оплата
 
Ваня:

ага, складывается впечатление, что на русскоязычных темах население перестает понимать РУССКИЙ язык.

Эта тема "ПОМОГИТЕ !!!! переделать индиктор с MT4 под MT5.(бесплатно) "

Вы куда советуете пойти?

условия "фриланс":

    1. Оплата

Да, вот представьте, то, что вы предлагаете - стоит определенных усилий, а значит, и денег.

Все прекрасно понимают русский язык, но возиться "за спасибо" мало кому интересно.

Вот если бы у вас был успешный опыт торговли, в которой вам бы был нужен индикатор, тогда бы вам, возможно кто-то согласился бы что-то сделать без денег взамен на прибыльную торговую идею. А так - чисто ради "доброго имени" - боюсь, желающих будет мало...

Причина обращения: