MT4-Tester gibt keine Informationen aus anderen Zeitrahmen

 
Beim Erlernen von MQL4 habe ich festgestellt, dass zumindest mein Tester keine Informationen
von anderen TFs gibt. Hier ist der Prüfcode, er kann an jeden Expert Advisor angehängt werden. In meinem Tester
ändern sich nur die Anzeigen der TF, andere bleiben an der gleichen Stelle.
Kommentar (
"\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));
Tried each on every TF, same story - readings change only for that TF
on which is tested. Das Internet klärt die Situation nicht.
Bitte beraten, ist es ein Fix oder ich frage nicht da.
danke für Aufmerksamkeit!
 
es ist eine Tatsache. :(
Und die aktuellen Werte stehen, d.h. aus der Echtzeit.
Und beim Testen auf gebildeten Balken mit einem neuen Balken, ändert sich der vorherige... :О)
#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)));
}
Als Ergebnis haben wir im Tester
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 писал(а) >>
Beim Erlernen von MQL4 habe ich festgestellt, dass zumindest mein Tester keine Informationen gibt
von anderen TFs. Hier ist der Prüfcode, er kann mit jedem Expert Advisor verbunden werden.
Es kann für jeden Expert Advisor aufgehängt werden, in meinem Testgerät ändern sich nur die Werte dieser TF.
Kommentar (
"\n", " ----------------- = ",iOpen(Symbol(),1,1)," - ", iClose(Symbol(),1,1),
"\n", " ----------------- = ",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))
Ich habe es bei allen TF ausprobiert, immer das Gleiche - die Messwerte ändern sich nur bei der TF
auf dem sie getestet wird. Netzintern konnte die Situation nicht geklärt werden.
Bitte beraten, ist es ein Thema für die Behandlung oder ich frage nicht da.
Vielen Dank für Ihr Feedback!


Mit dem richtigen Ansatz funktioniert alles bestens.
 
Vinin >>:


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


Verzeihung, könnten Sie hier mehr ins Detail gehen?
 
vladv002 писал(а) >>


Entschuldigen Sie, könnten Sie hier mehr ins Detail gehen?


Und was ist das zu lösende Problem?

 
Vinin >>:


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

Das bekommen wir

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
Wenn wir im obigen Code den Ausgabeblock in

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 писал(а) >>


>>Welches Problem haben Sie zu lösen?


Ja, ich bin auch neugierig. Kunden bestellen oft Handwerksarbeiten mit mehreren Zeitrahmen, und Sie können sie nur live testen...
Und müssen wochenlang auf die Bezahlung warten.

Klären Sie mich auf, wie die Funktionen iClose-iOpen mit einem anderen Zeitrahmen als Null und dem zu testenden Zeitrahmen funktionieren und wie der Code für den Tester mit dem Code für den realen Zeitrahmen übereinstimmen kann.
 
api >>:


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

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

Und ein Experte kann grundsätzlich nicht geprüft werden.

Es reicht nicht aus, dass ein Mehrwährungszass...

 
Vinin >>:


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

Ganz einfach - wir zeichnen 9 Quadrate in einer Linie auf das Diagramm - wir schattieren entsprechend der Indikatorwerte
was wir für den Test verwenden werden - grün oder rot.
Ich versuche, im Detail zu verstehen, was durch Zecken bewegt, aber es gibt eine Falle.
Es gibt einige Informationen im Internet, aber nicht unter https://www.mql5.com/ru/articles/1385. In anderen Artikeln gibt es viel Wasser, aber
nicht dasselbe. Ich habe versucht, Variablen zu ersetzen und sie in ein Array zu setzen, aber das Ergebnis ist Null, oder besser gesagt
Das Ergebnis ist Null, oder genauer gesagt, es gibt kein Ergebnis, weil es keine Daten gibt.
Um die Situation richtig einschätzen, geschweige denn ein Programm schreiben zu können, muss ich genau wissen
Jetzt stellt sich heraus, dass das eine echt ist und das andere im Tester falsch.
Bleibt noch, die Demo in ON-Line zu überprüfen - habe ich noch nicht getan!
Gestern habe ich bemerkt, dass etwas nicht stimmt.

 

Der Prüfer sieht zu Beginn der Prüfung nur die letzten 1000 Takte. Wenn Sie einen Expert Advisor auf M1 einstellen, sehen Sie nicht mehr als 1000 Minuten zurück (zum Zeitpunkt des Testbeginns).

Ich löse dieses Problem, indem ich das Startdatum des Testers viel früher festlege und das gewünschte Datum im Expert Advisor selbst vorschreibe.

 
sak120 >>:

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

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

Es wurde behauptet, dass zur Erzeugung der Ticks Minutendaten verwendet werden.

Aber der Minutenwert selbst, wie in meinem Beispiel zu sehen - der aktuelle Wert - hat nichts mit dem Minutenverlauf zu tun.

Und woher haben Sie die Information über 1000 Barren?

Vielleicht haben Sie die Verlaufseigenschaften auf diese Weise konfiguriert?

Aber in meinem Fall ist das nicht so...

----

Es ist eine Tatsache, dass es vor Beginn des Testzeitraums nicht mehr als 100 Balken an Daten gibt.

Auch das ist eine Tatsache. :(