您现在的位置: 比特财富网 >> 财经 >  >> 外匯
EA編程教程大全之圖表函數
外_匯_邦 WaiHuiBang.com

 對於當前圖表有關的圖表物件的一組函數。www.emoneybtc.com

ObjectCreate  
ObjectDelete  
ObjectDescription  
ObjectFind  
ObjectGet  
ObjectGetFiboDescription  
ObjectGetShiftByValue  
ObjectGetValueByShift  
ObjectMove  
ObjectName  
ObjectsDeleteAll  
ObjectSet  
ObjectSetFiboDescription  
ObjectSetText  
ObjectsTotal  
ObjectType 

 

bool ObjectCreate( string name, int type, int window, datetime time1, double price1, void time2, void price2, void time3, void price3)

物件創建的指定名稱、類型和最初坐標的指定窗口。計數坐標與物件的關聯可以是從1到3物件類型。

如果函數成功,返回值將是 TRUE,否則,它將是 FALSE。獲得詳細的錯誤信息, 查看 GetLastError()函數。 OBJ_LABEL類型的物件忽略坐標。 使用ObjectSet() 設定 OBJPROP_XDISTANCE 和 OBJPROP_YDISTANCE 屬性。

注解: 子窗口圖表(如果子窗口帶有指標)編號從1 開始。主窗口的存在的索引為零。

必須通過的坐標: 時間和價格。 例如, OBJ_VLINE只物件需要時間,但必須通過價格(任何值)。

參量:

name  -  物件唯一名稱。  
type  -  物件類型。它可以是物件類型列舉的任意值。  
window  -  件窗口將增加的索引。窗口索引必須多於或等於0並且小於 WindowsTotal()。  
time1  -  第一點的時間部分。  
price1  -  第一點的值部分。  
time2  -  第二點的時間部分。  
price2  -  第二點的值部分。  
time3  -  第三點的時間部分。  
price3  -  第三點的值部分。  
 
示例:

  // 新文本物件 
  if(!ObjectCreate("text_object", OBJ_TEXT, 0, D'2004.02.20 12:30', 1.0045)) 
    { 
    Print("錯誤:不能創建文本! 代碼 #",GetLastError()); 
    return(0); 
    } 
  // 新文本標簽 
  if(!ObjectCreate("label_object", OBJ_LABEL, 0, 0, 0)) 
    { 
    Print("錯誤:不能創建文本! 代碼 #",GetLastError()); 
    return(0); 
    } 
  ObjectSet("label_object", OBJPROP_XDISTANCE, 200); 
  ObjectSet("label_object", OBJPROP_YDISTANCE, 100); 
 
 
 
 
 
bool ObjectDelete( string name)

刪除物件已有的指定名稱。 如果函數成功,返回值將是TRUE,否則,它將是 FALSE。

獲得詳細的錯誤信息, 查看GetLastError() 函數。

參量:

name  -  被刪除的物件名稱。  
 
示例:

ObjectDelete("text_object"); 
 
 
 
 
 
string ObjectDescription( string name)

返回物件描述。 對於OBJ_TEXT和OBJ_LABEL類型物件,這些物件文本將返回。

獲得詳細的錯誤信息,查看GetLastError() 函數。

參見 ObjectSetText() 函數。

參量:

name  -  物件名稱。  
 
示例:

  //  對於文件寫下圖表物件 
  int    handle, total; 
  string obj_name,fname; 
  // 文件名稱 
  fname="objlist_"+Symbol(); 
  handle=FileOpen(fname,FILE_CSV|FILE_WRITE); 
  if(handle!=false) 
    { 
    total=ObjectsTotal(); 
    for(int i=-;i<total;i++) 
      { 
        obj_name=ObjectName(i); 
        FileWrite(handle,"Object "+obj_name+" description= "+ObjectDescription(obj_name)); 
      } 
    FileClose(handle); 
    } 
 
 
 
 
int ObjectFind( string name)

查找指定的物件名稱。窗口的索引包含所找到的物件。如果它失敗, 返回值將是-1 。獲得詳細的錯誤信息, 查看 GetLastError() 函數。子窗口圖表(如果子窗口帶有指標)編號從1 開始。主窗口的索引為零。

參量:

name  -  查找的物件名稱。  
 
示例:

if(ObjectFind("line_object2")!=win_idx) return(0);

 

double ObjectGet( string name, int index)

函數返回指定物件的屬性。檢查錯誤,查看 GetLastError() 函數。

參見 ObjectSet()函數。

參量:

name  -  物件名稱。  
index  -  物件屬性索引。它可以是物件屬性列舉值的任意。  
 
示例:

color oldColor=ObjectGet("hline12", OBJPROP_COLOR); 
 
 
 
 
string ObjectGetFiboDescription( string name, int index)

函數返回對斐波納契物件的平實描述。相當數量斐波納契水平取決於物件類型。最大斐波納契水平是32。

獲得詳細的錯誤信息,查看 GetLastError() 函數。

參見 ObjectSetFiboDescription() 函數。

參量:

name  -  斐波納契物件名稱。  
index  -  斐波納契索引水平(0-31)。  
 
示例:

#include <stdlib.mqh> 
  ... 
  string text; 
  for(int i=0;i<32;i++) 
    { 
    text=ObjectGetFiboDescription(MyObjectName,i); 
    //---- 檢查物件少於32水平線 
    if(GetLastError()!=ERR_NO_ERROR) break; 
    Print(MyObjectName,"水平: ",i," description: ",text); 
    } 
 
 
 
 
 
 
int ObjectGetShiftByValue( string name, double value)

函數計算並返回索引柱(移動當前相關的柱)給出的值。 索引柱由第一和第二坐標應用線性方程計算。適用於趨勢線和相似的物件。獲得詳細的錯誤信息, 查看 GetLastError() 函數。

參見 ObjectGetValueByShift() 函數。

參量:

name  -  物件名稱。  
value  -  價格值。  
 
示例:

  int shift=ObjectGetShiftByValue("MyTrendLine#123", 1.34); 
 
 
 
 
 
double ObjectGetValueByShift( string name, int shift)

函數計算並返回指定柱的值(轉移當前相關的柱)。索引柱由第一和第二坐標應用線性方程計算。適用於趨勢線和相似的物件。獲得詳細的錯誤信息, 查看 GetLastError() 函數。

參見 ObjectGetShiftByValue() 函數。

參量:

name  -  物件名稱。  
shift  -  柱索引。  
 
示例:

  double price=ObjectGetValueByShift("MyTrendLine#123", 11); 
 
 
 
 
bool ObjectMove( string name, int point, datetime time1, double price1)

函數在圖移動一個物件座標。物件可能根據他們的類型有一個到三個座標。如果函數成功,返回值將是 TRUE,否則,它將是FALSE。獲得詳細的錯誤信息, 查看 GetLastError() 函數。物件坐標的開始數字必須是0。

參量:

name  -  物件名稱。  
point  -  坐標索引(0-2)。  
time1  -  新時間值。  
price1  -  新值。  
 
示例:

ObjectMove("MyTrend", 1, D'2005.02.25 12:30', 1.2345);

 

string ObjectName( int index)

在物件列表中用它的索引函數返回物件名稱。獲得詳細的錯誤信息, 查看 GetLastError() 函數。

參量:

index  -  在物件列表中的物件索引。物件索引必須超過或等於0並且小於ObjectsTotal()。  
 
示例:

  int    obj_total=ObjectsTotal(); 
  string name; 
  for(int i=0;i<obj_total;i++) 
    { 
    name=ObjectName(i); 
    Print(i,"物件名稱為 " + name); 
    } 
 
 
 
 
 
 
int ObjectsDeleteAll( void window, void type)

在圖表的子窗口刪除全部類型物件。函數返回刪除物件數。獲得詳細的錯誤信息, 查看 GetLastError() 函數。

注解: 子窗口圖表(如果子窗口帶有指標)編號從1 開始。主窗口的存在的索引為零。如果窗口索引錯誤或值為-1,物件 會從現有的圖表中刪除。

如果類型 值等與-1 或這個參量是錯誤的,在子窗口的全部指定物件將被刪除。

參量:

window  -  選擇參量。 物件的索引窗口將被刪除。 必須超過或等於 -1 (EMPTY為默認值)並且小於 WindowsTotal()。
type  -  選擇參量。被刪除的物件類型。它可以是 任意列舉值的物件類型或EMPTY常數刪除所有物件類型。
 
示例:

  ObjectsDeleteAll(2, OBJ_HLINE); // 從第二子窗口移除全部水平線。 
  ObjectsDeleteAll(2);            // 從第二子窗口移除全部物件。 
  ObjectsDeleteAll();            //從圖表中移除全部物件。 
 
 
 
 
 
bool ObjectSet( string name, int index, double value)

改變指定物件屬性的值。如果函數成功, 返回值將是 TRUE。否則, 它將是FALSE. 獲得詳細的錯誤信息, 查看 GetLastError() 函數。

參見 ObjectGet() 函數。

參量:

name  -  物件名稱。  
index  -  物件索引值。 它可以是列舉的任意物件屬性值。  
value  -  新的屬性值。  
 
示例:

  // moving the first coord to the last bar time 
  ObjectSet("MyTrend", OBJPROP_TIME1, Time[0]); 
  // setting the second fibo level 
  ObjectSet("MyFibo", OBJPROP_FIRSTLEVEL+1, 1.234); 
  // setting object visibility. object will be shown only on 15 minute and 1 hour charts 
  ObjectSet("MyObject", OBJPROP_TIMEFRAMES, OBJ_PERIOD_M15 | OBJ_PERIOD_H1); 
 
 
 
 
 
bool ObjectSetFiboDescription( string name, int index, string text)

函數分配一個新的描述到斐波納契物件的水平。 相當數量斐波納契水平取決於物件類型。最大金額斐波納契水平是32。

獲得詳細的錯誤信息,查看 GetLastError() 函數。

參量:

name  -  物件名稱。  
index  -  斐波納契索引水平(0-31)。  
text  -  新的水平描述  
 
示例:

ObjectSetFiboDescription("MyFiboObject",2,"Second line");

 

bool ObjectSetText( string name, string text, int font_size, void font, void text_color)  
改變物件描述。對於OBJ_TEXT 和OBJ_LABEL物件的描述作為圖表的文本顯示。如果函數成功, 返回的值將是TRUE。 否則, 它是FALSE。獲得詳細的錯誤信息, 查看GetLastError() 函數。

只有字體大小,字體名稱和文本顏色參量使用為 font_size, font_name和 text_color 物件。為其它類型 物件, 這些參量被忽略。

參見 ObjectDescription() 函數。

參量:

name  -  物件名稱。  
text  -  描述物件文本。  
font_size  -  字體大小點數。  
font  -  字體名稱。  
text_color  -  文本顏色。  
 
示例:

ObjectSetText("text_object", "Hello world!", 10, "Times New Roman", Green); 
 
 
 
 
int ObjectsTotal( void type)

在圖表中返回指定物件類型總量。

參量:

type  -  選擇參量。將計數的物件類型。它可以是物件類型列舉的任意值或EMPTY常數計算全部類型物件。

示例:

  int    obj_total=ObjectsTotal(); 
  string name; 
  for(int i=0;i<obj_total;i++) 
    { 
    name=ObjectName(i); 
    Print(i,"對於 #的物件名稱",i," is " + name); 
    } 
 
 
 
 
int ObjectType( string name)

函數返回 物件類型值。獲得詳細的錯誤信息, 查看 GetLastError() 函數。

參量:

name  -  物件名稱。  
 
示例:

if(ObjectType("line_object2")!=OBJ_HLINE) return(0);

外_匯_邦 WaiHuiBang.com
  風險提示:比特財富網的各種信息資料僅供參考,不構成任何投資建議,不對任何交易提供任何擔保,亦不構成任何邀約,不作為任何法律文件,投資人據此進行投資交易而產生的後果請自行承擔,本網站不承擔任何責任,理財有風險,投資需謹慎。
比特財富網 版權所有 © www.emoneybtc.com