ObjectSetDouble

函数建立类似物件属性的值。物件数据应该是 双精度 类型,有2中类型函数可供使用。

设置属性值,无修饰符

bool  ObjectSetDouble(

   long                            chart_id,          // 图表标识符

   string                          name,              // 物件名称

   ENUM_OBJECT_PROPERTY_DOUBLE     prop_id,           // 属性

   double                          prop_value         // 值

   );

设置表明修饰符属性值

bool  ObjectSetDouble(

   long                            chart_id,          // 图表标识符

   string                          name,              // 物件名称

   ENUM_OBJECT_PROPERTY_DOUBLE     prop_id,           // 属性

   int                             prop_modifier,     // 修饰符

   double                          prop_value         // 值

   );

参量

chart_id

[in] 图表标识符。0表示当前图表。

name

[in]  物件名称。

prop_id

[in]  物件属性ID。值可以是 ENUM_OBJECT_PROPERTY_DOUBLE 值中一个。

prop_modifier

[in]  指定属性修饰语,表示 斐波纳契工具 水平线数量和安德鲁分叉图解物件,水平线编号从0开始。

prop_value

[in]  属性值。

返回值

如果改变图解物件属性的命令成功发送到图表该函数返回true。否则返回false。调用函数GetLastError() 读取更多关于错误信息。

注意

这个函数使用非同步调用,这意味着这个函数不等待执行已入列图表的命令。相反,而是立即返回控制。

若要检查命令执行结果,您可以使用请求对象属性的函数。但是,您需要牢记的是这类函数将被加入到图表的队尾,需要等待执行结果,因此,可能会耗费大量时间。当处理图表上的大量对象时应该考虑这个特性。

新建斐波纳契物件和添加新水平线示例

//+------------------------------------------------------------------+

//| 脚本程序启动函数                                                     |

//+------------------------------------------------------------------+

void OnStart()

  {

//--- 辅助数组

   double high[],low[],price1,price2;

   datetime time[],time1,time2;

//--- 复制开盘价 - 最新的100柱就足够

   int copied=CopyHigh(Symbol(),0,0,100,high);

   if(copied<=0)

     {

      Print("Failed to copy the values of the High price series");

      return;

     }

//--- 复制收盘价 - 最新100柱就足够

   copied=CopyLow(Symbol(),0,0,100,low);

   if(copied<=0)

     {

      Print("Failed to copy the values of the Low price series");

      return;

     }

//--- 复制最新100柱的开盘时间

   copied=CopyTime(Symbol(),0,0,100,time);

   if(copied<=0)

     {

      Print("Failed to copy the values of the price series of Time");

      return;

     }

//--- 如访问时间序列一样组织访问复制的数据-反向

   ArraySetAsSeries(high,true);

   ArraySetAsSeries(low,true);

   ArraySetAsSeries(time,true);



//--- 斐波纳契物件的第一定位点的坐标

   price1=high[70];

   time1=time[70];

//--- 斐波纳契物件的第二定位点的坐标

   price2=low[50];

   time2=time[50];



//--- 创建斐波纳契物件的时间

   bool created=ObjectCreate(0,"Fibo",OBJ_FIBO,0,time1,price1,time2,price2);

   if(created) // 如果物件成功创建

     {

      //--- 设置斐波纳契色阶调整颜色

      ObjectSetInteger(0,"Fibo",OBJPROP_LEVELCOLOR,Blue);

      //--- 另外,有多少斐波纳契色阶?

      int levels=ObjectGetInteger(0,"Fibo",OBJPROP_LEVELS);

      Print("Fibo levels before = ",levels);

      //---输出到日志 => 水平号:水平值描述

      for(int i=0;i<levels;i++)

        {

         Print(i,": ",ObjectGetDouble(0,"Fibo",OBJPROP_LEVELVALUE,i),

               "  ",ObjectGetString(0,"Fibo",OBJPROP_LEVELTEXT,i));

        }

      //--- 增加每单元的水平面数量

      bool modified=ObjectSetInteger(0,"Fibo",OBJPROP_LEVELS,levels+1);

      if(!modified) // 更改水平面数量失败

        {

         Print("Failed to change the number of levels of Fibo, error ",GetLastError());

        }

      //--- 只是通知

      Print("Fibo levels after = ",ObjectGetInteger(0,"Fibo",OBJPROP_LEVELS));

      //--- 为新创建的水平面设置一个值

      bool added=ObjectSetDouble(0,"Fibo",OBJPROP_LEVELVALUE,levels,133);

      if(added) // 为水平面管理并设置一个值

        {

         Print("Successfully set one more Fibo level");

         //--- 还不要忘记设置水平面描述

         ObjectSetString(0,"Fibo",OBJPROP_LEVELTEXT,levels,"my level");

         ChartRedraw(0);

         //--- 在斐波纳契物件中获得水平面数量的实际值

         levels=ObjectGetInteger(0,"Fibo",OBJPROP_LEVELS);

         Print("Fibo levels after adding = ",levels);

         //--- 再次输出所有水平-只是为了证实

         for(int i=0;i<levels;i++)

           {

            Print(i,":",ObjectGetDouble(0,"Fibo",OBJPROP_LEVELVALUE,i),

                  "  ",ObjectGetString(0,"Fibo",OBJPROP_LEVELTEXT,i));

           }

        }

      else // 如果在斐波纳契物件中增加水平面数量则会失败

        {

         Print("Failed to set one more Fibo level. Error ",GetLastError());

        }

     }

  }

另见

物件类型物件属性