诚信为本
量力而为
当前位置:ea编程网 EA知识 正文

创建和管理MQL4中的箭头对象

本文深入探讨了在MQL4编程语言中如何创建和管理箭头对象,这些对象可用于图表上的可视化提示和指示。通过详细分析箭头对象的属性设置和使用方法,读者将能够更好地理解如何在MetaTrader 4平台上利用这些功能增强其交易应用程序的功能性。

MQL4中的箭头对象

OBJ_ARROW

箭头对象的基本定义和属性设置。

在MetaEditor中编写代码时,通过设置适当的OBJPROP_WIDTH属性值,可以创建大箭头(超过5个箭头)。

您可以使用Wingdings字体的符号代码来选择所需的箭头类型。

示例

以下脚本在图表上创建箭头对象并更改其类型。特殊功能已被开发用于创建和更改图形对象的属性,您可以直接在自己的应用程序中使用这些功能。

#property strict 
//--- description 
#property description "Script creates a random arrow in the chart window." 
#property description "Anchor point coordinate is set in" 
#property description "percentage of the chart window size." 
//--- display window of the input parameters during the script's launch 
#property script_show_inputs 
//--- input parameters of the script 
input string            InpName="Arrow";        // Arrow name 
input int               InpDate=50;             // Anchor point date in % 
input int               InpPrice=50;            // Anchor point price in % 
input ENUM_ARROW_ANCHOR InpAnchor=ANCHOR_TOP;   // Anchor type 
input color             InpColor=clrDodgerBlue; // Arrow color 
input ENUM_LINE_STYLE   InpStyle=STYLE_SOLID;   // Border line style 
input int               InpWidth=10;            // Arrow size 
input bool              InpBack=false;          // Background arrow 
input bool              InpSelection=false;     // Highlight to move 
input bool              InpHidden=true;         // Hidden in the object list 
input long              InpZOrder=0;            // Priority for mouse click 

//+------------------------------------------------------------------+ 
//| Create the arrow                                                 | 
//+------------------------------------------------------------------+ 
bool ArrowCreate(const long              chart_ID=0,           // chart's ID 
                 const string            name="Arrow",         // arrow name 
                 const int               sub_window=0,         // subwindow index 
                 datetime                time=0,               // anchor point time 
                 double                  price=0,              // anchor point price 
                 const uchar             arrow_code=252,       // arrow code 
                 const ENUM_ARROW_ANCHOR anchor=ANCHOR_BOTTOM, // anchor point position 
                 const color             clr=clrRed,           // arrow color 
                 const ENUM_LINE_STYLE   style=STYLE_SOLID,    // border line style 
                 const int               width=3,              // arrow size 
                 const bool              back=false,           // in the background 
                 const bool              selection=true,       // highlight to move 
                 const bool              hidden=true,          // hidden in the object list 
                 const long              z_order=0)            // priority for mouse click 
{
   //--- set anchor point coordinates if they are not set 
   ChangeArrowEmptyPoint(time,price); 
   //--- reset the error value 
   ResetLastError(); 
   //--- create an arrow 
   if(!ObjectCreate(chart_ID,name,OBJ_ARROW,sub_window,time,price)) 
   { 
      Print(__FUNCTION__, ": failed to create an arrow! Error code = ",GetLastError()); 
      return(false); 
   } 
   //--- set the arrow code 
   ObjectSetInteger(chart_ID,name,OBJPROP_ARROWCODE,arrow_code); 
   //--- set anchor type 
   ObjectSetInteger(chart_ID,name,OBJPROP_ANCHOR,anchor); 
   //--- set the arrow color 
   ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr); 
   //--- set the border line style 
   ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style); 
   //--- set the arrow's size 
   ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width); 
   //--- display in the foreground (false) or background (true) 
   ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back); 
   //--- enable (true) or disable (false) the mode of moving the arrow by mouse 
   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection); 
   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection); 
   //--- hide (true) or display (false) graphical object name in the object list 
   ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden); 
   //--- set the priority for receiving the event of a mouse click in the chart 
   ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order); 
   //--- successful execution 
   return(true); 
} 

通过本文,您将掌握如何利用MQL4中的箭头对象功能,增强您的交易策略和指标的可视化效果,提升交易决策的准确性和效率。

未经允许不得转载:ea编程网 » 创建和管理MQL4中的箭头对象