为什么角度线的数据读不出来?

 
 double a=iMA(Symbol(),PERIOD_CURRENT,125,0,MODE_SMA,PRICE_CLOSE,200);
 double b=iMA(Symbol(),PERIOD_CURRENT,125,0,MODE_SMA,PRICE_CLOSE,50);

ObjectCreate(0,"1",OBJ_TRENDBYANGLE,0,Time[200],a,Time[50],b);//画角度线

double d= ObjectGetDouble(0,"1",OBJPROP_PRICE,0);//价格
double e= ObjectGetDouble(0,"1",OBJPROP_PRICE,1);//价格
double f= ObjectGetDouble(0,"1",OBJPROP_ANGLE,2);//角度
Print("d=",d," e=",e," f=",f);


在用脚本做试验的时候,角度线的两个价格数据都可以读出来,唯独角度的数据读不出来。更奇怪的是第一次把脚本拉进去没有数据,接着再拉第二次又会显示角度读数。到底是怎么回事?

 
你用的是MQL4吗?
 
 

不懂。记得以前使用这种函数时就遇到很多问题。

设计divergence指标经常会需要画线,参考一下别人的程序吧。

https://www.mql5.com/en/search#!keyword=divergence&module=mql5_module_codebase

 

移动一下板块到MT4

 
这个问题有答案了吗,想知道下MT4怎样获取角度
 
Masonqq:
这个问题有答案了吗,想知道下MT4怎样获取角度

还没有找到

 

角度属性与图表scale相关,要等图表上实际已经画出线了才能读取到角度数据。

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
{
//---

   double a=iMA(Symbol(),PERIOD_CURRENT,125,0,MODE_SMA,PRICE_CLOSE,200);
   double b=iMA(Symbol(),PERIOD_CURRENT,125,0,MODE_SMA,PRICE_CLOSE,50);
   Print("a = ",a," b = ",b);

   ObjectCreate(0,"1",OBJ_TRENDBYANGLE,0,Time[200],a,Time[50],b);//画角度线

   double d= ObjectGetDouble(0,"1",OBJPROP_PRICE,0);//价格
   double e= ObjectGetDouble(0,"1",OBJPROP_PRICE,1);//价格
   double f= ObjectGetDouble(0,"1",OBJPROP_ANGLE);//角度

   int try = 10;
   while(f==0.0 && try>0)
      {
         try--;
         f = ObjectGetDouble(0,"1",OBJPROP_ANGLE);
         if(f==0.0)
         {
            Sleep(100);
            ChartRedraw();
         }
         if(f>0.0)break;
      }
   Print("d = ",d," e = ",e," f = ",f);

}
//+------------------------------------------------------------------+
 
Ziheng Zhuang:

角度属性与图表scale相关,要等图表上实际已经画出线了才能读取到角度数据。

兄弟真是高手啊,按你的思路确实可以把角度读出来,多谢指导!