Votre affirmation n'est pas tout à fait acceptable, nous parlons de tests multidevises. Il n'y a pas de minuteur dans MT4, mais il n'y a pas non plus de testeur multidevises. Lorsqu'il travaille sur MT4, l'Expert Advisor dépend de toute façon de l'intensité du flux de cotations de l'instrument sur lequel il travaille. Imaginez une telle situation : disons que vous avez un conseiller expert multidevises sur EURUSD, et si dans un certain laps de temps il n'y a pas de ticks sur cette paire, comment allez-vous suivre l'arrivée de nouveaux ticks sur d'autres instruments ?
Eh bien, cela n'existe pas dans MQL4, de même que les structures et les classes n'y existent pas, proposez-vous de les abandonner ici ?
IMHO
Utiliser ou non la bibliothèque standard est une question de goût pour chacun (au pire, on ne peut utiliser que son propre code), mais renoncer à tous les avantages simplement parce qu'ils ne sont pas disponibles dans MT4 n'est pas très raisonnable......
Je n'ai pas écrit cela du tout.
J'ai écrit que MQL5 a des problèmes et produit des données erronées dans certaines combinaisons d'instruments.
Par exemple : si l'EURJPY ou l'EURGBP est superposé au graphique de l'EURUSD, tout va bien.
Mais si vous superposez EURCAD, les données sur le graphique sont erronées, alors que dans MQL4, il n'y avait pas d'erreur de ce type.
J'ai écrit que MQL5 a des problèmes et produit des données erronées avec certaines combinaisons d'instruments.
Par exemple : si l'EURJPY ou l'EURGBP est superposé au graphique de l'EURUSD, tout est normal.
Mais si on superpose EURCAD, les données sur le graphique avec une erreur, alors que dans MQL4 ce n'était pas le cas, il n'y a pas d'erreur.
J'ai bien compris cela, mais Kos a raison (notamment le joli post du 2010.07.02 14:57). Je ne comprends pas pourquoi tous les développeurs (y compris MQ ) persistent à ignorer le timer. Si nous prenons en compte le fait qu'il n'y a pas d'exemples officiels de traders multidevises, alors tout est clair avec MQ à ce sujet, mais pourquoi d'autres persistent à ignorer OnTimer() pour moi personnellement reste un GRAND mystère.....
Renat: Veuillez me donner un exemple avec une erreur.
Bon, je ne vais pas tout écrire ici, cela semble suffisamment clair. //--------- Option avec MQL4 --------- #property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 Aqua
extern string InstrumentName = "EURCAD" ; double Buffer[] ; SetIndexBuffer(0,Buffer) ; // Assigne le tableau au tampon SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Style de ligne
while(i >= 0){//-- Moving from right to left (i.e. from the highest to the 0 bar which is still being formed) -- Buffer[i] = (iHigh(InstrumentName,0,i) + iClose(InstrumentName,0,i) + iLow(InstrumentName,0,i)) / 3 ; i--;//-- next Bar }/next (while)
//----------- Maintenant presque la même variante dans MQL5 -------- #property indicator_separate_window // L'indicateur. est dessiné dans une fenêtre séparée #property indicator_buffers 1
#property indicator_plots 1 #property indicator_type1 DRAW_LINE #property indicator_color1 Aqua
Вы недавно зарегистрировались и у вас возникли вопросы: Как вставить картинку в сообщение на форуме, как красиво оформить исходный код MQL5, где находятся ваши Личные сообщения? В этой статье мы подготовили для вас несколько практических советов, которые помогут быстрее освоиться на сайте MQL5.community и позволят в полной мере воспользоваться доступными функциональными возможностями.
Rosh: Veuillez insérer le code correctement, cela facilite la compréhension.
//--------- Option avec MQL4 --------- #property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 Aqua
extern string InstrumentName = "EURCAD" ; double Buffer[] ; int init() { SetIndexBuffer(0,Buffer) ; // Assigne le tableau au tampon SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Style de ligne } int start() { while(i >= 0){ Buffer[i] = (iHigh(InstrumentName,0,i) + iClose(InstrumentName,0,i) + iLow(InstrumentName,0,i)) / 3 ; i-- ;//-- Barre suivante }//next (while) }
//----------- Maintenant presque la même variante dans MQL5 -------- #property indicator_separate_window // L'indicateur. est dessiné dans une fenêtre séparée #property indicator_buffers 1
#property indicator_plots 1 #property indicator_type1 DRAW_LINE #property indicator_color1 Aqua
Veuillez créer un exemple reproductible. En d'autres termes, vous avez besoin d'un code prêt à l'emploi que vous pouvez compiler, placer sur un graphique et obtenir des résultats.
Sans cela, peu de gens comprendront de quoi nous parlons.
//----------- Maintenant presque la même variante dans MQL5 --------#property indicator_separate_window // L'indicateur est dessiné dans une fenêtre séparée#property indicator_buffers 1#property indicator_plots 1#property indicator_type1 DRAW_LINE#property indicator_color1 Aquainputstring InstrumentName = "EURCAD";
double Buffer[];
intOnInit()
{
IndicatorSetString(INDICATOR_SHORTNAME,InstrumentName);
SetIndexBuffer(0,Buffer,INDICATOR_DATA);
return(0);
}
intOnCalculate(constint rates_total,
constint prev_calculated,
constdatetime& time[],
constdouble& open[],
constdouble& high[],
constdouble& low[],
constdouble& close[],
constlong& tick_volume[],
constlong& volume[],
constint& spread[])
{
int copied;
int CountBars=rates_total;
copied=CopyClose(InstrumentName,0,0,CountBars,Buffer);
return(copied);
}
//--Maintenant, lancez-le sur l'EURUSD.//--Peu importe l'instrument sur lequel nous plaçons l'indicateur, le graphique ne doit pas changer.
Idéalement, il ne devrait pas, mais je l'ai fait grincer avec des algorithmes il n'est apparu que sur 1 TF sur les autres a montré catégoriquement le vide .....
même après une heure de test.....
et des tentatives de téléchargement de l'historique
Tout fonctionne bien sur MQL4 sans timer.
Eh bien, cela n'existe pas dans MQL4, de même que les structures et les classes n'y existent pas, proposez-vous de les abandonner ici ?
IMHO
Utiliser ou non la bibliothèque standard est une question de goût pour chacun (au pire, on ne peut utiliser que son propre code), mais renoncer à tous les avantages simplement parce qu'ils ne sont pas disponibles dans MT4 n'est pas très raisonnable......
Je n'ai pas écrit cela du tout.
J'ai écrit que MQL5 a des problèmes et produit des données erronées dans certaines combinaisons d'instruments.
Par exemple : si l'EURJPY ou l'EURGBP est superposé au graphique de l'EURUSD, tout va bien.
Mais si vous superposez EURCAD, les données sur le graphique sont erronées, alors que dans MQL4, il n'y avait pas d'erreur de ce type.
Je n'ai pas du tout écrit à ce sujet.
J'ai écrit que MQL5 a des problèmes et produit des données erronées avec certaines combinaisons d'instruments.
Par exemple : si l'EURJPY ou l'EURGBP est superposé au graphique de l'EURUSD, tout est normal.
Mais si on superpose EURCAD, les données sur le graphique avec une erreur, alors que dans MQL4 ce n'était pas le cas, il n'y a pas d'erreur.
Je n'ai pas du tout écrit à ce sujet.
J'ai écrit que MQL5 a des problèmes et produit des données erronées avec certaines combinaisons d'instruments.
Par exemple : si l'EURJPY ou l'EURGBP est superposé au graphique de l'EURUSD, tout est normal.
Mais si vous superposez EURCAD, les données sur le graphique avec une erreur, alors que dans MQL4 ce n'était pas le cas, il n'y a pas d'erreur.
Veuillez me donner un exemple avec une erreur.
//--------- Option avec MQL4 ---------
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Aqua
extern string InstrumentName = "EURCAD" ;
double Buffer[] ;
SetIndexBuffer(0,Buffer) ; // Assigne le tableau au tampon
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Style de ligne
while(i >= 0){//-- Moving from right to left (i.e. from the highest to the 0 bar which is still being formed) --
Buffer[i] = (iHigh(InstrumentName,0,i) + iClose(InstrumentName,0,i) + iLow(InstrumentName,0,i)) / 3 ;
i--;//-- next Bar
}/next (while)
//----------- Maintenant presque la même variante dans MQL5 --------
#property indicator_separate_window // L'indicateur. est dessiné dans une fenêtre séparée
#property indicator_buffers 1
#property indicator_plots 1
#property indicator_type1 DRAW_LINE
#property indicator_color1 Aqua
input string InstrumentName = "EURCAD" ;
double Buffer[] ;
int handle1 ;
copied=CopyClose(InstrumentName,0,0,CountBars,Buffer) ;
//--Nous lançons maintenant sur EURUSD.
//--Il importe peu sur quel instrument nous plaçons l'indicateur, le graphique ne doit pas changer.
Veuillez insérer le code correctement, cela facilite la compréhension.
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Aqua
extern string InstrumentName = "EURCAD" ;
double Buffer[] ;
int init()
{
SetIndexBuffer(0,Buffer) ; // Assigne le tableau au tampon
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Style de ligne
}
int start()
{
while(i >= 0){
Buffer[i] = (iHigh(InstrumentName,0,i) + iClose(InstrumentName,0,i) + iLow(InstrumentName,0,i)) / 3 ;
i-- ;//-- Barre suivante
}//next (while)
}
//----------- Maintenant presque la même variante dans MQL5 --------
#property indicator_separate_window // L'indicateur. est dessiné dans une fenêtre séparée
#property indicator_buffers 1
#property indicator_plots 1
#property indicator_type1 DRAW_LINE
#property indicator_color1 Aqua
input string InstrumentName = "EURCAD" ;
double Buffer[] ;
int OnInit()
{
{ IndicatorSetString(INDICATOR_SHORTNAME,InstrumentName) ;
SetIndexBuffer(0,Buffer,INDICATOR_DATA) ;
}
int OnCalculate(....)
{
copied=CopyClose(InstrumentName,0,0,0,CountBars,Buffer) ;
}
//--Nous le lançons maintenant sur EURUSD.
//--Il importe peu sur quel instrument nous plaçons l'indicateur, le graphique ne doit pas changer.
Veuillez créer un exemple reproductible. En d'autres termes, vous avez besoin d'un code prêt à l'emploi que vous pouvez compiler, placer sur un graphique et obtenir des résultats.
Sans cela, peu de gens comprendront de quoi nous parlons.Je vais aider ceux qui sont privés de conscience.
Idéalement, il ne devrait pas, mais je l'ai fait grincer avec des algorithmes il n'est apparu que sur 1 TF sur les autres a montré catégoriquement le vide .....
même après une heure de test.....
et des tentatives de téléchargement de l'historique