Вопрос к знатокам - страница 4

 
rid >>:

Добрый день. Пож. подскажите, как в функции NormalizeDouble (x, n)

вместо n подставить число знаков после запятой от MarketInfo(Symbol_1,MODE_POINT); ?

используй что-нибудь вроде этого

int start(){
   int n = getDigits(MarketInfo(Symbol_1,MODE_POINT));

}

int getDigits(double l){
   int digits = 0; 
   l -= MathFloor(l);	
   while(l < 1){ l *= 10.0;digits++;}
   return(digits); 
}
 
Ок. Спсб. попробую.
 
rid писал(а) >>

Добрый день. Пож. подскажите, как в функции NormalizeDouble (x, n)

вместо n подставить число знаков после запятой от MarketInfo(Symbol_1,MODE_POINT); ?

А чем, собственно говоря, MODE_DIGITS не устраивает?

 
keekkenen писал(а) >>

используй что-нибудь вроде этого

Сами то Вы пробовали то, что рекомендуете?

Что вернет предложенная Вами функция, если Point=0.025 ?

 
PapaYozh >>:

А чем, собственно говоря, MODE_DIGITS не устраивает?


, Да, действительно! Пожалуй, это - самое то!
 

Можно сделать проще

double Price=MathRound(Ask/Point)*Point;
Это как пример
 
rid писал(а) >>

Добрый день. Пож. подскажите, как в функции NormalizeDouble (x, n)

вместо n подставить число знаков после запятой от MarketInfo(Symbol_1,MODE_POINT); ?

Вам наверно не Point а Digits нужно?

 
Да, спсб,  - я уже вроде бы сообразил этот момент
 
PapaYozh >>:

Сами то Вы пробовали то, что рекомендуете?

Что вернет предложенная Вами функция, если Point=0.025 ?

2 должно быть..

что пришло на ум, то и выдал, не вдумываясь что и зачем..

 

Всем привет! Вот такой обнаружился вопрос. 

Индюк отображает в нижнем окне - линии цены двух инструментов.

Я вывел в коммент - надписи - вот так:

double Delta = NormalizeDouble(Symbol1[0]-Symbol2[0],MarketInfo(Symbol_1,MODE_DIGITS)) ; 
string info = Symbol_1+"="+"зел.линия"+" "+Symbol_2+"="+"син.линия"
            +" Delta="+Delta ; 
   IndicatorShortName(info);

Как видите, - double Дельту (разность значений линий) я округлил до 1-го  знака после запятой.

Но Дельта - почему-то отображается - 8-значным (после запятой) числом! 

Либо округляет, но всё равно пишет нули - дополняя  округленное значение нулями до 8-ми знаков!

 Вместо MarketInfo(Symbol_1,MODE_DIGITS) ставил цифру. Но все равно, - после запятой - рисуются нули до 8-ми знаков.

Как сделать, чтобы дельта отображалась не так Delta=11.40000000

а вот так : Delta=11.4 ?

Пож подскажите ?

//----------------------------

DoubleToStr(Symbol1[0],MarketInfo(Symbol_1,MODE_DIGITS) - тоже не помогает...