Видимо совсем отупел :-)
У меня один эксперт работает на нескольких ДЦ и соответственно условия торговли разные, в частности шаг увеличения лота.
Что бы не переписывать для каждого экземпляра процедуру определения лота, необходимо определить кол-во значащих после запятой в значении возвращаемое MarketInfo(Symbol(),MODE_LOTSTEP) для нормализации размера лота в зависимости от торговых условий.
double InfoStep = MarketInfo(Symbol(),MODE_LOTSTEP);
switch(InfoStep)
{//?
case 1.: Step = 0; break;
case 0.1: Step = 1; break;
case 0.01: Step = 2; break;
default: Step = 0;
}//?
double InfoStep = MarketInfo(Symbol(),MODE_LOTSTEP);
switch(InfoStep)
{//?
case 1.: Step = 0; break;
case 0.1: Step = 1; break;
case 0.01: Step = 2; break;
default: Step = 0;
}//?
Спасибо, этот вариант я тоже рассматривал, но уж очень он коряво выглядит :-) Да и вопрос в неопределенности: шаг теоретически может быть 0.02, 0.3 и т.д
Другими словами не хочется связываться в предопределенными значениями в условиях сравнения.
Ты просил:
необходимо определить кол-во значащих после запятой..
int Step = 0;
double InfoStep = MarketInfo(Symbol(),MODE_LOTSTEP);
if(InfoStep<1&&InfoStep>=0.1) Step = 1;
else if(InfoStep<0.1&&InfoStep>=0.01) Step = 2;
else if(InfoStep<0.01&&InfoStep>=0.001) Step = 3;
else Step = 0;
Ты просил:
необходимо определить кол-во значащих после запятой..
Да все верно, но я не писал что это заранее определенные значения :-)
Да, такое тоже может быть...
Есть ДЦ с минилотом напримр 0.2
А так-же и минилотом 10 ! ;) да-да, например центовые сервера...
Видимо выходом будет просто расширить список возможных вариантов,
правда что делать с мнилотом 10 ??? пока ничё в голову не лезет...
Кстати! попутно... что выгоднее\лучше
свич или if ?
Ты просил:
необходимо определить кол-во значащих после запятой..
Да все верно, но я не писал что это заранее определенные значения :-)
Переписал..
Да, такое тоже может быть...
Есть ДЦ с минилотом напримр 0.2
А так-же и минилотом 10 ! ;) да-да, например центовые сервера...
Видимо выходом будет просто расширить список возможных вариантов,
правда что делать с мнилотом 10 ??? пока ничё в голову не лезет...
Кстати! попутно... что выгоднее\лучше
свич или if ?
Да вопрос не в мин лоте, с этим нет проблем. Вопрос в шаге изменения лота, а это значение не всегда равно мин лоту.
В голову точно ни черта не лезет.... выходные что ли влияют :-)
Да, такое тоже может быть...
Есть ДЦ с минилотом напримр 0.2
А так-же и минилотом 10 ! ;) да-да, например центовые сервера...
int Step = 0;
double InfoStep = MarketInfo(Symbol(),MODE_LOTSTEP);
if(InfoStep<1&&InfoStep>=0.1) Step = 1;
else if(InfoStep<0.1&&InfoStep>=0.01) Step = 2;
else if(InfoStep<0.01&&InfoStep>=0.001) Step = 3;
else Step = 0;
Ок, спасибо :-). Пока буду использовать этот алгоритм. Надо порыться, кажется я я видел решение несколько короче, если найду выложу.
Кстати! попутно... что выгоднее\лучше
свич или if ?
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Видимо совсем отупел :-)
У меня один эксперт работает на нескольких ДЦ и соответственно условия торговли разные, в частности шаг увеличения лота.
Что бы не переписывать для каждого экземпляра процедуру определения лота, необходимо определить кол-во значащих после запятой в значении возвращаемое MarketInfo(Symbol(),MODE_LOTSTEP) для нормализации размера лота в зависимости от торговых условий.