如何在MQL5中绘制像矩形一样的填充?

时间:2016-11-28 17:14:14

标签: lines mql5 graphical-programming metatrader5

任何人都可以建议如何实现这种绘图,正如官方mql5 documentation没有指出这一点。

enter image description here

我已经提供了here提供的样本,但它只输出了这个结果,这不是我想要的。
enter image description here 有人有什么建议吗?

1 个答案:

答案 0 :(得分:1)

更简单的部分: ...最好忘记自定义指标(全部共享单线程/块)

为了更快,更安全的GUI,完全控制绘制这些正交形状, - MQL4/MQL5 语言可以使用以下内容:< / p>

// --------------------------------------------------------------------
#define           GUI_aFontSIZE       10
#define           GUI_aFontNAME      "Courier New"
#define           GUI_aTradeCOLOR     C'80,0,80'
#define           GUI_aTPed_COLOR     clrDarkGreen
#define           GUI_aSLed_COLOR     clrDarkRed
#define           GUI_isSELECTABLE    True

long              GUI_aMainWINDOW = CharID();
int               GUI_anObjNUMBER = 0;
string                             anInterimObjNAME    = StringFormat( "GUI.DEMO_RectangularOBJECT_[%d]", GUI_anObjNUMBER );
if (  ObjectFind(                  anInterimObjNAME ) == GUI_aMainWINDOW )
      ObjectDelete(                anInterimObjNAME );                                          //--- prevent collisions

ObjectCreate(     GUI_aMainWINDOW, anInterimObjNAME, OBJ_RECTANGLE, 0,      aTimeOfENTRY, anEntryPRICE,
                                                                            aTimeOfEXIT,  DBL_MIN
                                                                            );
ObjectSetInteger( GUI_aMainWINDOW, anInterimObjNAME, OBJPROP_COLOR,         GUI_aSLed_COLOR );  //--- set color
ObjectSetInteger( GUI_aMainWINDOW, anInterimObjNAME, OBJPROP_BACK,          True );             //--- display in the foreground (false) or background (true) ~ FILL-IT ~
ObjectSetInteger( GUI_aMainWINDOW, anInterimObjNAME, OBJPROP_SELECTABLE,    GUI_isSELECTABLE ); //---------------------------------------- MAY AVOID GUI interactions
ObjectSetInteger( GUI_aMainWINDOW, anInterimObjNAME, OBJPROP_SELECTED,      False );            //--- set GUI-object as (non)-pre-SELECT-ed
ObjectSetInteger( GUI_aMainWINDOW, anInterimObjNAME, OBJPROP_HIDDEN,        False );            //--- hide (true) or display (false) graphical object name in the object list
ObjectSetInteger( GUI_aMainWINDOW, anInterimObjNAME, OBJPROP_ZORDER,        1 );                //--- set the "layered" priority for receiving a mouse-click-event in the chart
// --------------------------------------------------------------------

如果有疑问,请使用GUI对象面板手动进行实验,并在语言文档中导出缺少的语法说明。

vju:

可能会使用更复杂的&amp;一种更危险的方法:

如果故事要基于自定义指标,玩具会变得更加复杂。

有一个硬编码引擎,可以处理所谓的 IndicatorBuffer 中的数据。

如果某个特定数据元素恰好等于 EMPTY_VALUE ,则会为这些特定的条形图提供特殊处理。

这样的EMPTY_VALUE常数向处理引擎发出未在图表中显示的指标值,这让你感到惊讶。

例如,对于周期为20的内置指标标准偏差,历史记录中前19个柱的线根本不会显示在图表中,使用此功能技巧。同样可以在任何地方使用,一直到当前条[0],甚至是动态的,以便模拟&#34;振动&#34; :o)(不要在生产中冒这个风险......)。

这也可以创造&#34;掉线&#34; aPriceDOMAIN中部分彩绘区域显示自定义指标。

对于绘画区域&#34;之间&#34;两个通用的自定义指标线(在&#34;振荡&#34;曲线之间),一个必须使用更多技巧,使用:

//--- plot dual-line-filled----------------------------------------------
#property indicator_label   "DEMO-Custom-2-Line-Filled-Indicator" 
#property indicator_type     DRAW_FILLING       // THE MAGIC FILL-STYLING
#property indicator_color    clrAqua,clrSalmon  // THE MAGIC FILL-STYLING
#property indicator_width    2

//--- Custom Indicator buffers -----------------------------------------
double         aCustomIndicatorLineDATA_buffer1[];
double         aCustomIndicatorLineDATA_buffer2[];

//--- Next, fill DATA as usually and the GUI shows the magic FILL-STYLING

反正:

  

享受 MQL4/MQL5

的狂野世界


感兴趣? May also like reading other MQL4low-latency trading posts

相关问题