Le testeur MT4 ne donne pas d'informations sur les autres périodes de temps.

 
Dans le processus d'apprentissage de MQL4, j'ai découvert qu'au moins mon testeur ne donne pas d'informations
à partir d'autres TF. Voici le code de vérification, il peut être attaché à n'importe quel Expert Advisor. Dans mon testeur
, seules les indications du TF changent, tandis que les autres restent au même endroit.
Commentaire (
"\n", " -----------1------ = ",iOpen(Symbol(),1,1)," - ", iClose(Symbol(),1,1),
"\n", " -----------2------ = ",iOpen(Symbol(),5,1)," - ", iClose(Symbol(),5,1),
"\n", " -----------3------ = ",iOpen(Symbol(),15,1)," - ",iClose(Symbol(),15,1),
"\n", " -----------4------ = ",iOpen(Symbol(),30,1)," - ", iClose(Symbol(),30,1),
"\n", " -----------5------ = ",iOpen(Symbol(),60,1)," - ", iClose(Symbol(),60,1),
"\n", " -----------6------ = ", iOpen(Symbol(),240,1)," - ", iClose(Symbol(),240,1),
"\n", " -----------7------ = ",iOpen(Symbol(),1440,1)," - ", iClose(Symbol(),1440,1),
"\n", " -----------8------ = ",iOpen(Symbol(),10080,1)," - ", iClose(Symbol(),10080,1),
"\n", " -----------9------ = ",iOpen(Symbol(),43200,1)," - ", iClose(Symbol(),43200,1)) ;
Essayé sur chaque TF, même histoire - les lectures changent seulement pour le TF
sur lequel est testé. L'Internet n'éclaircit pas la situation.
S'il vous plaît conseiller, est-il fixé ou je demande pas là.
merci pour l'attention !
 
c'est un fait. :(
Et les valeurs actuelles sont debout, c'est à dire en temps réel.
Et quand on teste sur des barres formées avec une nouvelle barre, la précédente change... :О)
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_style1 0
#property indicator_color1 Orange
#property indicator_width1 2
#property indicator_style2 0
#property indicator_color2 BlueViolet
#property indicator_width2 2
extern bool Test=false;
//03/04/10
//SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 2);

//---- buffers
double DMA[];string PARA;int hFile;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,DMA);
SetIndexShift(0,0);
SetIndexLabel(0,"inv");
PARA=Symbol();
if (Test) hFile=FileOpen("Dt"+Symbol()+Period()+".csv",FILE_CSV |FILE_WRITE,";");


//if (iClose(PARA,0,0)<0.00001) {Alert (PARA," - not presents...");deinit();
// return (-1);}
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
if (Test) FileClose(hFile);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{

//----
int counted_bars=IndicatorCounted();
int i,N;double Value;
N=Bars-counted_bars;

if(counted_bars<0) return(-1);
//---- last counted bar will be recounted

if (N==0) return(0);

if (Test){ FileWrite(hFile,"--1 ",StrTime(iTime(Symbol(),Period(),1)),iClose(PARA,0,1));
FileWrite(hFile,"--0 ",StrTime(iTime(Symbol(),Period(),0)),iClose(PARA,0,0));
}
for (i=N-1; i>=0; i--)
{
Value=iClose(PARA,0,i);

// Print (i,"=",Value);
DMA[i]=Value;
}

return(0);
}
//+------------------------------------------------------------------+
string StrTime(datetime IT){
return(StringConcatenate(TimeYear(IT),".",TimeMonth(IT),".",TimeDay(IT)
, "-",TimeHour(IT),"^",TimeMinute(IT),"^",TimeSeconds(IT)));
}
En conséquence, nous avons dans le testeur
0
2009.2.3-10^15^0
1.2849

1
2009.2.3-10^15^0
1.2844

0
2009.2.3-10^30^0
1.2845

1 2009.2.3-10^30^0 1.2852
0 2009.2.3-10^45^0 1.2852
1 2009.2.3-10^45^0 1.2841
0 2009.2.3-11^0^0 1.2841
1 2009.2.3-11^0^0 1.2834
0 2009.2.3-11^15^0 1.2833
1 2009.2.3-11^15^0 1.2814
0 2009.2.3-11^30^0 1.2814
1 2009.2.3-11^30^0 1.2813
0 2009.2.3-11^45^0 1.2813
1 2009.2.3-11^45^0 1.2823
0 2009.2.3-12^0^0 1.2822
1 2009.2.3-12^0^0 1.281
0 2009.2.3-12^15^0 1.281
1 2009.2.3-12^15^0 1.2824
0 2009.2.3-12^30^0 1.2823
1 2009.2.3-12^30^0 1.2829
0 2009.2.3-12^45^0 1.2829
1 2009.2.3-12^45^0 1.2824
0 2009.2.3-13^0^0 1.2824
1 2009.2.3-13^0^0 1.2835
0 2009.2.3-13^15^0 1.2835
1 2009.2.3-13^15^0 1.2838
0 2009.2.3-13^30^0 1.2838
1 2009.2.3-13^30^0 1.2836
0 2009.2.3-13^45^0 1.2836
 
vladv002 писал(а) >>
Dans le processus d'apprentissage de MQL4, j'ai découvert qu'au moins mon testeur ne donne pas d'informations...
d'autres TF. Voici le code de contrôle, il peut être attaché à n'importe quel conseiller expert.
Il peut être suspendu pour n'importe quel conseiller expert, dans mon testeur, seules les lectures de ce TF changent.
Commentaire (
"\n", " -----------1------ = ",iOpen(Symbol(),1,1)," - ", iClose(Symbol(),1,1),
"\n", " -----------2------ = ",iOpen(Symbol(),5,1)," - ", iClose(Symbol(),5,1),
"\n", " -----------3------ = ",iOpen(Symbol(),15,1)," - ", iClose(Symbol(),15,1),
"\n", " -----------4------ = ",iOpen(Symbol(),30,1)," - ", iClose(Symbol(),30,1),
"\n", " -----------5------ = ",iOpen(Symbol(),60,1)," - ", iClose(Symbol(),60,1),
"\n", " -----------6------ = ",iOpen(Symbol(),240,1)," - ", iClose(Symbol(),240,1),
"\n", " -----------7------ = ",iOpen(Symbol(),1440,1)," - ", iClose(Symbol(),1440,1),
"\n", " -----------8------ = ",iOpen(Symbol(),10080,1)," - ", iClose(Symbol(),10080,1),
"\n", " -----------9------ = ",iOpen(Symbol(),43200,1)," - ", iClose(Symbol(),43200,1))
J'ai essayé sur chaque TF, même histoire - les lectures changent seulement pour le TF.
sur lequel il est testé. Le réseau n'a pas réglé la situation.
S'il vous plaît conseiller, est-il un sujet pour le traitement ou je demande pas là.
Merci pour vos commentaires !


Avec la bonne approche, tout fonctionne bien.
 
Vinin >>:


При правильном подходе все работает нормально.


Je suis désolé, pourriez-vous donner plus de détails ici ?
 
vladv002 писал(а) >>


Excusez-moi, pourriez-vous entrer dans les détails ?


Et quel est le problème à résoudre ?

 
Vinin >>:


А какую задачу нужно решить?

Voici ce que nous obtenons

1 2009.7.10-22^45^0 1.39478
0 2009.7.10-23^0^0 1.39476
--0M 2009.7.10-23^0^0 1.3488
1 2009.7.10-23^0^0 1.39476
0 2009.7.10-23^15^0 1.39475
--0M 2009.7.10-23^15^0 1.3488
1 2009.7.10-23^15^0 1.39475
0 2009.7.10-23^30^0 1.39472
--0M 2009.7.10-23^30^0 1.3488
1 2009.7.10-23^30^0 1.39409
0 2009.7.10-23^45^0 1.39409
--0M 2009.7.10-23^45^0 1.3488
1 2009.7.10-23^45^0 1.39353
0 2009.7.13-1^0^0 1.39461
--0M 2009.7.13-1^0^0 1.3488
Si dans le code ci-dessus nous changeons le bloc de sortie en

if (Test){ FileWrite(hFile,"--1 ",StrTime(iTime(Symbol(),Period(),1)),iClose(PARA,0,1));
FileWrite(hFile,"--0 ",StrTime(iTime(Symbol(),Period(),0)),iClose(PARA,0,0));
FileWrite(hFile,"--0M ",StrTime(iTime(Symbol(),Period(),0)),iClose(PARA,1,0));
}

 
Vinin писал(а) >>


>>Quel problème devez-vous résoudre ?


Oui, je suis aussi curieux. Les clients commandent souvent des bricolages à plusieurs échéances, et vous ne pouvez les tester qu'en direct...
Et doivent attendre des semaines pour être payés.

Éclairez-moi sur la façon de faire fonctionner les fonctions iClose-iOpen avec un timeframe autre que zéro et le timeframe testé. Et de faire coïncider le code pour le testeur avec le code pour le vrai.
 
api >>:


Да, мне тоже интересно. Заказчики часто заказывают мультитаймфреймовые поделки, а тестировать можно только вживую...
И приходится ждать оплаты неделями.

Просветите, как заставить работать функции iClose-iOpen и пр. с таймфреймом отличным от нуля и от тестируемого таймфрейма. и чтобы код для тестера совпадал с кодом для реала.

Et un expert ne peut pas être testé par principe.

Il ne suffit pas qu'un zass multi-devises...

 
Vinin >>:


А какую задачу нужно решить?

Assez simple - nous dessinons 9 carrés en ligne sur le graphique - nous les ombrerons en fonction des lectures de l'indicateur.
que nous allons utiliser pour le test - vert ou rouge.
J'essaie de comprendre en détail ce qui se déplace par ticks, mais il y a un piège.
Il y a quelques informations sur Internet, mais pas sur https://www.mql5.com/ru/articles/1385. Il y a beaucoup d'eau dans d'autres articles mais
ne sont pas les mêmes. J'ai essayé de substituer des variables et de les mettre dans un tableau, mais le résultat est nul, ou plutôt
Le résultat est nul, ou pour être plus précis, il n'y a pas de résultat car il n'y a pas de données.
Afin d'évaluer correctement la situation, et encore moins d'écrire un programme, je dois connaître exactement
Il s'avère maintenant qu'une chose est réelle et que l'autre est fausse dans le testeur.
Reste à tester sur la démo en ON-Line - je n'ai pas encore vérifié !
Hier, j'ai remarqué que quelque chose n'allait pas.

 

Le testeur ne voit que les 1000 dernières barres au début du test. Si vous définissez un conseiller expert sur M1, vous ne verrez pas plus de 1000 minutes (au moment du début du test).

Je résous ce problème en fixant la date de début du test beaucoup plus tôt, et en prescrivant la date requise dans le conseiller expert lui-même.

 
sak120 >>:

Тестер видит только 1000 последних баров в начале тестирования. Если поставил эксперт на M1, то дальше 1000 минут назад не увидишь (в момент старта тестирования).

Решаю эту проблему постановкой даты старта тестера намного раньше, а в самом эксперте прописываю нужную дату.

Il a été affirmé que les données de la minute sont utilisées pour générer les ticks.

Mais la valeur de la minute elle-même, comme on le voit dans mon exemple - la valeur actuelle - n'a rien à voir avec l'historique de la minute.

Et où avez-vous trouvé l'information sur les 1000 barres ?

Peut-être avez-vous configuré les propriétés de l'historique de cette façon ?

Mais ce n'est pas le cas pour moi...

----

C'est un fait qu'il n'y a pas plus de 100 barres de données avant le début de la période de test.

C'est également un fait. :(