// v передается в функцию как double-значение лота // сначала то что чаще всего встречается v = NormalizeDouble(v, 3); if(v < MarketInfo(symbol, MODE_MINLOT)) v = MarketInfo(symbol, MODE_MINLOT);
// затем рассчитать знаки после запятой для объема, которого не может быть но они фсе равно проверяют string volume_min = (string) SymbolInfoDouble(symbol, SYMBOL_VOLUME_MIN); int volume_digits = 0; int pos = StringFind(volume_min, ".", 0);
На прошлом уроке «Язык MQL — Урок 2» мы научили наш первый , написанный на языке MQL4 рассчитывать размер лота, а точнее запрашивать у нас размер средств которыми мы хотим рискнуть при торговле на форекс при помощи терминала Metatrader 4. В данном уроке я предлагаю заняться самим ! Для расчета желаемого лота, скрипту MT4 необходимо знать...
Evgeniy Scherbina: Ta e mai. Je n'utilise aucun risque, encore moins 100% (le lot a 100% ? ??) et passe le contrôle.
La question portait sur l'origine de la centaine. La réponse n'est pas "du plafond". Qui utilise quoi est une question de dixième. L'utilisation de l'indicateur "risque" ne doit pas interférer avec la vérification.
Votre lotDigit est un imbécile qui calcule toujours 0. Ce n'est pas dans l'exemple de la documentation. Apparemment, vous aimez beaucoup de crochets ?
Aussi ceci : FreeMg*Risk/100/Margin/Step... D'où vient le chiffre 100 ? De toute évidence, du plafond.
C'est beaucoup de cordes. C'est vraiment beaucoup, qu'est-ce que vous calculez ?
dans ce cas, lotDigit compte le nombre de chiffres pour l'arrondi, vous pouvez vérifier - cette astuce sera toujours supérieure à zéro (si le lot fractionné est autorisé).
...on dirait que vous n'utilisez pas non plus de lots fractionnés.
dans ce cas, lotDigit compte le nombre de chiffres pour l'arrondi, vous pouvez vérifier - cette astuce sera toujours supérieure à zéro (si le lot fractionné est autorisé).
...il semble que vous n'utilisiez pas non plus de lots fractionnés.
C'est comme ça qu'il faut faire ! !!
// сначала то что чаще всего встречается
v = NormalizeDouble(v, 3);
if(v < MarketInfo(symbol, MODE_MINLOT)) v = MarketInfo(symbol, MODE_MINLOT);
// затем рассчитать знаки после запятой для объема, которого не может быть но они фсе равно проверяют
string volume_min = (string) SymbolInfoDouble(symbol, SYMBOL_VOLUME_MIN);
int volume_digits = 0;
int pos = StringFind(volume_min, ".", 0);
if(pos > 0){
volume_min = StringSubstr(volume_min, pos+1, StringLen(volume_min)-pos);
volume_digits = StringLen(volume_min);
v = NormalizeDouble(v, volume_digits);
}
Votre lotDigit est un imbécile qui calcule toujours 0. Ce n'est pas dans l'exemple de la documentation. Apparemment, vous aimez beaucoup de crochets ?
Aussi ceci : FreeMg*Risk/100/Margin/Step... D'où vient le chiffre 100 ? De toute évidence, du plafond.
C'est beaucoup de cordes. C'est vraiment beaucoup, mais que calculez-vous ?
C'est là.
http://mql4you.ru/mql-school/yazyk-mql-urok-3.html
Aussi ceci : FreeMg*Risk/100/Margin/Step... D'où vient le chiffre 100 ? Clairement du plafond.
100 est une conversion du pourcentage ;-). Autrement dit, Risque/100 donne une valeur comprise entre 0 et 1.
Ta e mai. Je n'utilise aucun risque, encore moins 100% (le lot a 100% ? ??) et passe le contrôle.
Votre lotDigit est un imbécile qui calcule toujours 0. Ce n'est pas dans l'exemple de la documentation. Apparemment, vous aimez beaucoup de crochets ?
Aussi ceci : FreeMg*Risk/100/Margin/Step... D'où vient le chiffre 100 ? De toute évidence, du plafond.
C'est beaucoup de cordes. C'est vraiment beaucoup, qu'est-ce que vous calculez ?
dans ce cas, lotDigit compte le nombre de chiffres pour l'arrondi, vous pouvez vérifier - cette astuce sera toujours supérieure à zéro (si le lot fractionné est autorisé).
...on dirait que vous n'utilisez pas non plus de lots fractionnés.
dans ce cas, lotDigit compte le nombre de chiffres pour l'arrondi, vous pouvez vérifier - cette astuce sera toujours supérieure à zéro (si le lot fractionné est autorisé).
...il semble que vous n'utilisiez pas non plus de lots fractionnés.