PositionSelect
PositionSelect
为接下来的工作选择一个仓位,如果函数成功完成,返回true,如果失败返回false,调用 GetLastError()函数获取错误信息。
bool PositionSelect(
string symbol // 交易品种名称
);参量
- 交易品种
[in] 金融证券名称
返回值
布尔型值
注释
对于每个交易品种,任何给出时间,仅可以持有一个仓位,它是一个或者多个交易的结果,不要弄混挂单仓位,也会在客户端“工具箱”的“交易”中显示。
函数PositionSelect()复制程序函数的位置数据,进一步调用PositionGetDouble(), PositionGetInteger() 和 PositionGetString() 返回较早的复制数据。表明该位置本身已经不再存在(或者成交量,方向等的改变),但位置数据仍旧可以获得,为了确保关于位置的新数据的接受,在提及他们之前,推荐使用PositionSelect()函数。
示例:
#define SYMBOL_NAME "EURUSD"
//+------------------------------------------------------------------+
//| 脚本程序起始函数 |
//+------------------------------------------------------------------+
void OnStart()
{
//--- 选择指定交易品种的仓位
if(!PositionSelect(SYMBOL_NAME))
{
PrintFormat("PositionSelect(%s) failed. Error %d",SYMBOL_NAME, GetLastError());
return;
}
//--- 如果选定了仓位, 我们可以使用 PositionGetDouble(), PositionGetInteger() 和 PositionGetString() 来获取它的数据
//--- 取得选定仓位的编号
ResetLastError();
long ticket=PositionGetInteger(POSITION_TICKET);
if(ticket==0)
{
PrintFormat("Failed to get %s position ticket. Error %d", SYMBOL_NAME, GetLastError());
return;
}
//--- 如果成功取得编号, 在日志中打印选定仓位的交易品种和编号
PrintFormat("The position that is selected on the %s symbol has ticket %I64d", SYMBOL_NAME, ticket);
/*
结果:
The position that is selected on the EURUSD symbol has ticket 2810846623
*/
}