AIDE ! !!! convertir un indicateur de MT4 à MT5. - page 3

 
10937:
Oh, vous voulez voir un delta (différence) et l'utiliser pour deviner de quel côté le prix penche davantage ))))).
Eh bien, c'est la première pensée qui vient à un homme quand il en parle
 

J'essaie de tester MT5.

Dans MT4, j'utilise l'indicateur IchimokuAlert_v3.

Je l'ai pris d'ici https://www.forex-tsd.com/forum/debates-discussions/1175-ichimoku-alert/page2#comment_418797

Que quelqu'un ayant de bonnes connaissances le convertisse pour MT5.

J'ai essayé de le convertir avec la méthodologie d'ici http://metatrader5.blogspot.com/2009/10/rewrite-mql-4-to-mql-5-script.html.

Compiler avec 55 erreurs

 
Ваня:

J'essaie de tester MT5.

Dans MT4, j'utilise l'indicateur IchimokuAlert_v3.

Je l'ai pris d'ici https://www.forex-tsd.com/forum/debates-discussions/1175-ichimoku-alert/page2#comment_418797

Que quelqu'un ayant de bonnes connaissances le convertisse pour MT5.

J'ai essayé de le convertir avec la méthodologie d'ici http://metatrader5.blogspot.com/2009/10/rewrite-mql-4-to-mql-5-script.html.

Il y a 55 erreurs lors de la compilation.

Il sera plus facile d'ouvrir Ishimoku à partir de la livraison MT5.

Et copiez-y un bloc de code de votre alerte.

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

il sera plus facile pour vous d'ouvrir Ishimoku à partir de la livraison de mt5.

Et copiez-y un bloc de code provenant de votre alerte .

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

Merci ! Un homme bon.

Pouvez-vous me dire entre quelles lignes ce bloc de code doit être inséré ?

J'ai mis le bloc à la fin. J'ai eu 6 erreurs de compilation.

C'est un reproche.

136 ligne if (AlertType == 1 || AlertType == 3)

156 ligne if (AlertType == 2 || AlertType == 3)

175 ligne retour(taux_total) ;

176 ligne jurée sur la parenthèse }

180 ligne if (MsgAlerts) Alert(msgText) ;

181 ligne 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);
}
//+------------------------------------------------------------------+
 
Ваня:

Merci ! Un homme bon.

Pouvez-vous me dire entre quelles lignes ce bloc de code doit être inséré ?

Contactez Freelance, ils inséreront des morceaux de code aux bons endroits.
 
Evgeny Belyaev:
Faites appel à un indépendant, il mettra des morceaux de code aux bons endroits.
Je ne sais même pas ce qu'est le "freelancing".
 
Ваня:
Je ne sais même pas ce qu'est le "freelancing".
Freelance.
 
Ваня:
Je ne sais même pas ce qu'est le "freelancing".
Vous le savez maintenant ?
 
Evgeny Belyaev:
Le savez-vous maintenant ?

Oui, j'ai l'impression que sur les fils de discussion en langue russe, la population cesse de comprendre la langue russe.

Ce fil de discussion "HELP ! !!! pour convertir un indicateur de MT4 à MT5.

Où conseillez-vous d'aller ?

Les termes de "freelancing" :

II. Processus de commande

  1. Une commande passe par les étapes suivantes du processus :
    1. Accord de travail
    2. Accord TOR
    3. Prototype/Modèle
    4. Démonstration
    5. Livraison du travail
    6. Paiement
 
Ваня:

Oui, j'ai l'impression que sur les fils de discussion en langue russe, la population cesse de comprendre la langue russe.

Ce fil de discussion "HELP ! !!! pour convertir un indicateur de MT4 à MT5.

Où conseillez-vous d'aller ?

Les termes de "freelance" :

    1. Paiement

Oui, imaginez, ce que vous suggérez vaut bien quelques efforts et donc de l'argent.

Tout le monde comprend la langue russe, mais le tripotage "à titre onéreux" n'est pas très intéressant.

Mais si vous avez eu une expérience commerciale réussie, dans laquelle vous auriez besoin d'un indicateur, peut-être quelqu'un accepterait-il de faire quelque chose sans argent en échange d'une idée commerciale rentable. Mais dans l'intervalle - pour des raisons de "bonne réputation" - je crains qu'il n'y ait pas beaucoup de personnes prêtes à le faire...