voidOnStart()
{
uchar max=0;
for(int t=0;t<LONG_MAX;t++) {max++;} //так получаем предупреждение expression is always true, цикл работаетfor(int t=0;t<LONG_MAX+1;t++) {max++;} //так предупреждение есть, но цикл не работаетfor(int t=0;t<ULONG_MAX;t++) {max++;} //так нет предупреждения и цикл не пашетPrint("Done!");
}
Si l'écart s'est élargi (et à en juger par la capture d'écran - de 720 points ! sur cinq chiffres), alors tout est correct.
La position de vente a été fermée au prix Ask. C'est si les arrêts ont été fixés.
D'ailleurs, votre courtierAlfa-Forex a desspreads tout simplement gigantesques à la fin de la semaine et au début.
Elles ont probablement été enregistrées dans l'historique des cotations et le testeur a simulé des transactions sur ces dernières.
Les arrêts pour le week-end sont dangereux - ils ne sauveront pas de l'écart de toute façon, et l'élargissement de l'écart peut facilement vous rattraper.
voidOnStart()
{
uchar max=0;
for(int t=0;t<ULONG_MAX-1 e0;t++) {max++;} //так цикл работает, предупреждения нет так как ULONG_MAX-1e0 имеет тип doublefor(int t=0;t<ULONG_MAX-1;t++) {max++;} //а так нет и предупреждения тоже нетPrint("Done!");
}
for(int t=0;t<ULONG_MAX-1;t++) {max++;} //а так нет и предупреждения тоже нет
Il n'y a pas d'erreur ici, car ULONG_MAX-1< 0, c'est-à-dire que l'opération de comparaison est convertie en int ou long - plus précisément il y a une comparaison bit à bit
Comment s'explique cette fermeture d'un poste de testeur ? Est-ce dû à l'élargissement de l'écart ?
Captures d'écran de la plateforme de trading MetaTrader
EURUSD, M20, 2014.04.12
Alfa-Forex, MetaTrader 5, Real
temp_file_screenshot_63279.png
Comment s'explique cette fermeture d'un poste de testeur ? Est-ce l'élargissement de l'écart ?
[img]https://charts.mql5.com/4/434/eurusd-m20-alfa-foreks-temp-file-screenshot-63279-png.png[/img]
Si l'écart s'est élargi (et à en juger par la capture d'écran - de 720 points ! sur cinq chiffres), alors tout est correct.
La position de vente a été fermée au prix Ask. C'est si les arrêts ont été fixés.
D'ailleurs, votre courtierAlfa-Forex a desspreads tout simplement gigantesques à la fin de la semaine et au début.
Elles ont probablement été enregistrées dans l'historique des cotations et le testeur a simulé des transactions sur ces dernières.
Les arrêts pour le week-end sont dangereux - ils ne sauveront pas de l'écart de toute façon, et l'élargissement de l'écart peut facilement vous rattraper.
Pas d'erreur ici carLONG_MAX+1< 0
Ici l'avertissement est valable (t<LONG_MAX toujours vrai si t int ) boucle infinie.Il n'y a pas d'erreur parce que ULONG_MAX-1< 0, car l'opération de comparaison est réduite à int
Alors comment expliquer cela :
Il n'y a pas d'erreur ici car ULONG_MAX-1< 0, c'est-à-dire que l'opération de comparaison est convertie en int ou long
Voulez-vous dire la comparaison dans l'expression testée dans la boucle ?
Parce que ce n'est pas ce qui ressort d'une simple comparaison.
Il suffit de les intervertir :)
Que fait ce réarrangement ? t était inférieur à ULONG_MAX-1 et l'est toujours.
Que fait ce réarrangement ? t était inférieur à ULONG_MAX-1 et reste le même.
J'ai cité ce mauvais exemple - il s'agissait d'une comparaison avec int, alors qu'ici c'est avec long