第二十章 交易信号

这是用于管理交易信号的一组函数。这些功能允许:
• 获取有关交易信号的信息,可用于复制, • 获取并设置信号复制设置, • 使用MQL5语言功能订阅和取消订阅信号复制。

函数 功能
SignalBaseGetDouble 返回选定信号 双精度(double)类型属性的值
SignalBaseGetInteger 返回选定信号 整数(integer)类型属性的值
SignalBaseGetString 返回选定信号 字符串(string)类型属性的值
SignalBaseSelect 从客户端提供的信号中选中一个信号源,用于进一步处理
SignalBaseTotal 返回在客户端可得到信号源总数量
SignalInfoGetDouble 返回信号复制设置的双精度(double)类型属性的值
SignalInfoGetInteger 返回信号复制设置的整数(integer)类型属性的值
SignalInfoGetString 返回信号复制设置的字符串(string)类型属性的值
SignalInfoSetDouble 设置信号复制的双精度(double)类型属性的值
SignalInfoSetInteger 设置信号复制的整数(integer)类型属性的值
SignalSubscribe 订阅交易信号
SignalUnsubscribe 取消订阅

# 20.1 SignalBaseGetDouble

返回选定信号 双精度(double)类型属性的值

double  SignalBaseGetDouble( 
   ENUM_SIGNAL_BASE_DOUBLE     property_id,     // 属性标识符 
   );
1
2
3

参数

property_id

[in] 信号属性标识符。取值范围是 ENUM_SIGNAL_BASE_DOUBLE 枚举值之一。

返回值

选定信号的 双精度(double) 类型属性的值

# 20.2 SignalBaseGetInteger

返回选定信号 整数(integer)类型属性的值

long  SignalBaseGetInteger( 
   ENUM_SIGNAL_BASE_INTEGER     property_id,     // 属性标识符 
   );
1
2
3

参数

property_id

[in] 信号属性标识符。取值范围是 ENUM_SIGNAL_BASE_INTEGER 枚举值之一。

返回值

选定信号的 整数(integer) 类型属性的值。

# 20.3 SignalBaseGetString

返回选定信号 字符串(string)类型属性的值

string  SignalBaseGetString( 
   ENUM_SIGNAL_BASE_STRING     property_id,     // 属性标识符 
   );
1
2
3

参数

property_id

[in] 信号属性标识符。取值范围是 ENUM_SIGNAL_BASE_STRING 枚举值之一。

返回值

选定信号的 字符串(string) 类型属性的值。

# 20.4 SignalBaseSelect

从客户端提供的信号中选中一个信号源,用于进一步处理

bool  SignalBaseSelect( 
   int     index     // 信号索引编号数字 
   );
1
2
3

参数

index

[in] 基于交易信号的索引位置编号。

返回值

如果成功返回true,否则返回false。要想获取有关错误的更详细信息,可以调用GetLastError()函数。

示例:

void OnStart() 
  { //--- 获得程序端信号的总数 
    int total=SignalBaseTotal(); 
    
	//--- 处理所有信号 
	for(int i=0;i<total;i++) 
	  { //--- 选择指数信号 
	   if (SignalBaseSelect(i)) 
	     { //--- 获得信号属性 
		  long id =SignalBaseGetInteger(SIGNAL_BASE_ID); // 信号id 
		  long pips =SignalBaseGetInteger(SIGNAL_BASE_PIPS); // 利润点 
		  long subscr=SignalBaseGetInteger(SIGNAL_BASE_SUBSCRIBERS); // 订阅人数量 
		  string name =SignalBaseGetString(SIGNAL_BASE_NAME); // 信号名称 
		  double price =SignalBaseGetDouble(SIGNAL_BASE_PRICE); // 信号价格 
		  string curr =SignalBaseGetString(SIGNAL_BASE_CURRENCY); // 信号货币单位 
		  
		  //--- 打印所有订阅人的获利免费信号 
		  if(price==0.0 && pips > 0 && subscr > 0) 
		    PrintFormat("id=%d, name=\"%s\", currency=%s, pips=%d, subscribers=%d",id,name,curr,pips,subscr); } 
		  else 
		    PrintFormat("Error in call of SignalBaseSelect. Error code=%d",GetLastError()); 
	     } 
	}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

# 20.5 SignalBaseTotal

返回在客户端可得到信号源总数量。

int  SignalBaseTotal();
1

返回值

在客户端可得到信号源总数量。

# 20.6 SignalInfoGetDouble

返回信号复制设置的 双精度(double) 类型属性的值。

double  SignalInfoGetDouble( 
   ENUM_SIGNAL_INFO_DOUBLE     property_id,     // 属性标识符 
   );
1
2
3

参数

property_id

[in] 信号复制设置属性标识符。取值范围是 ENUM_SIGNAL_INFO_DOUBLE 枚举值之一。

返回值

信号复制设置的 双精度(double) 类型属性的值。

# 20.7 SignalInfoGetInteger

返回信号复制设置的 整数(integer) 类型属性的值。

long  SignalInfoGetInteger( 
   ENUM_SIGNAL_INFO_INTEGER     property_id,     // 属性标识符 
   );
1
2
3

参数

property_id

[in] 信号复制设置属性标识符。取值范围是 ENUM_SIGNAL_INFO_INTEGER 枚举值之一。

返回值

信号复制设置的 整数(integer) 类型属性的值。

# 20.8 SignalInfoGetString

返回信号复制设置的 字符串(string)类型属性的值。

string  SignalInfoGetString( 
   ENUM_SIGNAL_INFO_STRING     property_id,     // 属性标识符 
   );
1
2
3

参数

property_id

[in] 信号复制设置属性标识符。取值范围是 ENUM_SIGNAL_INFO_STRING 枚举值之一。

返回值

信号复制设置的 字符串(string)类型 属性的值。

# 20.9 SignalInfoSetDouble

设置信号复制的 双精度(double) 类型属性的值。

bool  SignalInfoSetDouble( 
   ENUM_SIGNAL_INFO_DOUBLE      property_id,     // 属性标识符 
   double                       value            // 新值 
   );
1
2
3
4

参数

property_id

[in] 设置信号复制的属性标识符。取值范围是 ENUM_SIGNAL_INFO_DOUBLE 枚举值之一。

value

[in] 信号复制设置属性的值。

返回值

如果属性改变成功返回true,否则返回 false。要想获取有关错误的更详细信息,可以调用GetLastError()函数。

# 20.10 SignalInfoSetInteger

设置信号复制的 整数(integer) 类型属性的值。

bool  SignalInfoSetInteger( 
   ENUM_SIGNAL_INFO_INTEGER     property_id,     // 属性标识符 
   long                         value            // 新值 
   );
1
2
3
4

参数

property_id

[in] 设置信号复制的属性标识符。取值范围是 ENUM_SIGNAL_INFO_INTEGER 枚举值之一。

value

[in] 信号复制设置属性的值。

返回值

如果属性改变成功返回true,否则返回 false。要想获取有关错误的更详细信息,可以调用GetLastError()函数。

# 20.11 SignalSubscribe

订阅交易信号。

bool  SignalSubscribe( 
   long     signal_id     // 信号 id  
   );
1
2
3

参数

signal_id

[in] 信号标识符。

返回值

如果订阅成功返回true,否则返回false。要想获取有关错误的更详细信息,可以调用GetLastError()函数。

# 20.12 SignalUnsubscribe

取消订阅。

bool  SignalUnsubscribe();
1

返回值

如果订阅成功取消返回true,否则返回false。要想获取有关错误的更详细信息,可以调用GetLastError()函数。