Symbol Properties
符号属性
市场信息标识符,用于与MarketInfo()函数配合使用。它可以是以下值之一:
| ID | 值 | 描述 |
|---|---|---|
| MODE_LOW | 1 | 低日价格 |
| MODE_HIGH | 2 | 高日价格 |
| MODE_TIME | 5 | 最后传入的 tick 时间(最后已知的服务器时间) |
| MODE_BID | 9 | 最后传入的买入价。对于当前符号,存储在预定义变量 Bid 中 |
| MODE_ASK | 10 | 最后传入的卖出价。对于当前符号,存储在预定义变量 Ask 中 |
| MODE_POINT | 11 | 报价货币中的点数大小。对于当前符号,存储在预定义变量 Point 中 |
| MODE_DIGITS | 12 | 符号价格中小数点后的位数。对于当前符号,存储在预定义变量 Digits 中 |
| MODE_SPREAD | 13 | 点数形式的价差值 |
| MODE_STOPLEVEL | 14 | 点数形式的止损水平 MODE_STOPLEVEL 的零值意味着没有对止损/获利盘最小距离的限制,或者交易服务器使用某些外部机制进行动态水平控制,这些机制无法在客户端终端中转换。在第二种情况下,GetLastError() 可以返回错误 130,因为 MODE_STOPLEVEL 在这里实际上是“浮动”的。 |
| MODE_LOTSIZE | 15 | 基础货币中的手数大小 |
| MODE_TICKVALUE | 16 | 存款货币中的 tick 值 |
| MODE_TICKSIZE | 17 | 点数形式的 tick 大小 |
| MODE_SWAPLONG | 18 | 买入订单的 Swap |
| MODE_SWAPSHORT | 19 | 卖出订单的 Swap |
| MODE_STARTING | 20 | 市场开始日期(通常用于期货) |
| MODE_EXPIRATION | 21 | 市场到期日期(通常用于期货) |
| MODE_TRADEALLOWED | 22 | 允许对该符号进行交易 |
| MODE_MINLOT | 23 | 允许的最小手数金额 |
| MODE_LOTSTEP | 24 | 更改手数的步长 |
| MODE_MAXLOT | 25 | 允许的最大手数金额 |
| MODE_SWAPTYPE | 26 | Swap 计算方式。0 - 以点数计算;1 - 以符号基础货币计算;2 - 通过利息计算;3 - 以保证金货币计算 |
| MODE_PROFITCALCMODE | 27 | 利润计算模式。0 - 外汇;1 - CFD;2 - 期货 |
| MODE_MARGINCALCMODE | 28 | 保证金计算模式。0 - 外汇;1 - CFD;2 - 期货;3 - 指数 CFD |
| MODE_MARGININITIAL | 29 | 1手订单的初始保证金要求 |
| MODE_MARGINMAINTENANCE | 30 | 为1手订单计算的维持未平仓订单的保证金 |
| MODE_MARGINHEDGED | 31 | 为1手订单计算的对冲保证金 |
| MODE_MARGINREQUIRED | 32 | 开仓买入1手订单所需的自由保证金 |
| MODE_FREEZELEVEL | 33 | 订单冻结水平(以点数计)。如果执行价格位于冻结水平定义的范围内,则无法修改、取消或关闭订单 |
| MODE_CLOSEBY_ALLOWED | 34 | 允许使用OrderCloseBy()来关闭指定符号上的相反订单 |
示例:
//+------------------------------------------------------------------+
//| The script prints information on symbol |
//+------------------------------------------------------------------+
void OnStart()
{
Print("Symbol=",Symbol());
Print("Low day price=",MarketInfo(Symbol(),MODE_LOW));
Print("High day price=",MarketInfo(Symbol(),MODE_HIGH));
Print("The last incoming tick time=",(MarketInfo(Symbol(),MODE_TIME)));
Print("Last incoming bid price=",MarketInfo(Symbol(),MODE_BID));
Print("Last incoming ask price=",MarketInfo(Symbol(),MODE_ASK));
Print("Point size in the quote currency=",MarketInfo(Symbol(),MODE_POINT));
Print("Digits after decimal point=",MarketInfo(Symbol(),MODE_DIGITS));
Print("Spread value in points=",MarketInfo(Symbol(),MODE_SPREAD));
Print("Stop level in points=",MarketInfo(Symbol(),MODE_STOPLEVEL));
Print("Lot size in the base currency=",MarketInfo(Symbol(),MODE_LOTSIZE));
Print("Tick value in the deposit currency=",MarketInfo(Symbol(),MODE_TICKVALUE));
Print("Tick size in points=",MarketInfo(Symbol(),MODE_TICKSIZE));
Print("Swap of the buy order=",MarketInfo(Symbol(),MODE_SWAPLONG));
Print("Swap of the sell order=",MarketInfo(Symbol(),MODE_SWAPSHORT));
Print("Market starting date (for futures)=",MarketInfo(Symbol(),MODE_STARTING));
Print("Market expiration date (for futures)=",MarketInfo(Symbol(),MODE_EXPIRATION));
Print("Trade is allowed for the symbol=",MarketInfo(Symbol(),MODE_TRADEALLOWED));
Print("Minimum permitted amount of a lot=",MarketInfo(Symbol(),MODE_MINLOT));
Print("Step for changing lots=",MarketInfo(Symbol(),MODE_LOTSTEP));
Print("Maximum permitted amount of a lot=",MarketInfo(Symbol(),MODE_MAXLOT));
Print("Swap calculation method=",MarketInfo(Symbol(),MODE_SWAPTYPE));
Print("Profit calculation mode=",MarketInfo(Symbol(),MODE_PROFITCALCMODE));
Print("Margin calculation mode=",MarketInfo(Symbol(),MODE_MARGINCALCMODE));
Print("Initial margin requirements for 1 lot=",MarketInfo(Symbol(),MODE_MARGININIT));
Print("Margin to maintain open orders calculated for 1 lot=",MarketInfo(Symbol(),MODE_MARGINMAINTENANCE));
Print("Hedged margin calculated for 1 lot=",MarketInfo(Symbol(),MODE_MARGINHEDGED));
Print("Free margin required to open 1 lot for buying=",MarketInfo(Symbol(),MODE_MARGINREQUIRED));
Print("Order freeze level in points=",MarketInfo(Symbol(),MODE_FREEZELEVEL));
}要获取当前市场信息,有几种函数:SymbolInfoInteger()、SymbolInfoDouble()和SymbolInfoString()。第一个参数是符号名称,第二个函数的参数值可以是ENUM_SYMBOL_INFO_INTEGER、ENUM_SYMBOL_INFO_DOUBLE和ENUM_SYMBOL_INFO_STRING的标识符之一。
对于函数SymbolInfoInteger():
ENUM_SYMBOL_INFO_INTEGER
| 标识符 | 描述 | 类型 |
|---|---|---|
| SYMBOL_SELECT | 符号在Market Watch中被选中。 一些符号可以在Market Watch中隐藏,但仍被视为已选中。 | bool |
| SYMBOL_VISIBLE | 符号在Market Watch中可见。 一些符号(主要是用于计算保证金要求或存款货币利润的交叉汇率)会自动选中,但通常不在Market Watch中显示。要显示这些符号,必须显式选择。 | bool |
| SYMBOL_SESSION_DEALS | 不支持 | long |
| SYMBOL_SESSION_BUY_ORDERS | 不支持 | long |
| SYMBOL_SESSION_SELL_ORDERS | 不支持 | long |
| SYMBOL_VOLUME | 不支持 | long |
| SYMBOL_VOLUMEHIGH | 不支持 | long |
| SYMBOL_VOLUMELOW | 不支持 | long |
| SYMBOL_TIME | 最后报价的时间 | datetime |
| SYMBOL_DIGITS | 小数点后的位数 | int |
| SYMBOL_SPREAD_FLOAT | 浮动差价的指示 | bool |
| SYMBOL_SPREAD | 点数形式的价差值 | int |
| SYMBOL_TRADE_CALC_MODE | 合约价格计算模式 | int |
| SYMBOL_TRADE_MODE | 订单执行类型 | ENUM_SYMBOL_TRADE_MODE |
| SYMBOL_START_TIME | 符号交易开始的日期(通常用于期货) | datetime |
| SYMBOL_EXPIRATION_TIME | 符号交易结束的日期(通常用于期货) | datetime |
| SYMBOL_TRADE_STOPS_LEVEL | 从当前收盘价到放置止损订单的最小距离(以点数计) | int |
| SYMBOL_TRADE_FREEZE_LEVEL | 冻结交易操作的距离(以点数计) | int |
| SYMBOL_TRADE_EXEMODE | 交易执行模式 | ENUM_SYMBOL_TRADE_EXECUTION |
| SYMBOL_SWAP_MODE | Swap 计算模型 | int |
| SYMBOL_SWAP_ROLLOVER3DAYS | 收取3天 Swap 滚动的星期几 | ENUM_DAY_OF_WEEK |
| SYMBOL_EXPIRATION_MODE | 不支持 | int |
| SYMBOL_FILLING_MODE | 不支持 | int |
| SYMBOL_ORDER_MODE | 不支持 | int |
对于函数SymbolInfoDouble():
ENUM_SYMBOL_INFO_DOUBLE
| 标识符 | 描述 | 类型 |
|---|---|---|
| SYMBOL_BID | 买入价 - 最佳卖出报价 | double |
| SYMBOL_BIDHIGH | 不支持 | double |
| SYMBOL_BIDLOW | 不支持 | double |
| SYMBOL_ASK | 卖出价 - 最佳买入报价 | double |
| SYMBOL_ASKHIGH | 不支持 | double |
| SYMBOL_ASKLOW | 不支持 | double |
| SYMBOL_LAST | 不支持 | double |
| SYMBOL_LASTHIGH | 不支持 | double |
| SYMBOL_LASTLOW | 不支持 | double |
| SYMBOL_POINT | 符号点数值 | double |
| SYMBOL_TRADE_TICK_VALUE_PROFIT | SYMBOL_TRADE_TICK_VALUE_PROFIT的值 | double |
| SYMBOL_TRADE_TICK_VALUE_PROFIT | 不支持 | double |
| SYMBOL_TRADE_TICK_VALUE_LOSS | 不支持 | double |
| SYMBOL_TRADE_TICK_SIZE | 最小价格变化 | double |
| SYMBOL_TRADE_CONTRACT_SIZE | 交易合约大小 | double |
| SYMBOL_VOLUME_MIN | 交易的最小量 | double |
| SYMBOL_VOLUME_MAX | 交易的最大量 | double |
| SYMBOL_VOLUME_STEP | 交易执行的最小量变化步长 | double |
| SYMBOL_VOLUME_LIMIT | 不支持 | double |
| SYMBOL_SWAP_long | 买入订单的 Swap值 | double |
| SYMBOL_SWAP_short | 卖出订单的 Swap值 | double |
| SYMBOL_MARGIN_INITIAL | 初始保证金是指以保证金货币开单1手所需的金额。用于检查客户进入市场时的资产状况。 | double |
| SYMBOL_MARGIN_MAINTENANCE | 维护保证金。如果设置了,则设置符号的保证金金额,从1手收取。用于检查客户账户状态变化时的资产状况。如果维护保证金等于0,则使用初始保证金。 | double |
| SYMBOL_MARGIN_long | 不支持 | double |
| SYMBOL_MARGIN_short | 不支持 | double |
| SYMBOL_MARGIN_LIMIT | 不支持 | double |
| SYMBOL_MARGIN_STOP | 不支持 | double |
| SYMBOL_MARGIN_STOPLIMIT | 不支持 | double |
| SYMBOL_SESSION_VOLUME | 不支持 | double |
| SYMBOL_SESSION_TURNOVER | 不支持 | double |
| SYMBOL_SESSION_INTEREST | 不支持 | double |
| SYMBOL_SESSION_BUY_ORDERS_VOLUME | 不支持 | double |
| SYMBOL_SESSION_SELL_ORDERS_VOLUME | 不支持 | double |
| SYMBOL_SESSION_OPEN | 不支持 | double |
| SYMBOL_SESSION_CLOSE | 不支持 | double |
| SYMBOL_SESSION_AW | 不支持 | double |
| SYMBOL_SESSION_PRICE_SETTLEMENT | 不支持 | double |
| SYMBOL_SESSION_PRICE_LIMIT_MIN | 不支持 | double |
| SYMBOL_SESSION_PRICE LIMIT_MAX | 不支持 | double |
对于函数SymbolInfoString():
ENUM_SYMBOL_INFO_STRING
| 标识符 | 描述 | 类型 |
|---|---|---|
| SYMBOL_CURRENCY_BASE | 符号的基础货币 | string |
| SYMBOL_CURRENCY_PROFIT | 利润货币 | string |
| SYMBOL_CURRENCY_MARGIN | 保证金货币 | string |
| SYMBOL_DESCRIPTION | 符号描述 | string |
| SYMBOL_PATH | 符号树中的路径 | string |
有几种符号交易模式。特定符号的交易模式信息反映在ENUM_SYMBOL_TRADE_MODE枚举的值中。
ENUM_SYMBOL_TRADE_MODE
| 标识符 | 描述 |
|---|---|
| SYMBOL_TRADE_MODE_DISABLED | 该符号的交易被禁用 |
| SYMBOL_TRADE_MODE_LONGONLY* | 仅允许长仓 |
| SYMBOL_TRADE_MODE_SHORTONLY* | 仅允许短仓 |
| SYMBOL_TRADE_MODE_CLOSEONLY | 仅允许关闭持仓操作 |
| SYMBOL_TRADE_MODE_FULL | 没有交易限制 |
特定符号的可能交易执行模式在ENUM_SYMBOL_TRADE_EXECUTION枚举中定义。
ENUM_SYMBOL_TRADE_EXECUTION
| 标识符 | 描述 |
|---|---|
| SYMBOL_TRADE_EXECUTION_REQUEST | 请求执行 |
| SYMBOL_TRADE_EXECUTION_INSTANT | 即时执行 |
| SYMBOL_TRADE_EXECUTION_MARKET | 市场执行 |
| SYMBOL_TRADE_EXECUTION_EXCHANGE* | 交易所执行 |
*这些值在MQL4中不使用(为与MQL5兼容而添加)。
ENUM_DAY_OF_WEEK枚举的值用于指定星期几。
ENUM_DAY_OF_WEEK
| 标识符 | 描述 |
|---|---|
| SUNDAY | 星期日 |
| MONDAY | 星期一 |
| TUESDAY | 星期二 |
| WEDNESDAY | 星期三 |
| THURSDAY | 星期四 |
| FRIDAY | 星期五 |
| SATURDAY | 星期六 |
最后更新于