如何在自定义指标中围绕一组蜡烛绘制一个矩形?

时间:2017-02-08 15:00:43

标签: mql4

假设我有两个满足属性的蜡烛,我想在它们周围画一个矩形,如下图所示,在自定义指示器中。

我该怎么办?

SetIndexStyle()似乎没有此选项。

enter image description here

1 个答案:

答案 0 :(得分:0)

Doable (但不通过任何自定义指标行格式化服务)

鉴于上述情况,
矩形放置&格式化应该明确编程,最好使用一个主要的,可重用的GUI对象处理函数模板的想法,如下所示:

void UpdateRECTANGLE( int      const     anObjIdNUM,
                      datetime const       fromTIME,
                      datetime const         toTIME,
                      double   const      fromPRICE,
                      double   const        toPRICE,
                      color    const         aCOLOR = clrDarkBlue,
                      int      const aLineTHICKNESS = 2,
                      int      const      aLineTYPE = STYLE_SOLID,
                      ){
#define aMainWINDOW   0

     string                         anInterimObjNAME = StringFormat( "GUI_RECTANGLE[%6d]", anObjIdNUM );
     if (  ObjectFind(              anInterimObjNAME ) == aMainWINDOW )
           ObjectDelete(            anInterimObjNAME );
     else: ObjectCreate( ChartID(), anInterimObjNAME, OBJ_RECTANGLE, 0, fromTIME, fromPRICE,
                                                                          toTIME,   toPRICE
                                                                          );         
     ObjectSet( anInterimObjNAME, OBJPROP_COLOR,         aCOLOR );
     ObjectSet( anInterimObjNAME, OBJPROP_BACK,          True );
     ObjectSet( anInterimObjNAME, OBJPROP_WIDTH,         aLineTHICKNESS );
     ObjectSet( anInterimObjNAME, OBJPROP_STYLE,         aLineTYPE );
     ObjectSet( anInterimObjNAME, OBJPROP_SELECTABLE,    GUI_SELECTABLE ); // ----------------------------------------- AVOIDS GUI interactions
     ObjectSet( anInterimObjNAME, OBJPROP_SELECTED,      False );
     return;
}
  

<强>尾声:
  人们也可能知道,自定义指标是一个有点危险的代码片段,用于放置任何繁重的处理,复杂的TimeSeries重新计数,外部AI / ML代码事务处理,因为,所有,是全部< / strong> MetaTrader终端图表全部共享,是,确实,所有SHARE 单个线程(可以想象,阻塞/长时间挂起处理可能会导致所有依赖进程,如果全部(再次, YES,ALL )必须等待,直到一个共享的阻塞线程获得足够的CPU时钟来完成所有其他图形专家及其相关的自定义指标调用的所有请求队列的处理我们的电话请求已经放在我们面前了。
听起来不是很危险吗?相信我,它是...... 很多!