Ich habe verschiedene Optionen ausprobiert. Das Ergebnis ist das gleiche. Ich verstehe nicht, wie das passieren kann. Irgendwann beginnt iLowest(NULL,0,MODE_LOW,NumberLastBar_beg,NumberLastBar_end); plötzlich mit der Berechnung eines größeren Taktbereichs. Bitte um Rat, wer es versteht, mein Kopf ist kaputt. Danke.
static int PrevTime=0; //+------------------------------------------------------------------+ //|| //+------------------------------------------------------------------+ int start() { if(Time[0]<=PrevTime) return(0); PrevTime=Time[0]; ////////////// // CheckForLongTimeClose_Sell(); double pBid=NormalizeDouble(Bid,Digits),Low_Now=Low[1]; //////////// int n_beg=1;// Index des Tages, in diesem Fall ist 1 der gestrige Tag datetime DayTime_beg=iTime(NULL,PERIOD_D1,n_beg); // Beginn des Tages "n" in Sekunden intLastBar_beg=iBarShift(NULL,0,DayTime_beg);
int n_end=0;// Index des Tages, in diesem Fall ist 1 der gestrige Tag datetime DayTime_end=iTime(NULL,PERIOD_D1,n_end); // Beginn des Tages "n" in Sekunden int NumberLastBar_end=iBarShift(NULL,0,DayTime_end); Print(" NumberLastBar_beg= ",NumberLastBar_beg," NumberLastBar_end= ",NumberLastBar_end); //---------------------------------------------------------------------
Wenn Sie den Code nur in einem Echtgeld- oder Demokonto verwenden, ist dies bequemer. Bei der Verwendung des Strategieprüfers können jedoch Probleme auftreten.
Zum Beispiel, was? Warum ich nirgendwo Probleme habe, Sie aber "vielleicht".
Ich habe verschiedene Varianten ausprobiert. Das Ergebnis ist das gleiche. Wie das sein kann, ist völlig unklar. Irgendwann beginnt iLowest(NULL,0,MODE_LOW,NumberLastBar_beg,NumberLastBar_end); plötzlich mit der Berechnung eines größeren Taktbereichs. Bitte um Rat, wer es versteht, mein Kopf ist kaputt. Danke.
staticint PrevTime=0;
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+int start()
{
if(Time[0]<=PrevTime) return(0);
PrevTime=Time[0];
//////////////// CheckForLongetivityClose_Sell();double pBid=NormalizeDouble(Bid,Digits),Low_Now=Low[1];
////////////int n_beg=1; // индекс дня, в данном случае 1 - вчерашний деньdatetime DayTime_beg=iTime(NULL,PERIOD_D1,n_beg); // Начало дня "n" в секундахint NumberLastBar_beg=iBarShift(NULL,0,DayTime_beg);
int n_end=0; // индекс дня, в данном случае 1 - вчерашний деньdatetime DayTime_end=iTime(NULL,PERIOD_D1,n_end); // Начало дня "n" в секундахint NumberLastBar_end=iBarShift(NULL,0,DayTime_end);
Print(" NumberLastBar_beg= ",NumberLastBar_beg," NumberLastBar_end= ",NumberLastBar_end);
//---------------------------------------------------------------------datetime Time_Check_Low_Day=Time[iLowest(NULL,0,MODE_LOW,NumberLastBar_beg,NumberLastBar_end)];
int i=iLowest(NULL,0,MODE_LOW,NumberLastBar_beg,NumberLastBar_end);
Print(" i=",i);
string time_check_low_day=TimeToStr(Time_Check_Low_Day,TIME_MINUTES);
/////////////Print(" time_check_low_day=",time_check_low_day);
datetime time_check_verify=StrToTime("H_check_beg:M_check_beg");
return(0);
}
Achten Sie auf diese Zeilen.
datetime Time_Check_Low_Day=Time[iLowest(NULL,0,MODE_LOW,NumberLastBar_beg,NumberLastBar_end)];//iLowest раз
int i=iLowest(NULL,0,MODE_LOW,NumberLastBar_beg,NumberLastBar_end); //iLowest два
Diese Zeilen sollten vertauscht werden.
int i=iLowest(NULL,0,MODE_LOW,NumberLastBar_beg,NumberLastBar_end); // исправлять не стал
datetime Time_Check_Low_Day=Time[i];
2) NumberLastBar_beg ist die Nummer des gestrigen Balkens, wobei dieser Wert durch die Anzahl der zu suchenden Balken ersetzt werden kann.
3. Wenn Sie den Code einfügen, finden Sie die Schaltfläche SRC in der Symbolleiste des Texteingabefensters.
Zum Beispiel, welche? Warum habe ich nirgendwo ein Problem damit, aber Sie haben "vielleicht" ein Problem damit.
Ich bin ein bisschen grüblerisch. Ich möchte den Code des bestehenden Indikators nicht an einer Stelle ausgeben, an der er deutlich zu sehen ist (wenn nicht eine separate Bedingung für den Prüfer angewendet wird). Sowie zu überlegen, was man auf seiner Basis gesondert für Klarheit verordnen kann.
Aber wenn Sie darauf bestehen - natürlich, ich werde höchstwahrscheinlich beginnen, darüber nachzudenken, was kann die komplizierte "Füllung" er hat, um etwas anderes dort zu verschreiben ersetzen.
Ich habe verschiedene Optionen ausprobiert. Das Ergebnis ist das gleiche. Ich verstehe nicht, wie das passieren kann. Irgendwann beginnt iLowest(NULL,0,MODE_LOW,NumberLastBar_beg,NumberLastBar_end); plötzlich mit der Berechnung eines größeren Taktbereichs. Bitte um Rat, wer es versteht, mein Kopf ist kaputt. Danke.

4:08:36 Zeit+iLowest Test gestartet14:08:36 2004.09.29 00:00 Zeit+iTiefstwert EURUSD,H1: AnzahlLetzteBar_beg= 24 AnzahlLetzteBar_end= 0
14:08:36 2004.09.29 00:00 Zeit+iTiefstwert EURUSD,H1: i=18
14:08:36 2004.09.29 00:00 Zeit+iTiefstwert EURUSD,H1: time_check_low_day=06:00
14:08:39 2004.09.29 01:00 Zeit+iTiefstwert EURUSD,H1: AnzahlLetzteBar_beg= 25 AnzahlLetzteBar_end= 1
14:08:39 2004.09.29 01:00 Zeit+iTiefstwert EURUSD,H1: i=19
14:08:39 2004.09.29 01:00 Zeit+iTiefstwert EURUSD,H1: time_check_low_day=06:00
14:08:39 2004.09.29 02:00 Zeit+iTiefstwert EURUSD,H1: AnzahlLetzteBar_beg= 26 AnzahlLetzteBar_end= 2
14:08:39 2004.09.29 02:00 Zeit+iTiefstwert EURUSD,H1: i=20
14:08:39 2004.09.29 02:00 Zeit+iTiefstwert EURUSD,H1: time_check_low_day=06:00
14:08:40 2004.09.29 03:00 Zeit+iTiefstwert EURUSD,H1: AnzahlLetzteBar_beg= 27 AnzahlLetzteBar_end= 3
14:08:40 2004.09.29 03:00 Zeit+iTiefstwert EURUSD,H1: i=21
14:08:40 2004.09.29 03:00 Zeit+iTiefstwert EURUSD,H1: time_check_low_day=06:00
14:08:41 2004.09.29 04:00 Zeit+iTiefstwert EURUSD,H1: AnzahlLetzteBar_beg= 28 AnzahlLetzteBar_end= 4
14:08:41 2004.09.29 04:00 Zeit+iTiefstwert EURUSD,H1: i=31
14:08:41 2004.09.29 04:00 Zeit+iTiefstwert EURUSD,H1: time_check_low_day=21:00
Code:
static int PrevTime=0;
//+------------------------------------------------------------------+
//||
//+------------------------------------------------------------------+
int start()
{
if(Time[0]<=PrevTime) return(0);
PrevTime=Time[0];
//////////////
// CheckForLongTimeClose_Sell();
double pBid=NormalizeDouble(Bid,Digits),Low_Now=Low[1];
////////////
int n_beg=1;// Index des Tages, in diesem Fall ist 1 der gestrige Tag
datetime DayTime_beg=iTime(NULL,PERIOD_D1,n_beg); // Beginn des Tages "n" in Sekunden
intLastBar_beg=iBarShift(NULL,0,DayTime_beg);
int n_end=0;// Index des Tages, in diesem Fall ist 1 der gestrige Tag
datetime DayTime_end=iTime(NULL,PERIOD_D1,n_end); // Beginn des Tages "n" in Sekunden
int NumberLastBar_end=iBarShift(NULL,0,DayTime_end);
Print(" NumberLastBar_beg= ",NumberLastBar_beg," NumberLastBar_end= ",NumberLastBar_end);
//---------------------------------------------------------------------
datetime Time_Check_Low_Day=Time[iLowest(NULL,0,MODE_LOW,NumberLastBar_beg,NumberLastBar_end)];
int=iLowest(NULL,0,MODE_LOW,NumberLastBar_beg,NumberLastBar_end);
Print(" i=",i);
string time_check_low_day=TimeToStr(Time_Check_Low_Day,TIME_MINUTES);
/////////////
Print(" time_check_low_day=",time_check_low_day;)
datetime time_check_verify=StrToTime("H_check_beg:M_check_beg");
zurück(0);
}
Wenn Sie den Code nur in einem Echtgeld- oder Demokonto verwenden, ist dies bequemer. Bei der Verwendung des Strategieprüfers können jedoch Probleme auftreten.
Zum Beispiel, was? Warum ich nirgendwo Probleme habe, Sie aber "vielleicht".
Es gibt einen Teil, den ich nicht verstehe.
Ich erhalte einen Mist wie 5e-005.0 im Drucker.
PreisAlter Wert
Wenn ich das alles zusammenzähle, warum sieht es dann so aus, wenn ich es abziehe?Das Verwirrendste ist, dass es in diesem speziellen Abschnitt der Geschichte passiert, in anderen ist es normal.
Ich habe verschiedene Varianten ausprobiert. Das Ergebnis ist das gleiche. Wie das sein kann, ist völlig unklar. Irgendwann beginnt iLowest(NULL,0,MODE_LOW,NumberLastBar_beg,NumberLastBar_end); plötzlich mit der Berechnung eines größeren Taktbereichs. Bitte um Rat, wer es versteht, mein Kopf ist kaputt. Danke.
4:08:36 Zeit+iLowest Test gestartet14:08:36 2004.09.29 00:00 Zeit+iTiefstwert EURUSD,H1: AnzahlLetzteBar_beg= 24 AnzahlLetzteBar_end= 0
14:08:36 2004.09.29 00:00 Zeit+iTiefstwert EURUSD,H1: i=18
14:08:36 2004.09.29 00:00 Zeit+iTiefstwert EURUSD,H1: time_check_low_day=06:00
14:08:39 2004.09.29 01:00 Zeit+iTiefstwert EURUSD,H1: AnzahlLetzteBar_beg= 25 AnzahlLetzteBar_end= 1
14:08:39 2004.09.29 01:00 Zeit+iTiefstwert EURUSD,H1: i=19
14:08:39 2004.09.29 01:00 Zeit+iTiefstwert EURUSD,H1: time_check_low_day=06:00
14:08:39 2004.09.29 02:00 Zeit+iTiefstwert EURUSD,H1: AnzahlLetzteBar_beg= 26 AnzahlLetzteBar_end= 2
14:08:39 2004.09.29 02:00 Zeit+iTiefstwert EURUSD,H1: i=20
14:08:39 2004.09.29 02:00 Zeit+iTiefstwert EURUSD,H1: time_check_low_day=06:00
14:08:40 2004.09.29 03:00 Zeit+iTiefstwert EURUSD,H1: AnzahlLetzteBar_beg= 27 AnzahlLetzteBar_end= 3
14:08:40 2004.09.29 03:00 Zeit+iTiefstwert EURUSD,H1: i=21
14:08:40 2004.09.29 03:00 Zeit+iTiefstwert EURUSD,H1: time_check_low_day=06:00
14:08:41 2004.09.29 04:00 Zeit+iTiefstwert EURUSD,H1: AnzahlLetzteBar_beg= 28 AnzahlLetzteBar_end= 4
14:08:41 2004.09.29 04:00 Zeit+iTiefstwert EURUSD,H1: i=31
14:08:41 2004.09.29 04:00 Zeit+iTiefstwert EURUSD,H1: time_check_low_day=21:00
Code:
Achten Sie auf diese Zeilen.
Diese Zeilen sollten vertauscht werden.
int i=iLowest(NULL,0,MODE_LOW,NumberLastBar_beg,NumberLastBar_end); // исправлять не стал datetime Time_Check_Low_Day=Time[i];2) NumberLastBar_beg ist die Nummer des gestrigen Balkens, wobei dieser Wert durch die Anzahl der zu suchenden Balken ersetzt werden kann.
3. Wenn Sie den Code einfügen, finden Sie die Schaltfläche SRC in der Symbolleiste des Texteingabefensters.
Zum Beispiel, welche? Warum habe ich nirgendwo ein Problem damit, aber Sie haben "vielleicht" ein Problem damit.
Ich bin ein bisschen grüblerisch. Ich möchte den Code des bestehenden Indikators nicht an einer Stelle ausgeben, an der er deutlich zu sehen ist (wenn nicht eine separate Bedingung für den Prüfer angewendet wird). Sowie zu überlegen, was man auf seiner Basis gesondert für Klarheit verordnen kann.
Aber wenn Sie darauf bestehen - natürlich, ich werde höchstwahrscheinlich beginnen, darüber nachzudenken, was kann die komplizierte "Füllung" er hat, um etwas anderes dort zu verschreiben ersetzen.Lesen Sie die Hilfe zu iLowest() sorgfältig durch. Nach welcher Anzahl von Elementen soll gesucht werden? Und was bedeutet das?
Achten Sie auf diese Zeilen
Es ist besser, diese Zeilen zu vertauschen.
2) NumberLastBar_beg ist die Nummer des ersten Balkens von gestern, und Sie geben diesen Wert anstelle der Anzahl der zu suchenden Balken ein.
Die i-Variable dient hier nur zu Kontrollzwecken, für Print. Ich habe beim Einstellen der Stäbe einen Fehler gemacht. Danke für den Tipp!