2017-02-27 3 views

답변

2

예, 조건이 맞으면 수평선 또는 추세선을 그릴 수도 있고 가격 매개 변수를 업데이트 할 수도 있습니다. 선을 그리려면 다음 함수를 사용하십시오. ObjectSetDouble() :

bool HLineCreate(const long   chart_ID=0,  // chart's ID 
      const string   name="HLine",  // line name 
      const int    sub_window=0,  // subwindow index 
      double    price=0,   // line price 
      const color   clr=clrRed,  // line color 
      const ENUM_LINE_STYLE style=STYLE_SOLID, // line style 
      const int    width=1,   // line width 
      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 
{ 
//--- if the price is not set, set it at the current Bid price level 
if(!price) 
    price=SymbolInfoDouble(Symbol(),SYMBOL_BID); 
//--- reset the error value 
    ResetLastError(); 
//--- create a horizontal line 
if(!ObjectCreate(chart_ID,name,OBJ_HLINE,sub_window,0,price)) 
{ 
    Print(__FUNCTION__, 
     ": failed to create a horizontal line! Error code = ",GetLastError()); 
    return(false); 
} 
//--- set line color 
ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr); 
//--- set line display style 
ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style); 
//--- set line width 
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 line 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); 
}