# ObjectGetDouble The function returns the value of the corresponding object property. The object property must be of the [double](/en/docs/basis/types/double) type. There are 2 variants of the function. 1. Immediately returns the property value. ``` double  ObjectGetDouble(    long                            chart_id,          // chart identifier    string                          name,              // object name    ENUM_OBJECT_PROPERTY_DOUBLE     prop_id,           // property identifier    int                             prop_modifier=0    // property modifier, if required    ); ``` 2. Returns true or false, depending on the success of the function. If successful, the property value is placed to a receiving variable passed by reference by the last parameter. ``` bool  ObjectGetDouble(    long                            chart_id,          // chart identifier    string                          name,              // object name    ENUM_OBJECT_PROPERTY_DOUBLE     prop_id,           // property identifier    int                             prop_modifier,     // property modifier    double&                         double_var         // here we accept the property value    ); ``` Parameters chart_id [in]  Chart identifier. 0 means the current chart. name [in]  Name of the object. prop_id [in]  ID of the object property. The value can be one of the values of the [ENUM_OBJECT_PROPERTY_DOUBLE](/en/docs/constants/objectconstants/enum_object_property#enum_object_property_double) enumeration. prop_modifier [in]  Modifier of the specified property. For the first variant, the default modifier value is equal to 0. Most properties do not require a modifier.  It denotes the number of the level in [Fibonacci tools](/en/docs/constants/objectconstants/enum_object) and in the graphical object Andrew's pitchfork. The numeration of levels starts from zero. double_var [out]  Variable of the double type that received the value of the requested property. Return Value Value of the double type for the first calling variant. For the second variant the function returns true, if this property is maintained and the value has been placed into the double_var variable, otherwise returns false. To read more about the [error](/en/docs/constants/errorswarnings/errorcodes) call [GetLastError()](/en/docs/check/getlasterror). Note The function uses a synchronous call, which means that the function waits for the execution of all commands that have been enqueued for this chart prior to its call, that is why this function can be time consuming. This feature should be taken into account when working with a large number of objects on a chart. Example: ``` #property copyright "Copyright 2025, MetaQuotes Ltd." #property link      "https://www.mql5.com" #property version   "1.00"   #define   OBJ_NAME   "TestObjectGetDouble"   // Object name #define   WND        0                       // Chart subwindow #define   EXT        " (%$)"                 // Format string for displaying price values at levels   //+------------------------------------------------------------------+ //| Script program start function                                    | //+------------------------------------------------------------------+ void OnStart()   { //--- current chart ID, the chart symbol, and symbol Digits    long   chart_id= ChartID();    string symbol  = ChartSymbol(chart_id);    int    digits  = (int)SymbolInfoInteger(symbol, SYMBOL_DIGITS);     //--- construct the Fibonacci Levels graphical object at the maximum and minimum prices of the visible chart    if(!CreateFibo(chart_id))       return;        //--- number of object levels    int total=(int)ObjectGetInteger(chart_id, OBJ_NAME, OBJPROP_LEVELS);    double value =0;    double price0=0;    double price1=0;     //--- anchor point prices    price0=ObjectGetDouble(chart_id, OBJ_NAME, OBJPROP_PRICE, 0);    price1=ObjectGetDouble(chart_id, OBJ_NAME, OBJPROP_PRICE, 1);     //--- in a loop by the number of object levels    for(int i=0; i