[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 314

 
我不太明白?当我在窗口中画出Kon指标时,它工作得很好。解释一下...
 
kon12 >> :
我不太明白?当我在窗口中绘制Kon指标时,它工作得很好。解释一下...

当你在窗口中绘图时,你有橄榄色或绿色的直方图条。前者对应于向上缓冲区,后者对应于向下缓冲区。如果在第0条上只画了dn,而你访问指标iCustom(0,0, "Kon",10,0,0),即模式参数是0(看你的0是向上的--SetIndexBuffer(0,up);),那么函数调用的结果很可能是EMPTY_VALUE。


是不是更清楚了?

 

我试着把缓冲区的数量改为1和2,但没有帮助。

 

检查iCast调用中的 "Kon "字符串是否与mq4文件名相符,包括字符大小写。

以及该函数的输出值到底是什么?

 

这个问题很简单。我试图参考OsMA指标,它在标准的自定义指标 集中。我想在指标窗口中简单地画一条这个指标的线。OsMA指标的参数为12,26,9,并在缓冲区0上绘制。代码中的问题是什么?0线在指标窗口中被画出来,就这样了。

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_level1 0.0
#property indicator_color1 Olive

double z;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   SetIndexBuffer(0, z);
   SetIndexStyle(0,DRAW_HISTOGRAM);
    return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  { z= iCustom(NULL,0,"OsMA",12,26,9,0,0); 
  //----
   return(0);
  }
 
kon12 >> :

这个问题很简单。我试图使用OsMA函数,它在标准的自定义指标集中。我想在指标窗口中简单地画一条这个指标的线。OsMA指标的参数为12,26,9,使用缓冲区0绘制。代码中的问题是什么?0线在指标窗口中被画出来,就这样了。

不,它不是那样工作的。

z是一个数组,数据应逐个元素写入其中。比如说。

for(i=100;i>=0;i--)

{

z[i]= iCustom(NULL,0,"OsMA",12,26,9,0,i)

}

 
耶,成功了!谢谢你的帮助,第一步是最难的。
 

关于我的主题的另一个问题。假设我在图表上画一条曲线,比如说MA。然后我使用一个自定义指标,通过iCustom函数使用这个MA。我们能否以这样的方式连接它们,即当自定义指标中的МА周期发生变化时,图表中的MA周期会自动改变?

 

你能给我建议吗,我正在按照每天的时间表工作。

而我想访问分钟数据。它是最新的还是旧的数据?

 

问题是--这如何工作(指标优化)。


if( MA_Fast[ i+1]> MA_Slow[ i+1]) {
   string RectangleSell = StringConcatenate("RECTANGLE_", StartBoxTime);
   ObjectDelete( RectangleSell);
   ObjectCreate( RectangleSell, OBJ_RECTANGLE, 0,  StartBoxTime, BoxLow,  EndBoxTime, BoxHigh);
   ObjectSet( RectangleSell, OBJPROP_STYLE, STYLE_SOLID);
   ObjectSet( RectangleSell, OBJPROP_RAY, False);
   ObjectSet( RectangleSell, OBJPROP_WIDTH, 1);
   ObjectSet( RectangleSell, OBJPROP_BACK , True);
   ObjectSet( RectangleSell, OBJPROP_COLOR, ColorSell);
}


我的理解是否正确,每一个新的刻度线都有相同的矩形

(相同大小、相同数量的条子)将被删除并重新绘制?

是否值得增加对条数的检查(如果有更多的条数,才会重画)?

来减轻计算机的CPU,还是说收益很小,不值得去管它?