J'ai essayé différentes options. Le résultat est le même. Je ne comprends pas comment cela peut arriver. A un moment donné, le iLowest(NULL,0,MODE_LOW,NumberLastBar_beg,NumberLastBar_end) ; commence soudainement à calculer une plage de barres plus large. S'il vous plaît, conseillez ceux qui comprennent, j'ai la tête cassée. Merci.
statique int PrevTime=0 ; //+------------------------------------------------------------------+ //|| //+------------------------------------------------------------------+ int start() { si(Time[0]<=PrevTime) return(0) ; PrevTime=Time[0] ; ////////////// // CheckForLongTimeClose_Sell() ; double pBid=NormalizeDouble(Bid,Digits),Low_Now=Low[1] ; //////////// int n_beg=1 ;// indice du jour, dans ce cas 1 est hier datetime DayTime_beg=iTime(NULL,PERIOD_D1,n_beg) ; // début du jour "n" en secondes intLastBar_beg=iBarShift(NULL,0,DayTime_beg) ;
int n_end=0 ;// indice du jour, dans ce cas 1 est le jour d'hier datetime DayTime_end=iTime(NULL,PERIOD_D1,n_end) ; // début de la journée "n" en secondes int NumberLastBar_end=iBarShift(NULL,0,DayTime_end) ; Print(" NumberLastBar_beg= ",NumberLastBar_beg," NumberLastBar_end= ",NumberLastBar_end) ; //---------------------------------------------------------------------
Si vous n'utilisez le code que sur un compte réel ou de démonstration, c'est plus pratique. Cependant, dans le testeur de stratégie, des problèmes peuvent sur venir lors de son utilisation.
Par exemple, comme quoi ? Pourquoi je n'ai aucun problème nulle part, mais vous "pouvez avoir des problèmes".
J'ai essayé différentes variantes. Le résultat est le même. La façon dont cela peut être le cas n'est absolument pas claire. A un moment donné, le iLowest(NULL,0,MODE_LOW,NumberLastBar_beg,NumberLastBar_end) ; commence soudainement à calculer une plage de barres plus large. S'il vous plaît, conseillez ceux qui comprennent, j'ai la tête cassée. Merci.
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);
}
Faites attention à ces lignes.
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 два
Ces lignes doivent être échangées.
int i=iLowest(NULL,0,MODE_LOW,NumberLastBar_beg,NumberLastBar_end); // исправлять не стал
datetime Time_Check_Low_Day=Time[i];
2. NumberLastBar_beg est le numéro de la barre d'hier, alors que cette valeur est mise à la place du nombre de barres à rechercher.
3. Lorsque vous collez le code, trouvez le bouton SRC dans la barre d'outils de la fenêtre de saisie de texte.
Par exemple, lesquels ? Comment se fait-il que je n'aie aucun problème avec cette situation nulle part, mais que vous ayez "peut-être" un problème avec elle.
Je suis un peu pensif. Je ne veux pas exposer le code de l'indicateur existant, où il peut être clairement vu (si ce n'est en appliquant une condition distincte pour le testeur). Ainsi que de penser, ce qu'il faut prescrire sur sa base séparée pour la clarté.
Cependant, si vous insistez - bien sûr, je vais probablement m'engager dans une réflexion sur la manière de remplacer la "farce" compliquée qu'il a afin d'y prescrire autre chose.
J'ai essayé différentes options. Le résultat est le même. Je ne comprends pas comment cela peut arriver. A un moment donné, le iLowest(NULL,0,MODE_LOW,NumberLastBar_beg,NumberLastBar_end) ; commence soudainement à calculer une plage de barres plus large. S'il vous plaît, conseillez ceux qui comprennent, j'ai la tête cassée. Merci.

4:08:36 Time+iLowest test commencé14:08:36 2004.09.29 00:00 Time+iLowest EURUSD,H1 : NumberLastBar_beg= 24 NumberLastBar_end= 0
14:08:36 2004.09.29 00:00 Time+iLowest EURUSD,H1 : i=18
14:08:36 2004.09.29 00:00 Heure+iLowest EURUSD,H1 : time_check_low_day=06:00
14:08:39 2004.09.29 01:00 Time+iLowest EURUSD,H1 : NumberLastBar_beg= 25 NumberLastBar_end= 1
14:08:39 2004.09.29 01:00 Time+iLowest EURUSD,H1 : i=19
14:08:39 2004.09.29 01:00 Heure+iLowest EURUSD,H1 : time_check_low_day=06:00
14:08:39 2004.09.29 02:00 Time+iLowest EURUSD,H1 : NumberLastBar_beg= 26 NumberLastBar_end= 2
14:08:39 2004.09.29 02:00 Time+iLowest EURUSD,H1 : i=20
14:08:39 2004.09.29 02:00 Heure+iLowest EURUSD,H1 : time_check_low_day=06:00
14:08:40 2004.09.29 03:00 Time+iLowest EURUSD,H1 : NumberLastBar_beg= 27 NumberLastBar_end= 3
14:08:40 2004.09.29 03:00 Time+iLowest EURUSD,H1 : i=21
14:08:40 2004.09.29 03:00 Heure+iLowest EURUSD,H1 : time_check_low_day=06:00
14:08:41 2004.09.29 04:00 Time+iLowest EURUSD,H1 : NumberLastBar_beg= 28 NumberLastBar_end= 4
14:08:41 2004.09.29 04:00 Time+iLowest EURUSD,H1 : i=31
14:08:41 2004.09.29 04:00 Heure+iLowest EURUSD,H1 : time_check_low_day=21:00
Code :
statique int PrevTime=0 ;
//+------------------------------------------------------------------+
//||
//+------------------------------------------------------------------+
int start()
{
si(Time[0]<=PrevTime) return(0) ;
PrevTime=Time[0] ;
//////////////
// CheckForLongTimeClose_Sell() ;
double pBid=NormalizeDouble(Bid,Digits),Low_Now=Low[1] ;
////////////
int n_beg=1 ;// indice du jour, dans ce cas 1 est hier
datetime DayTime_beg=iTime(NULL,PERIOD_D1,n_beg) ; // début du jour "n" en secondes
intLastBar_beg=iBarShift(NULL,0,DayTime_beg) ;
int n_end=0 ;// indice du jour, dans ce cas 1 est le jour d'hier
datetime DayTime_end=iTime(NULL,PERIOD_D1,n_end) ; // début de la journée "n" en secondes
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") ;
retour(0) ;
}
Si vous n'utilisez le code que sur un compte réel ou de démonstration, c'est plus pratique. Cependant, dans le testeur de stratégie, des problèmes peuvent sur venir lors de son utilisation.
Par exemple, comme quoi ? Pourquoi je n'ai aucun problème nulle part, mais vous "pouvez avoir des problèmes".
Il y a un morceau que je ne comprends pas.
J'obtiens une merde comme 5e-005.0 dans l'imprimante.
Valeur de PriceOld
Quand j'additionne tout, pourquoi est-ce que ça ressemble à ça quand je soustrais ?Le plus déroutant est que cela se produit sur cette section particulière de l'histoire, sur d'autres c'est normal.
J'ai essayé différentes variantes. Le résultat est le même. La façon dont cela peut être le cas n'est absolument pas claire. A un moment donné, le iLowest(NULL,0,MODE_LOW,NumberLastBar_beg,NumberLastBar_end) ; commence soudainement à calculer une plage de barres plus large. S'il vous plaît, conseillez ceux qui comprennent, j'ai la tête cassée. Merci.
4:08:36 Time+iLowest test commencé14:08:36 2004.09.29 00:00 Time+iLowest EURUSD,H1 : NumberLastBar_beg= 24 NumberLastBar_end= 0
14:08:36 2004.09.29 00:00 Time+iLowest EURUSD,H1 : i=18
14:08:36 2004.09.29 00:00 Heure+iLowest EURUSD,H1 : time_check_low_day=06:00
14:08:39 2004.09.29 01:00 Time+iLowest EURUSD,H1 : NumberLastBar_beg= 25 NumberLastBar_end= 1
14:08:39 2004.09.29 01:00 Time+iLowest EURUSD,H1 : i=19
14:08:39 2004.09.29 01:00 Heure+iLowest EURUSD,H1 : time_check_low_day=06:00
14:08:39 2004.09.29 02:00 Time+iLowest EURUSD,H1 : NumberLastBar_beg= 26 NumberLastBar_end= 2
14:08:39 2004.09.29 02:00 Time+iLowest EURUSD,H1 : i=20
14:08:39 2004.09.29 02:00 Heure+iLowest EURUSD,H1 : time_check_low_day=06:00
14:08:40 2004.09.29 03:00 Time+iLowest EURUSD,H1 : NumberLastBar_beg= 27 NumberLastBar_end= 3
14:08:40 2004.09.29 03:00 Time+iLowest EURUSD,H1 : i=21
14:08:40 2004.09.29 03:00 Heure+iLowest EURUSD,H1 : time_check_low_day=06:00
14:08:41 2004.09.29 04:00 Time+iLowest EURUSD,H1 : NumberLastBar_beg= 28 NumberLastBar_end= 4
14:08:41 2004.09.29 04:00 Time+iLowest EURUSD,H1 : i=31
14:08:41 2004.09.29 04:00 Heure+iLowest EURUSD,H1 : time_check_low_day=21:00
Code :
Faites attention à ces lignes.
Ces lignes doivent être échangées.
int i=iLowest(NULL,0,MODE_LOW,NumberLastBar_beg,NumberLastBar_end); // исправлять не стал datetime Time_Check_Low_Day=Time[i];2. NumberLastBar_beg est le numéro de la barre d'hier, alors que cette valeur est mise à la place du nombre de barres à rechercher.
3. Lorsque vous collez le code, trouvez le bouton SRC dans la barre d'outils de la fenêtre de saisie de texte.
Par exemple, lesquels ? Comment se fait-il que je n'aie aucun problème avec cette situation nulle part, mais que vous ayez "peut-être" un problème avec elle.
Je suis un peu pensif. Je ne veux pas exposer le code de l'indicateur existant, où il peut être clairement vu (si ce n'est en appliquant une condition distincte pour le testeur). Ainsi que de penser, ce qu'il faut prescrire sur sa base séparée pour la clarté.
Cependant, si vous insistez - bien sûr, je vais probablement m'engager dans une réflexion sur la manière de remplacer la "farce" compliquée qu'il a afin d'y prescrire autre chose.Lisez attentivement l'aide de iLowest(). Quel est le nombre d'éléments à rechercher ? Et qu'est-ce que cela représente ?
Faites attention à ces lignes
Il est préférable de permuter ces lignes.
2. NumberLastBar_beg est le numéro de la première barre d'hier, et vous mettez cette valeur à la place du nombre de barres que vous voulez rechercher.
La variable i est ici purement à des fins de contrôle, pour l'impression. J'ai fait une erreur en ajustant les barres. Merci pour le conseil !