il y a une fonction "double MathRound( double value)", mais j'ai besoin de l'arrondi à une fraction décimale plus grande, et si le nombre est entier ou déjà décimal, alors laissez-le tranquille.
Par exemple : 1) 0,744 arrondi à 0,8 ; 1,233 arrondi à 1,3
La version de Vadim est 20-25% plus rapide, mais l'effet commence à se manifester régulièrement lorsque le nombre d'itérations dépasse un million. (vérifié)
FAQ: La version de Vadim est 20-25% plus rapide, mais l'effet commence à se manifester régulièrement lorsque le nombre d'itérations dépasse un million. (vérifié)
Montrez-moi le code, comment l'avez-vous vérifié ?
FAQ: La version de Vadim est 20-25% plus rapide, mais l'effet commence à se manifester régulièrement lorsque le nombre d'itérations dépasse un million. (testé)
la façon correcte de l'écrire : if (OrderSelect (OrdersHistoryTotal()-1, SELECT_BY_POS, MODE_HISTORY) == OrderTakeProfit() == OrderClosePrice()) Stop=false // c'est-à-dire que si le dernier ordre de la fin a clôturé au niveau du Take Profit (prise de bénéfice lorsqu'un certain niveau est atteint), le Stop=false ? (Arrêt dans les variables globales)
cette question s'est posée car l'ordre s'ouvre par une condition if((iClose(NULL,0,1)<ma) && Stop==True)....
Ne jamais comparer, prises non normalisées, inutile. Et d'ailleurs, le prix de clôture d'un ordre d'achat peut être différent du prix d'achat (réel/démo (en ligne)).
Il serait donc plus correct de mesurer le module de différence de prix, en le comparant à la valeur test.
il y a une fonction "double MathRound( double value)", mais j'ai besoin de l'arrondi à une fraction décimale plus grande, et si le nombre est entier ou déjà décimal, alors laissez-le tranquille.
Par exemple : 1) 0,744 arrondi à 0,8 ; 1,233 arrondi à 1,3
2) 0,9 ou 3 ou 1,5 ne touchent pas.
Je ne l'ai pas vérifié, mais en quelque sorte.
Geste totalement inutile assez double res=NormalizeDouble(res,1) pour gérer mathématiquement encore double res = 3 ; ou double res = 3.0 ;
La différence ne sera visible qu'à l'impression (graphique), mais cela ne figure pas dans la description du problème par l'auteur.
Geste totalement inutile assez double res=NormalizeDouble(res,1) pour gérer mathématiquement encore double res = 3 ; ou double res = 3.0 ;
La différence ne sera visible que sur l'impression (graphique), mais cela ne figure pas dans la description du problème par l'auteur.
Eh bien, vous pouvez le faire de cette façon :
Je pense que la première variante est meilleure. Il fonctionnera plus rapidement.Eh bien, vous pourriez faire comme ça :
Je pense que la première option est la meilleure. Il fonctionnera plus rapidement.Cette option.
devrait être le plus rapide
La version de Vadim est 20-25% plus rapide, mais l'effet commence à se manifester régulièrement lorsque le nombre d'itérations dépasse un million. (vérifié)
Montrez-moi le code, comment l'avez-vous vérifié ?
La version de Vadim est 20-25% plus rapide, mais l'effet commence à se manifester régulièrement lorsque le nombre d'itérations dépasse un million. (testé)
la façon correcte de l'écrire : if (OrderSelect (OrdersHistoryTotal()-1, SELECT_BY_POS, MODE_HISTORY) == OrderTakeProfit() == OrderClosePrice()) Stop=false // c'est-à-dire que si le dernier ordre de la fin a clôturé au niveau du Take Profit (prise de bénéfice lorsqu'un certain niveau est atteint), le Stop=false ? (Arrêt dans les variables globales)
cette question s'est posée car l'ordre s'ouvre par une condition if((iClose(NULL,0,1)<ma) && Stop==True)....
Ne jamais comparer, prises non normalisées, inutile. Et d'ailleurs, le prix de clôture d'un ordre d'achat peut être différent du prix d'achat (réel/démo (en ligne)).
Il serait donc plus correct de mesurer le module de différence de prix, en le comparant à la valeur test.