轻松快捷开发 MetaTrader 程序的函数库(第十五部分):品种对象集合·进阶篇
🗂️

轻松快捷开发 MetaTrader 程序的函数库(第十五部分):品种对象集合·进阶篇

(2/3)· 当品种散落于不同服务器目录,靠文件夹名归类必然翻车,这篇给出更稳的抽象方案

含代码示例偏理论 第 2/3 篇
很多开发者习惯直接读服务器品种目录树的文件夹名来分类,结果同一品种在不同券商名下乱跳。用自定义名称数组加保证金计算模式做两次检查,才能把分类权握在自己手里。

「挂单与持仓的保证金属性怎么读」

MT5 的 SYMBOL_PROP_MARGIN_* 枚举把保证金拆成了初始与维持两套,且对多空和四类订单(市价、Stop、Limit、StopLimit)分别给出。做多挂单用 BUY_STOP / BUY_LIMIT / BUY_STOPLIMIT 后缀,做空则用 SELL_* 和 SHORT 对应,回测或实盘前应先确认经纪商下这些字段返回值是否为 0——返回 0 往往意味着该品种不支持对应挂单类型。 下面这段枚举片段直接列出了部分属性名与注释含义,可贴入 MT5 头文件对照: SYMBOL_PROP_MARGIN_BUY_STOP_MAINTENANCE 对应 BuyStop 挂单的维持保证金;SYMBOL_PROP_MARGIN_BUY_LIMIT_MAINTENANCE 对应 BuyLimit 的维持保证金;SYMBOL_PROP_MARGIN_BUY_STOPLIMIT_MAINTENANCE 对应 BuyStopLimit 的维持保证金。 SYMBOL_PROP_MARGIN_SHORT_INITIAL 是空头持仓初始保证金;SYMBOL_PROP_MARGIN_SELL_STOP_INITIAL / SELL_LIMIT_INITIAL / SELL_STOPLIMIT_INITIAL 分别是三类卖挂单的初始保证金;SYMBOL_PROP_MARGIN_SHORT_MAINTENANCE 及 SELL_STOP / SELL_LIMIT / SELL_STOPLIMIT_MAINTENANCE 则是对应维持保证金。 另有一组 SESSION_* 属性描述当前交易时段:VOLUME 为成交总量,TURNOVER 为成交额,INTEREST 为未平总量,BUY/SELL_ORDERS_VOLUME 为即时买卖挂单量,OPEN/CLOSE 为时段开收盘,AW 为时段加权平均价,PRICE_SETTLEMENT 为结算价。外汇与贵金属杠杆波动大,读取这些属性仅用于风控预估,不预示任何价格方向。

MQL5 / C++
SYMBOL_PROP_MARGIN_BUY_STOP_MAINTENANCE,           class=class="str">"cmt">// Maintenance margin requirement applicable to BuyStop orders
SYMBOL_PROP_MARGIN_BUY_LIMIT_MAINTENANCE,             class=class="str">"cmt">// Maintenance margin requirement applicable to BuyLimit orders
SYMBOL_PROP_MARGIN_BUY_STOPLIMIT_MAINTENANCE,          class=class="str">"cmt">// Maintenance margin requirement applicable to BuyStopLimit orders
SYMBOL_PROP_MARGIN_SHORT_INITIAL,                      class=class="str">"cmt">// Initial margin requirement applicable to class="type">class="kw">short positions
SYMBOL_PROP_MARGIN_SELL_STOP_INITIAL,                  class=class="str">"cmt">// Initial margin requirement applicable to SellStop orders
SYMBOL_PROP_MARGIN_SELL_LIMIT_INITIAL,                 class=class="str">"cmt">// Initial margin requirement applicable to SellLimit orders
SYMBOL_PROP_MARGIN_SELL_STOPLIMIT_INITIAL,             class=class="str">"cmt">// Initial margin requirement applicable to SellStopLimit orders
SYMBOL_PROP_MARGIN_SHORT_MAINTENANCE,                  class=class="str">"cmt">// Maintenance margin requirement applicable to class="type">class="kw">short positions
SYMBOL_PROP_MARGIN_SELL_STOP_MAINTENANCE,              class=class="str">"cmt">// Maintenance margin requirement applicable to SellStop orders
SYMBOL_PROP_MARGIN_SELL_LIMIT_MAINTENANCE,             class=class="str">"cmt">// Maintenance margin requirement applicable to SellLimit orders
SYMBOL_PROP_MARGIN_SELL_STOPLIMIT_MAINTENANCE,         class=class="str">"cmt">// Maintenance margin requirement applicable to SellStopLimit orders
SYMBOL_PROP_SESSION_VOLUME,                            class=class="str">"cmt">// The total volume of deals in the current session
SYMBOL_PROP_SESSION_TURNOVER,                          class=class="str">"cmt">// The total turnover in the current session
SYMBOL_PROP_SESSION_INTEREST,                          class=class="str">"cmt">// The total volume of open positions
SYMBOL_PROP_SESSION_BUY_ORDERS_VOLUME,                class=class="str">"cmt">// The total volume of Buy orders at the moment
SYMBOL_PROP_SESSION_SELL_ORDERS_VOLUME,               class=class="str">"cmt">// The total volume of Sell orders at the moment
SYMBOL_PROP_SESSION_OPEN,                              class=class="str">"cmt">// Open price of the session
SYMBOL_PROP_SESSION_CLOSE,                             class=class="str">"cmt">// Close price of the session
SYMBOL_PROP_SESSION_AW,                                class=class="str">"cmt">// The average weighted price of the session
SYMBOL_PROP_SESSION_PRICE_SETTLEMENT,                  class=class="str">"cmt">// The settlement price of the current session

◍ 枚举里的品种属性与排序偏移

在 MT5 的自定义品种筛选器里,会话级别的价格边界和锁仓保证金是两个常被忽略的真实属性。SYMBOL_PROP_SESSION_PRICE_LIMIT_MIN / MAX 给出当前交易时段允许的最小与最大报价,SYMBOL_PROP_MARGIN_HEDGED 则定义同一品种反向持仓时单手占用保证金规模,这些都能在 SymbolInfoInteger 里直接读到。 双精度属性的总数被硬编码为 58(SYMBOL_PROP_DOUBLE_TOTAL),其中 0 个被排除在排序之外(SYMBOL_PROP_DOUBLE_SKIP)。整数属性里用于排序的起始偏移用 FIRST_SYM_DBL_PROP 计算,等于整数属性总数减去跳过数,字符串属性偏移再叠加上双精度部分,这套宏定义决定了后面 ENUM_SORT_SYMBOLS_MODE 的枚举值排布。 从 SORT_BY_SYMBOL_STATUS = 0 开始,枚举依次覆盖品种状态、自定义属性、K线价格源(Bid 或 Last)、是否存在、是否选中、是否可见,以及当前会话成交数、买卖挂单总数和成交量高低。写自选品种排序面板时,直接套这个枚举就能避免手填魔法数字,外汇与贵金属品种因杠杆和锁仓规则差异,锁仓保证金字段读数可能明显偏离单边仓位,验证前需认清高风险。

MQL5 / C++
  SYMBOL_PROP_SESSION_PRICE_LIMIT_MIN,              class=class="str">"cmt">// Minimum allowable price value for the session
  SYMBOL_PROP_SESSION_PRICE_LIMIT_MAX,              class=class="str">"cmt">// Maximum allowable price value for the session
  SYMBOL_PROP_MARGIN_HEDGED                         class=class="str">"cmt">// Size of a contract or margin for one lot of hedged positions(oppositely directed positions at one symbol).
  };
class="macro">#define SYMBOL_PROP_DOUBLE_TOTAL(class="num">58)            class=class="str">"cmt">// Total number of real properties
class="macro">#define SYMBOL_PROP_DOUBLE_SKIP(class="num">0)             class=class="str">"cmt">// Number of real symbol properties not used in sorting
class="macro">#define FIRST_SYM_DBL_PROP(SYMBOL_PROP_INTEGER_TOTAL-SYMBOL_PROP_INTEGER_SKIP)
class="macro">#define FIRST_SYM_STR_PROP(SYMBOL_PROP_INTEGER_TOTAL-SYMBOL_PROP_INTEGER_SKIP+SYMBOL_PROP_DOUBLE_TOTAL-SYMBOL_PROP_DOUBLE_SKIP)
enum ENUM_SORT_SYMBOLS_MODE
  {
class=class="str">"cmt">//--- Sort by integer properties
  SORT_BY_SYMBOL_STATUS = class="num">0,                       class=class="str">"cmt">// Sort by symbol status
  SORT_BY_SYMBOL_CUSTOM,                           class=class="str">"cmt">// Sort by custom symbol class="kw">property
  SORT_BY_SYMBOL_CHART_MODE,                       class=class="str">"cmt">// Sort by price type for constructing bars – Bid or Last(from the ENUM_SYMBOL_CHART_MODE enumeration)
  SORT_BY_SYMBOL_EXIST,                            class=class="str">"cmt">// Sort by the flag that a symbol with such a name exists
  SORT_BY_SYMBOL_SELECT,                           class=class="str">"cmt">// Sort by the flag indicating that a symbol is selected in Market Watch
  SORT_BY_SYMBOL_VISIBLE,                          class=class="str">"cmt">// Sort by the flag indicating that a selected symbol is displayed in Market Watch
  SORT_BY_SYMBOL_SESSION_DEALS,                    class=class="str">"cmt">// Sort by the number of deals in the current session
  SORT_BY_SYMBOL_SESSION_BUY_ORDERS,               class=class="str">"cmt">// Sort by the total number of current buy orders
  SORT_BY_SYMBOL_SESSION_SELL_ORDERS,              class=class="str">"cmt">// Sort by the total number of current sell orders
  SORT_BY_SYMBOL_VOLUME,                           class=class="str">"cmt">// Sort by last deal volume
  SORT_BY_SYMBOL_VOLUMEHIGH,                       class=class="str">"cmt">// Sort by maximum volume for a day

按品种属性给观察列表排序的枚举清单

在 MT5 的行情窗口或自定义品种扫描器里,想按某个维度给品种排序,底层靠的是一组 SORT_BY_SYMBOL_* 枚举。下面这段枚举列表覆盖了从成交量、报价时间到合约计算方式的全套排序键,直接可用于 SymbolsTotal / SymbolSelect 配合排序的二次开发。 这些枚举不是摆设:例如 SORT_BY_SYMBOL_SPREAD 按点差点数排,SORT_BY_SYMBOL_TRADE_STOPS_LEVEL 按当前收盘价到止损挂单的最小距离(点)排,做贵金属或外汇高频切换时,能快速揪出受限最少的那几个品种。外汇与贵金属杠杆高、点差跳变频繁,这类排序只解决“筛选”,不预示任何方向。 代码逐行对应如下,开 MT5 按 F4 进 MetaEditor 搜 ENUM_SYMBOL_SORT_MODE 可交叉验证。

MQL5 / C++
  SORT_BY_SYMBOL_VOLUMELOW,                                                                     class=class="str">"cmt">// Sort by minimum volume for a day
  SORT_BY_SYMBOL_TIME,                                                                           class=class="str">"cmt">// Sort by the last quote time
  SORT_BY_SYMBOL_DIGITS,                                                                         class=class="str">"cmt">// Sort by a number of decimal places
  SORT_BY_SYMBOL_DIGITS_LOT,                                                                     class=class="str">"cmt">// Sort by a number of decimal places in a lot
  SORT_BY_SYMBOL_SPREAD,                                                                         class=class="str">"cmt">// Sort by spread in points
  SORT_BY_SYMBOL_SPREAD_FLOAT,                                                                   class=class="str">"cmt">// Sort by floating spread
  SORT_BY_SYMBOL_TICKS_BOOKDEPTH,                                                                class=class="str">"cmt">// Sort by a maximum number of requests displayed in the market depth
  SORT_BY_SYMBOL_TRADE_CALC_MODE,                                                                class=class="str">"cmt">// Sort by contract price calculation method(from the ENUM_SYMBOL_CALC_MODE enumeration)
  SORT_BY_SYMBOL_TRADE_MODE,                                                                     class=class="str">"cmt">// Sort by order execution type(from the ENUM_SYMBOL_TRADE_MODE enumeration)
  SORT_BY_SYMBOL_START_TIME,                                                                     class=class="str">"cmt">// Sort by an instrument trading start date(usually used for futures)
  SORT_BY_SYMBOL_EXPIRATION_TIME,                                                                class=class="str">"cmt">// Sort by an instrument trading end date(usually used for futures)
  SORT_BY_SYMBOL_TRADE_STOPS_LEVEL,                                                              class=class="str">"cmt">// Sort by the minimum indent from the current close price(in points) for setting Stop orders
  SORT_BY_SYMBOL_TRADE_FREEZE_LEVEL,                                                             class=class="str">"cmt">// Sort by trade operation freeze distance(in points)
  SORT_BY_SYMBOL_TRADE_EXEMODE,                                                                  class=class="str">"cmt">// Sort by trade execution mode(from the ENUM_SYMBOL_TRADE_EXECUTION enumeration)
  SORT_BY_SYMBOL_SWAP_MODE,                                                                      class=class="str">"cmt">// Sort by swap calculation model(from the ENUM_SYMBOL_SWAP_MODE enumeration)
  SORT_BY_SYMBOL_SWAP_ROLLOVER3DAYS,                                                             class=class="str">"cmt">// Sort by week day for accruing a triple swap(from the ENUM_DAY_OF_WEEK enumeration)
  SORT_BY_SYMBOL_MARGIN_HEDGED_USE_LEG,                                                          class=class="str">"cmt">// Sort by the calculation mode of a hedged margin class="kw">using the larger leg(Buy or Sell)
  SORT_BY_SYMBOL_EXPIRATION_MODE,                                                                class=class="str">"cmt">// Sort by flags of allowed order expiration modes
  SORT_BY_SYMBOL_FILLING_MODE,                                                                   class=class="str">"cmt">// Sort by flags of allowed order filling modes
  SORT_BY_SYMBOL_ORDER_MODE                                                                      class=class="str">"cmt">// Sort by flags of allowed order types

「按实时行情字段给品种排序的枚举清单」

在 MT5 的行情排序接口里,除了按订单属性排,还能直接按品种的真实报价字段排。这组枚举从 SORT_BY_SYMBOL_BID 开始,对应 FIRST_SYM_DBL_PROP,说明它们底层都归为双精度浮点属性。 具体可排的字段覆盖了买卖价与成交价:SORT_BY_SYMBOL_BID / ASK / LAST 是即时值,而各自带 HIGH、LOW 后缀的版本排的是当日极值,例如 SORT_BY_SYMBOL_BIDHIGH 排当日最高买价、SORT_BY_SYMBOL_ASKLOW 排当日最低卖价。 成交量维度也有三组:SORT_BY_SYMBOL_VOLUME_REAL 排当日总量,VOLUMEHIGH_REAL 与 VOLUMELOW_REAL 分别排当日最大与最小成交量。做跨品种量价扫描时,这几个枚举比自己写循环取 Volume 再排序省事。 期权类品种还能按 SORT_BY_SYMBOL_OPTION_STRIKE 排执行价,按 SORT_BY_SYMBOL_POINT 排点值,以及用 SORT_BY_SYMBOL_TRADE_TICK_VALUE_PROFIT / LOSS 区分盈利仓和亏损仓的每跳价值。外汇和贵金属波动剧烈,用这些字段做排序监控时仍须留意滑点与断线风险。

MQL5 / C++
  SORT_BY_SYMBOL_ORDER_GTC_MODE,                                                                     class=class="str">"cmt">// Sort by StopLoss and TakeProfit orders lifetime
  SORT_BY_SYMBOL_OPTION_MODE,                                                                           class=class="str">"cmt">// Sort by option type(from the ENUM_SYMBOL_OPTION_MODE enumeration)
  SORT_BY_SYMBOL_OPTION_RIGHT,                                                                          class=class="str">"cmt">// Sort by option right(Call/Put) (from the ENUM_SYMBOL_OPTION_RIGHT enumeration)
class=class="str">"cmt">//--- Sort by real properties
  SORT_BY_SYMBOL_BID = FIRST_SYM_DBL_PROP,                                                              class=class="str">"cmt">// Sort by Bid
  SORT_BY_SYMBOL_BIDHIGH,                                                                               class=class="str">"cmt">// Sort by maximum Bid for a day
  SORT_BY_SYMBOL_BIDLOW,                                                                                class=class="str">"cmt">// Sort by minimum Bid for a day
  SORT_BY_SYMBOL_ASK,                                                                                   class=class="str">"cmt">// Sort by Ask
  SORT_BY_SYMBOL_ASKHIGH,                                                                               class=class="str">"cmt">// Sort by maximum Ask for a day
  SORT_BY_SYMBOL_ASKLOW,                                                                                class=class="str">"cmt">// Sort by minimum Ask for a day
  SORT_BY_SYMBOL_LAST,                                                                                  class=class="str">"cmt">// Sort by the last deal price
  SORT_BY_SYMBOL_LASTHIGH,                                                                              class=class="str">"cmt">// Sort by maximum Last for a day
  SORT_BY_SYMBOL_LASTLOW,                                                                               class=class="str">"cmt">// Sort by minimum Last for a day
  SORT_BY_SYMBOL_VOLUME_REAL,                                                                           class=class="str">"cmt">// Sort by Volume for a day
  SORT_BY_SYMBOL_VOLUMEHIGH_REAL,                                                                       class=class="str">"cmt">// Sort by maximum Volume for a day
  SORT_BY_SYMBOL_VOLUMELOW_REAL,                                                                        class=class="str">"cmt">// Sort by minimum Volume for a day
  SORT_BY_SYMBOL_OPTION_STRIKE,                                                                         class=class="str">"cmt">// Sort by an option execution price
  SORT_BY_SYMBOL_POINT,                                                                                 class=class="str">"cmt">// Sort by a single point value
  SORT_BY_SYMBOL_TRADE_TICK_VALUE,                                                                      class=class="str">"cmt">// Sort by SYMBOL_TRADE_TICK_VALUE_PROFIT value
  SORT_BY_SYMBOL_TRADE_TICK_VALUE_PROFIT,                                                               class=class="str">"cmt">// Sort by a calculated tick price for a profitable position
  SORT_BY_SYMBOL_TRADE_TICK_VALUE_LOSS                                                                  class=class="str">"cmt">// Sort by a calculated tick price for a loss-making position

◍ 按保证金细分维度排序标的

在 MT5 的 SymbolInfo 系列排序枚举里,除了常见的点值、合约规模、成交量限制等字段,还有一批按订单方向拆开的保证金枚举。 这些带高亮标记的枚举是较后期加入的接口:SORT_BY_SYMBOL_MARGIN_LONG_INITIAL 按多单初始保证金排序,SORT_BY_SYMBOL_MARGIN_BUY_STOP_INITIAL 按 BuyStop 挂单初始保证金排序,BuyLimit 与 BuyStopLimit 也各有对应的 _INITIAL 枚举。 维护保证金一侧同样按方向切分:SORT_BY_SYMBOL_MARGIN_LONG_MAINTENANCE 对应多单维护保证金,SORT_BY_SYMBOL_MARGIN_BUY_STOP_MAINTENANCE、_BUY_LIMIT_MAINTENANCE、_BUY_STOPLIMIT_MAINTENANCE 则分别覆盖三类买入类挂单的维护保证金。 开 MT5 按 F4 进 MetaEditor,搜 SORT_BY_SYMBOL_MARGIN 就能看到完整列表;写自选品种扫描器时,用这些枚举替代笼统的 SORT_BY_SYMBOL_MARGIN_INITIAL,可能更贴合不同订单类型的真实占仓成本。外汇与贵金属杠杆波动大,保证金参数须以券商实时返回为准,高风险。

MQL5 / C++
SORT_BY_SYMBOL_TRADE_TICK_SIZE,                      class=class="str">"cmt">// Sort by a minimum price change
SORT_BY_SYMBOL_TRADE_CONTRACT_SIZE,                    class=class="str">"cmt">// Sort by a trading contract size
SORT_BY_SYMBOL_TRADE_ACCRUED_INTEREST,                 class=class="str">"cmt">// Sort by accrued interest
SORT_BY_SYMBOL_TRADE_FACE_VALUE,                       class=class="str">"cmt">// Sort by face value
SORT_BY_SYMBOL_TRADE_LIQUIDITY_RATE,                   class=class="str">"cmt">// Sort by liquidity rate
SORT_BY_SYMBOL_VOLUME_MIN,                             class=class="str">"cmt">// Sort by a minimum volume for performing a deal
SORT_BY_SYMBOL_VOLUME_MAX,                             class=class="str">"cmt">// Sort by a maximum volume for performing a deal
SORT_BY_SYMBOL_VOLUME_STEP,                            class=class="str">"cmt">// Sort by a minimum volume change step for deal execution
SORT_BY_SYMBOL_VOLUME_LIMIT,                           class=class="str">"cmt">// Sort by a maximum allowed aggregate volume of an open position and pending orders in one direction
SORT_BY_SYMBOL_SWAP_LONG,                              class=class="str">"cmt">// Sort by a class="type">long swap value
SORT_BY_SYMBOL_SWAP_SHORT,                             class=class="str">"cmt">// Sort by a class="type">class="kw">short swap value
SORT_BY_SYMBOL_MARGIN_INITIAL,                         class=class="str">"cmt">// Sort by an initial margin
SORT_BY_SYMBOL_MARGIN_MAINTENANCE,                     class=class="str">"cmt">// Sort by a maintenance margin for an instrument
SORT_BY_SYMBOL_MARGIN_LONG_INITIAL,                    class=class="str">"cmt">// Sort by initial margin requirement applicable to Long orders
SORT_BY_SYMBOL_MARGIN_BUY_STOP_INITIAL,                class=class="str">"cmt">// Sort by initial margin requirement applicable to BuyStop orders
SORT_BY_SYMBOL_MARGIN_BUY_LIMIT_INITIAL,               class=class="str">"cmt">// Sort by initial margin requirement applicable to BuyLimit orders
SORT_BY_SYMBOL_MARGIN_BUY_STOPLIMIT_INITIAL,           class=class="str">"cmt">// Sort by initial margin requirement applicable to BuyStopLimit orders
SORT_BY_SYMBOL_MARGIN_LONG_MAINTENANCE,                class=class="str">"cmt">// Sort by maintenance margin requirement applicable to Long orders
SORT_BY_SYMBOL_MARGIN_BUY_STOP_MAINTENANCE,            class=class="str">"cmt">// Sort by maintenance margin requirement applicable to BuyStop orders
SORT_BY_SYMBOL_MARGIN_BUY_LIMIT_MAINTENANCE,           class=class="str">"cmt">// Sort by maintenance margin requirement applicable to BuyLimit orders
SORT_BY_SYMBOL_MARGIN_BUY_STOPLIMIT_MAINTENANCE,       class=class="str">"cmt">// Sort by maintenance margin requirement applicable to BuyStopLimit orders

卖单保证金与时段统计的排序枚举

在 MT5 的 SymbolInfo 排序枚举里,针对空头方向的保证金筛选分得极细。从 SORT_BY_SYMBOL_MARGIN_SHORT_INITIAL 到 SORT_BY_SYMBOL_MARGIN_SELL_STOPLIMIT_MAINTENANCE,覆盖了 Short、SellStop、SellLimit、SellStopLimit 四类挂单与市价卖单的初始保证金和维护保证金共 8 个维度,方便在多品种监控时按风险占用排序。 时段类排序则把当前交易会话的微观结构也暴露出来了:SORT_BY_SYMBOL_SESSION_VOLUME 取会话成交总量,SORT_BY_SYMBOL_SESSION_TURNOVER 取成交额,SORT_BY_SYMBOL_SESSION_INTEREST 取未平仓总持仓,另有 BUY/SELL 订单独立成交量字段。 价格类会话字段值得单独看一眼:SESSION_OPEN / CLOSE / AW(成交量加权均价)/ PRICE_SETTLEMENT / LIMIT_MIN / LIMIT_MAX 共 6 个,基本能把一个 session 的高低点和结算逻辑拉平比较。外汇与贵金属波动剧烈、杠杆风险高,用这些字段做排序时须自行校验经纪商数据延迟。 字符串属性从 FIRST_SYM_STR_PROP 起跳,SORT_BY_SYMBOL_NAME 即按品种名排序,后续字符串类枚举都以此为基准偏移。

MQL5 / C++
SORT_BY_SYMBOL_MARGIN_SHORT_INITIAL,                 class=class="str">"cmt">// Sort by initial margin requirement applicable to Short orders
SORT_BY_SYMBOL_MARGIN_SELL_STOP_INITIAL,                class=class="str">"cmt">// Sort by initial margin requirement applicable to SellStop orders
SORT_BY_SYMBOL_MARGIN_SELL_LIMIT_INITIAL,               class=class="str">"cmt">// Sort by initial margin requirement applicable to SellLimit orders
SORT_BY_SYMBOL_MARGIN_SELL_STOPLIMIT_INITIAL,           class=class="str">"cmt">// Sort by initial margin requirement applicable to SellStopLimit orders
SORT_BY_SYMBOL_MARGIN_SHORT_MAINTENANCE,                class=class="str">"cmt">// Sort by maintenance margin requirement applicable to Short orders
SORT_BY_SYMBOL_MARGIN_SELL_STOP_MAINTENANCE,            class=class="str">"cmt">// Sort by maintenance margin requirement applicable to SellStop orders
SORT_BY_SYMBOL_MARGIN_SELL_LIMIT_MAINTENANCE,           class=class="str">"cmt">// Sort by maintenance margin requirement applicable to SellLimit orders
SORT_BY_SYMBOL_MARGIN_SELL_STOPLIMIT_MAINTENANCE,       class=class="str">"cmt">// Sort by maintenance margin requirement applicable to SellStopLimit orders
SORT_BY_SYMBOL_SESSION_VOLUME,                          class=class="str">"cmt">// Sort by summary volume of the current session deals
SORT_BY_SYMBOL_SESSION_TURNOVER,                        class=class="str">"cmt">// Sort by the summary turnover of the current session
SORT_BY_SYMBOL_SESSION_INTEREST,                        class=class="str">"cmt">// Sort by the summary open interest
SORT_BY_SYMBOL_SESSION_BUY_ORDERS_VOLUME,               class=class="str">"cmt">// Sort by the current volume of Buy orders
SORT_BY_SYMBOL_SESSION_SELL_ORDERS_VOLUME,              class=class="str">"cmt">// Sort by the current volume of Sell orders
SORT_BY_SYMBOL_SESSION_OPEN,                            class=class="str">"cmt">// Sort by a session Open price
SORT_BY_SYMBOL_SESSION_CLOSE,                           class=class="str">"cmt">// Sort by a session Close price
SORT_BY_SYMBOL_SESSION_AW,                              class=class="str">"cmt">// Sort by an average weighted price of the current session
SORT_BY_SYMBOL_SESSION_PRICE_SETTLEMENT,                class=class="str">"cmt">// Sort by a settlement price of the current session
SORT_BY_SYMBOL_SESSION_PRICE_LIMIT_MIN,                 class=class="str">"cmt">// Sort by a minimum price of the current session 
SORT_BY_SYMBOL_SESSION_PRICE_LIMIT_MAX,                 class=class="str">"cmt">// Sort by a maximum price of the current session
SORT_BY_SYMBOL_MARGIN_HEDGED,                           class=class="str">"cmt">// Sort by a contract size or a margin value per one lot of hedged positions
class=class="str">"cmt">//--- Sort by class="type">class="kw">string properties
SORT_BY_SYMBOL_NAME = FIRST_SYM_STR_PROP,               class=class="str">"cmt">// Sort by a symbol name
把品种归类逻辑交给小布盯盘
这些诊断与分类思路小布盯盘的 AIGC 已内置,打开对应品种页即可看到自动归类的状态标签,你只需专注策略层面的取舍。

常见问题

文件夹可含任意名称,且同一品种在不同服务器可能位于不同目录,可靠性低,因此改用自定义数组优先、保证金计算模式兜底的双检。
它们在基础品种属性上阐明具体数据,并按分组隶属(品种状态)区分,如主要外汇、贵金属、加密货币等自定义类别。
它继承自 CArrayObj,用于保存所有品种对象列表,支持在程序中选定操控范围,如仅当前品种或指定集合。
可以,小布盯盘的品种页支持按用户自定义分组展示状态,省去手动维护分类数组的重复劳动。
此时按 ENUM_SYMBOL_CALC_MODE 保证金计算方法判定其所属大类,仍无法归入则列为一般类别。