
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Oh, vous voulez voir un delta (différence) et l'utiliser pour deviner de quel côté le prix penche davantage ))))).
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)
...
...
...
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é ?
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".
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
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" :
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...