第二十章 交易信号
这是用于管理交易信号的一组函数。这些功能允许:
• 获取有关交易信号的信息,可用于复制,
• 获取并设置信号复制设置,
• 使用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, // 属性标识符
);
2
3
参数
property_id
[in] 信号属性标识符。取值范围是 ENUM_SIGNAL_BASE_DOUBLE 枚举值之一。
返回值
选定信号的 双精度(double) 类型属性的值
# 20.2 SignalBaseGetInteger
返回选定信号 整数(integer)类型属性的值
long SignalBaseGetInteger(
ENUM_SIGNAL_BASE_INTEGER property_id, // 属性标识符
);
2
3
参数
property_id
[in] 信号属性标识符。取值范围是 ENUM_SIGNAL_BASE_INTEGER 枚举值之一。
返回值
选定信号的 整数(integer) 类型属性的值。
# 20.3 SignalBaseGetString
返回选定信号 字符串(string)类型属性的值
string SignalBaseGetString(
ENUM_SIGNAL_BASE_STRING property_id, // 属性标识符
);
2
3
参数
property_id
[in] 信号属性标识符。取值范围是 ENUM_SIGNAL_BASE_STRING 枚举值之一。
返回值
选定信号的 字符串(string) 类型属性的值。
# 20.4 SignalBaseSelect
从客户端提供的信号中选中一个信号源,用于进一步处理
bool SignalBaseSelect(
int index // 信号索引编号数字
);
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());
}
}
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();
返回值
在客户端可得到信号源总数量。
# 20.6 SignalInfoGetDouble
返回信号复制设置的 双精度(double) 类型属性的值。
double SignalInfoGetDouble(
ENUM_SIGNAL_INFO_DOUBLE property_id, // 属性标识符
);
2
3
参数
property_id
[in] 信号复制设置属性标识符。取值范围是 ENUM_SIGNAL_INFO_DOUBLE 枚举值之一。
返回值
信号复制设置的 双精度(double) 类型属性的值。
# 20.7 SignalInfoGetInteger
返回信号复制设置的 整数(integer) 类型属性的值。
long SignalInfoGetInteger(
ENUM_SIGNAL_INFO_INTEGER property_id, // 属性标识符
);
2
3
参数
property_id
[in] 信号复制设置属性标识符。取值范围是 ENUM_SIGNAL_INFO_INTEGER 枚举值之一。
返回值
信号复制设置的 整数(integer) 类型属性的值。
# 20.8 SignalInfoGetString
返回信号复制设置的 字符串(string)类型属性的值。
string SignalInfoGetString(
ENUM_SIGNAL_INFO_STRING property_id, // 属性标识符
);
2
3
参数
property_id
[in] 信号复制设置属性标识符。取值范围是 ENUM_SIGNAL_INFO_STRING 枚举值之一。
返回值
信号复制设置的 字符串(string)类型 属性的值。
# 20.9 SignalInfoSetDouble
设置信号复制的 双精度(double) 类型属性的值。
bool SignalInfoSetDouble(
ENUM_SIGNAL_INFO_DOUBLE property_id, // 属性标识符
double value // 新值
);
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 // 新值
);
2
3
4
参数
property_id
[in] 设置信号复制的属性标识符。取值范围是 ENUM_SIGNAL_INFO_INTEGER 枚举值之一。
value
[in] 信号复制设置属性的值。
返回值
如果属性改变成功返回true,否则返回 false。要想获取有关错误的更详细信息,可以调用GetLastError()函数。
# 20.11 SignalSubscribe
订阅交易信号。
bool SignalSubscribe(
long signal_id // 信号 id
);
2
3
参数
signal_id
[in] 信号标识符。
返回值
如果订阅成功返回true,否则返回false。要想获取有关错误的更详细信息,可以调用GetLastError()函数。
# 20.12 SignalUnsubscribe
取消订阅。
bool SignalUnsubscribe();
返回值
如果订阅成功取消返回true,否则返回false。要想获取有关错误的更详细信息,可以调用GetLastError()函数。