MetaTrader 5帮助交易操作高级用户选项保证金计算: 现货外汇, 期货

现货外汇, 期货的预付款计算

交易平台提供不同的风险管理模型, 它们定义了预交易控制类型。目前, 以下模型可以使用:

证券交易者在开仓或下单时会被收取预付款。

预付款计算的第一阶段是定义账户内是否有某品种的仓位或挂单, 以及交易执行的种类。

  • 如果账户内没有任何品种的仓位或订单, 预付款的计算使用以下公式。
  • 如果账户内有一笔仓位, 和任何类型的订单, 且交易量小于或等于当前反向仓位, 总预付款等于当前的仓位。例如: 我们有 1 手 EURUSD 多头仓位, 并下了 1 手 EURUSD 空头订单(类似于回踩卖出, 突破卖出和突破回踩卖出)。
  • 如果账户内有一笔仓位, 和任何类型的同向订单, 总预付款等于当前仓位与放置订单的预付款之和。
  • 如果账户内有一笔仓位, 和任何类型的反向订单, 且订单交易量超过当前仓位, 要计算两笔预付款 - 当前仓位的, 和放置订单的。最终的预付款取两笔计算值的最高一个。
  • 如果账户里有两笔或更多彼此方向相反的仓位或回踩订单, 预付款要分别计算每个方向 (买入和卖出)。最终的预付款取两笔计算值的最高一个。对于所有其它订单类型 (突破和突破回踩), 预付款是叠加 (每笔订单都要收取)。

以下是根据品种类型和设置的预付款计算公式。最终预付款的计算分三个阶段:

对于品种的基本计算 #

如果在 品种规格 里设置了 "初始预付款" 参数值, 使用此值。未使用在此章节描述的公式。

交易平台根据金融工具提供若干预付款需求计算类型。计算类型显示在 品质规格 的 "计算" 字段:

外汇

对于外汇工具的预付款计算公式如下:

交易量手数 * 合约大小 / 杠杆

例如, 让我们来计算买入一手 EURUSD 所需的预付款, 当 合约大小 为 100,000 且杠杆是 1:100。

对于外汇品种预付款计算

在方程里替换相应的数值, 我们将获得以下结果:

1 * 100 000 / 100 = 1000 欧元

所以, 现在我们已经有了该品种所需的, 以 基准货币 (或 预付款货币) 为单位的预付款数额。

  • 通常, 预付款所需货币和品种的基准货币相同。如果预付款货币不同, 现实的计算结果用替换为品种的基准货币。
  • 在这种模式下,即使是设定了固定预付款也要考虑交易者的杠杆作用。

外汇没有杠杆 #

这种计算类型也用于外汇交易品种。但是与之前不同的是这次没有考虑交易者的杠杆作用:

交易量手数 * 合约大小

例如, 让我们来计算买入一手 EURUSD 所需的预付款, 当 合约大小 为 100,000 且杠杆是 1:100。在方程里替换相应的数值, 我们将获得以下结果:

1 * 100 000 = 100000 欧元

所以, 现在我们已经有了该品种所需的, 以 基准货币 (或 预付款货币) 为单位的预付款数额。

通常, 预付款所需货币和品种的基准货币相同。如果预付款货币不同, 现实的计算结果用替换为品种的基准货币。

合约, 证券股票

对于合约和股票的预付款计算方程如下:

交易量手数 * 合约大小 * 市场开盘价

当前采购价用于多头仓位, 而供给价用于空头仓位。

例如, 让我们来计算买入一手 #AA 所需的预付款, 合约大小为 100 单位, 当前采购价是 33.00 美元。

证券股票的预付款计算

在方程里替换相应的数值, 我们将获得以下结果:

1 * 100 * 33.00 = 3,300 USD

所以, 现在我们已经有了该品种所需的, 以基准货币 (或预付款货币) 为单位的预付款数额。

合约杠杆

在计算合约所需保障金时杠杆也要考虑:

交易量手数 * 合约大小 * 市场开盘价 / 杠杆

合约指数 #

对于差价合约合约指数, 所需预付款计算根据如下方程:

交易量手数 * 合约大小 * 市场开盘价 * 分时价格 / 分时大小

在此公式里, 价格 和分时 大小 的比率, 在计算合约时要额外考虑。

对于差价合约指数预付款计算

期货, 证券期货 #

有两种类型的期货合约预付款需求:

  • 初始预付款 试图入场之时账户内必须可用的数额。将来维持相同的合计并非强制性的。
  • 维持预付款 账户内可用于维持已开仓位的最小资金数额。

两个数值均被指定在 品种规格

期货和证券期货的预付款计算

最终预付款大小依据交易量:

交易量手数 * 初始预付款

交易量手数 * 维持预付款

如果维持预付款数额未指定, 则用初始预付款替代。

交易所期权 #

期货合约有两种预付款要求:

  • 初始预付款是打算进入市场时账户上必须具备的金额。不必再保持相同的金额。
  • 维持预付款是用于持仓的账户必须具备的最低金额。

这两个值都在交易品种规范中指定。预付款的最终大小取决于交易量:

交易量手数 * 初始预付款

交易量手数 * 维持预付款

如果没有指定维持预付款的金额,则将使用初始预付款值。如果初始预付款或维持预付款均未指定,则将根据以下公式计算相应的值:

交易量手数 * 合约大小 * 开仓市价

当前市场“买价”用于买入交易,而当前“卖价”用于卖出交易。

相同的计算方法适用于所有风险管理模式。

交易所债券 #

债券预付款是作为持仓值的一部分进行计算的。债券价格是按面值百分比来提供,因此持仓值计算如下:

Volume in lots * Contract size * Face value * Price / 100

用于维持持仓而保留的持仓值的一部分取决于预付款比率

FORTS 期货

莫斯科证券交易所衍生品部分期货合约的预付款是为每个交易品种单独计算:首先为持仓和所有买入订单计算预付款。然后,为相同持仓和所有卖出订单计算预付款

MarginBuy  = MarginPos + Sum(MarginBuyOrder)

MarginSell = MarginPos + Sum(MarginSellOrder))

计算所得的最大值被用作交易品种的最终预付款值。

因此,在两个值的计算中使用相同的持仓。在第一个公式中(买入订单),持仓预付款计算如下:

MarginPos  = Volume * (InitialMarginBuy  + (Open Price - SettlementPrice) * Tick Price / Tick Size * (1 + 0.01 * Margin Currency Rate))

这里交易量对于买入持仓用正值标志表示,对于卖出持仓用负值标志表示。

在第二个公式中(卖出订单),持仓预付款计算如下:

MarginPos = Volume * (InitialMarginSell + (SettlementPrice - Open Price) * Tick Price / Tick Size * (1 + 0.01 * Margin Currency Rate))

这里交易量对于卖出持仓用正值标志表示,对于买入持仓用负值标志表示。

这种方法为交易者提供了一个预付款折扣,即当对于所下订单存在反向持仓的情况下(这个持仓作为订单的附属)。

根据以下公式计算订单的预付款:

MarginBuyOrder  = Volume * (InitialMarginBuy  + (Price - SettlementPrice) * Tick price / Tick size * (1 + 0.01 * Margin currency rate))

MarginSellOrder = Volume * (InitialMarginSell + (SettlementPrice - Price) * Tick price / Tick size * (1 + 0.01 * Margin currency rate))

在这里“价格”取决于下单时间,并可以等于:

  • 目前时段合约中的最高和最低价格分别用于尚未执行的市价单或stop Buy和stop Sell订单。由于市价单中没有指定价格,所以交易者可以被收取最大可能的预付款。一旦触发,stop订单的操作则类似于市价单
  • 订单价格被用于限价单。
  • Stop Limit价格被用于stop limit订单。

公式中的其他参数:

  • InitialMarginBuy ― 购买操作的初始预付款。
  • InitialMarginSell ― 卖出操作的初始预付款。
  • 货币预付款率是货币汇率变动范围,期货合约相对于俄罗斯卢布进行计值
  • SettlementPrice ― 当前时段交易品种的结算价。

这些用于计算的所有参数均由莫斯科证券交易所提供。

交易品种属性中,InitialMarginBuy被写入“初始预付款”字段,InitialMarginSell被写入“维持预付款”字段。

计算示例

下面示例显示了以下交易账户状态下预付款要求的计算:

  • 买入持仓3.00 Si-6.18,在73640
  • Buy Limit订单2.00 Si-6.18,在73000
  • Sell Limit订单10.00 Si-6.18,在74500

当前时段参数

  • 清算价(Clearing price) = 73638
  • InitialMarginBuy = 7665.41
  • InitialMarginSell = 7739.59
  • 报价(Tick price) = 1
  • 最小报价单位(Tick size) = 1
  • Margin currency rate = 0

我们在公式中带入这些值

MarginBuy  = 3 * (7665.41 + (73640 - 73638) * 1/1) + 2 * (7665.41 + (73000-73638) * 1/1) = 37057.05

MarginSell = -3 * (7739.59 + (73638-73640) * 1/1) +10.0 * (7739.59 + (73638-74500) * 1/1) = 45563.13

Margin = Max(37057.05, 45563.13) = 45563.13

Si-6.18交易品种的预付款结果为45563.13。

抵押 #

非交易工具这种类型用作交易者的资产, 提供其它工具 开仓所需的预付款。对于这些工具不会计算预付款。

固定预付款 #

如果 品种规格 的 "初始预付款" 字段包括任何非零数值, 上述的预付款计算公式不可应用 (除非计算 期货, 所有事情维持与此相同)。在此情况下, 为了计算所有类型 (除了外汇和合约杠杆), 预付款的计算就像计算 "期货" 类型:

交易量手数 * 初始预付款

交易量手数 * 维持预付款

计算外汇和合约类型要额外考虑杠杆:

交易量手数 * 初始预付款 / 杠杆

交易量手数 * 维持预付款 / 杠杆

如果维持预付款数额未指定, 则用初始预付款替代。

转换为存款货币 #

这一阶段对于所有计算类型通用。使用上述方法计算的所需预付款, 在它们的货币与账户货币不同的情况下要执行转换。

转换时使用预付款货币兑换账户货币的当前汇率。采购价用于多头交易, 而供给价用于空头交易。

例如, 以前计算的用于买入一手 EURUSD 的预付款基本大小是 1000 欧元。如果账户货币是美元, 当前 EURUSD 对的采购价用于转换。例如, 如果当前汇率是 1.2790, 则总预付款大小是 1279 美元。

预付款率 #

品种规格允许依据仓位/订单类型为所需预付款设置附加的系数 (比率)。

预付款率

最终计算的所需预付款数值要考虑转换到存款货币, 这是相应比率的附加系数。

例如, 以前计算的用于买入一手 EURUSD 的预付款是 1279 美元。这个合计是多头预付款率的附加系数。例如, 如果它等于 1.15, 则最终的保障金是 1279 * 1.15 = 1470.85 美元。

预付款率可能会根据账户持仓的交易量或名义价值而变化。在这种情况下,标题旁边将显示“浮动”指示,后面是计算类型:

  • 浮动:交易量 – 账户中未结持仓的总交易量。此计算基于不同交易品种的持仓交易量(请咨询您的交易商以获取详细列表),而不仅仅是您正在查看其规格的交易品种。
  • 浮动:每个交易品种的交易量 – 您正在查看规格的交易品种的持仓交易量。
  • 浮动:名义价值 – 账户中未结持仓的总价值。此计算基于不同交易品种的持仓价值(请咨询您的交易商以获取详细列表),而不仅仅是您正在查看其规格的交易品种。该价值根据开仓价格计算,并按当前汇率转换为指定货币。
  • 浮动:每个交易品种的名义价值 – 您正在查看规格的交易品种的持仓值。该价值根据开仓价格计算,并按当前汇率转换为指定货币。

当您建仓或下单时,平台会检查持仓或订单的范围并应用适当的汇率。

计算套差交易 #

当交易的仓位彼此间相关套差时, 收取的预付款将有优惠。套差交易的定义是存在相关性品种的相对方向仓位。减少的需求预付款可为交易者提供更多交易机会。套差配置在 单独章节讲述。

套差仅用在 净余 系统来结算仓位。

在对冲系统里计算仓位结算 #

如果使用 对冲 仓位结算系统, 预付款的计算使用上述相同的公式和原则。不过, 对于同品种的多个仓位有一些另外的特点。

同向的多个仓位/订单

它们的交易量将被合计并计算权重平均开仓价。结果则被用来根据相应 品种类型 的公式计算预付款。

对于挂单 (如果预付款率非零) 的预付款, 则单独计算。

反向仓位/订单

同品种的反向开仓可认为对冲或覆盖。这种仓位有两种可能的计算方法。计算方法由券商确定。

基本计算

使用较大分支

合约规格 的 "对冲预付款" 字段未指定 "使用较大分支计算" 时使用。

 

计算由若干步组成:

  • 对于未覆盖交易量
  • 对于覆盖交易量 (如果对冲预付款大小已指定)
  • 对于挂单

结果预付款数额的计算是每一步计算出的预付款总和。

 

计算未覆盖交易量

  • 计算所有持仓的交易量总计, 以及每条分支的市价单 ― 买入和卖出。
  • 计算持仓和每条分支的订单权重平均开盘价: (第一笔仓位或订单开盘价 * 第一笔交易量 + ... + 第 N 笔仓位或订单开盘价 * 第 N 笔交易量) / (第一笔交易量 + ... + 第 N 笔交易量)。
  • 计算未覆盖交易量 (从较大分支里减去较小分支的交易量)。
  • 计算出的交易量和权重均价稍后用来根据相应 品种类型 的公式计算预付款。

 

计算覆盖交易量

如果在 合约规格 指定了 "对冲预付款" 值, 则使用。在此情况下收取对冲预付款, 如同未覆盖的交易量。

 

如果指定了品种的初始预付款, 则对冲预付款指定为其绝对值 (货币条件)。

 

如果初始预付款未指定 (等于 0), 则在 "对冲" 字段里指定合约大小。预付款根据相应金融工具类型的公式, 使用指定的合约大小计算。例如, 我们有两笔仓位, 一笔是 1 手买入 EURUSD, 和 1 手卖出 EURUSD, 合约大小是 100,000。如果在 "对冲" 字段里指定的数值是 100,000, 则两笔仓位的预付款将会按照每 1 手计算。如果您指定 0, 不会收取对冲 (覆盖) 交易量的预付款。

 

每笔对冲仓位收取的预付款, 根据 合约规格 里 "对冲预付款" 字段指定的数值:

  • 计算所有已开仓位和市价单的对冲交易量 (从较大分支里减去未覆盖交易量)。
  • 计算仓位和订单的权重平均开盘价: (第一笔仓位或订单开盘价 * 第一笔交易量 + ... + 第 N 笔仓位或订单开盘价 * 第 N 笔交易量) / (第一笔交易量 + ... + 第 N 笔交易量)。
  • 计算出的交易量, 权重均价稍后用来根据相应 品种类型 的公式计算预付款。

 

计算挂单

  • 单独计算每笔挂单类型的预付款(Buy Limit, Sell Limit, 等等)。

 

使用固定预付款时对锁仓订单的计算详情

当在现有持仓的反向进行下单时,锁仓交易量的预付款始终使用“锁仓预付款”值计算。对于非锁仓交易量,在下单时则使用“初始预付款”值,打开对应持仓之后使用“维持预付款”。

这些计算细节只应用于指定初始预付款和维持预付款值的交易品种(计算类型“固定预付款”“期货”)。

例如,EURUSD使用以下参数:

  • 初始预付款(Initial margin)= 1000
  • 维持预付款(Maintenance margin)= 500
  • 锁仓预付款(Hedge margin)= 500

交易者在USD账户持仓Buy 1.00 BR-12.18。交易者账户为该持仓保留500美元的预付款(根据“维持预付款”)。

  • 若要持仓Sell 2.00 BR-12.18,交易者需要2000美元预付款:500美元用于现有持仓,500美元用于新持仓的1手锁仓(依据“锁仓预付款”参数)以及1000美元用于新持仓的1手非锁仓(按照“初始预付款”参数)。
  • 只要持仓,1000美元预付款将保留在交易者账户中:500美元用于1手锁仓(根据“锁仓预付款”)和500美元用于1手非锁仓(按照“维持预付款”指定)。

如果在 合约规格 里的 "对冲预付款" 字段指定了 "使用较大分支计算", 则使用。

  • 计算所有已开仓位和市价单的空头与多头分支的预付款。
  • 单独计算每笔挂单类型的预付款(Buy Limit, Sell Limit, 等等)。
  • 将多头分支的预付款汇总: 多头持仓和市价单 + 多头挂单。
  • 将空头分支的预付款汇总: 空头持仓和市价单 + 空头挂单。
  • 所有已计算数值的最大值用作最终的预付款值。

例如

现有以下持仓:

  • 在1.11943 卖出1手
  • 在1.11953 买入1手
  • 在1.11943 卖出1手
  • 在1.11953 买入1手
  • 在1.11943 卖出1手

锁仓预付款大小 = 100 000。买入预付款率 = 2,卖出 = 4。杠杆 = 1:500。

 

计算非对冲交易量:卖出交易量 (3) - 买入交易量 (2) = 1

计算所有持仓锁仓交易量的加权平均开盘价:(1.11943 * 1+1.11953 * 1+1.11943 * 1+1.11953 * 1+1.11943 * 1)/5 = 5.59735/5= 1.11947

计算所有持仓未锁仓交易量的加权平均开盘价:(1.11943 * 1 + 1.11943 * 1 + 1.11943 * 1)/3 = 1.11943

计算锁仓交易量的预付款比率:(买入比率+ 卖出比率)/2 = (2 + 4)/2 = 3

较大(卖出)预付款比率用于未锁仓交易量:4。

使用公式计算锁仓交易量预付款: (2.00 手 * 100000 欧元* 1.11947 * 3) / 500 = 1343.36

使用公式计算未锁仓交易量预付款:(1.00 手 * 100000 欧元 * 1.11943 * 4) / 500 = 895.54

最终预付款大小: 1343.364 + 895.544 = 2238.90