Different price size

 

Hi there,


why if

double getDigits() {
    return MarketInfo( Symbol(), MODE_DIGITS );
}


getDigits() = 5


then

int start() {
        double prevClose = Close[1];
        double actOpen = Open[0];

        gapSize = ( actOpen - prevClose );
        Print( "Gap detect - Size: ", gapSize );
}


Prints -> "Gap detect - Size: 0"


Because prevClose and actOpen is 4 digits....

so for example 1.38157 - 1.38151 = 0 but should be 0.00006


I'm a bit confuse

Andy

 
What is gapSize cast as?
 
gapSize is double.. :) I omitted the definition
 
Print( "Gap detect - Size: ", DoubleToString(gapSize, Digits));
 

( actOpen - prevClose ) is boolean. Remove parenthesis.

 

I found that


Print( "prevClose: ", prevClose );


is 1.3783...... so Close[1] is 4 digits...


I need 5digits, why I lost a digit?

 

The use of DoubleToString( gapSize, Digits ); only give: 0.00000


:/

 

Ok,

this works....


int start() {
        double prevClose = NormalizeDouble( Close[1], Digits );
        double actOpen = NormalizeDouble( Open[0], Digits );
        double range = prevClose - actOpen;

        Print( "prevClose = ", DoubleToString( prevClose, Digits ) );
        Print( "actOpen = ", DoubleToString( actOpen, Digits ) );
        Print( "range = ", DoubleToString( range, Digits ) );

        return(0);
}


but is fuckin' insane.

 
Mindexperiment:

Ok,

this works....



but is fuckin' insane.

Please watch your language and read the documentation before becoming rude.

Current build is 646, you are using an old build.