PositionGetSymbol
PositionGetSymbol
返回的交易品种与开仓位置的值保持一致,使用 PositionGetDouble, PositionGetInteger, PositionGetString函数为下一项操作自动选择位置。
string PositionGetSymbol(
int index // 仓位列表中的数量
);参量
- index
[in] 开仓位置的列表位置数量。
返回值
字符串 型值,如果找不到位置,返回空字符串,为了获得 错误代码,调用 GetLastError() 函数。
注释
对于每一个交易品种,任何给出的时间段,只有一个仓位可以开放, 它能促成一笔或多笔交易的产生,不要弄混 挂单 位置,也会在客户端“工具箱”的“交易”中显示。
示例:
//+------------------------------------------------------------------+
//| 脚本程序起始函数 |
//+------------------------------------------------------------------+
void OnStart()
{
//--- 取得账户中开启的仓位数量
int total=PositionsTotal();
for(int i=0; i<total; i++)
{
//--- 根据 i 循环索引取得仓位交易品种
ResetLastError();
string symbol=PositionGetSymbol(i);
//--- 如果成功得到交易品种, 位于 i 索引的仓位会自动被选择
//--- 然后我们就可以使用 PositionGetDouble, PositionGetInteger 和 PositionGetString 取得它的属性
if(symbol!="")
{
ENUM_POSITION_TYPE type=(ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE);
PrintFormat("Position symbol at index %d: %s, position type: %s", i, symbol, StringSubstr(EnumToString(type), 14));
}
else
{
PrintFormat("PositionGetSymbol(%d) failed. Error %d", i, GetLastError());
continue;
}
}
/*
结果:
Position symbol at index 0: GBPUSD, position type: SELL
Position symbol at index 1: EURUSD, position type: BUY
*/
}