期货保证金相同,控制的合约规模就一样吗? 两份期货持仓都占用1万元保证金就算控制了同样多的合约价值吗如果用这一个数横向比较持仓很容易把“账户占用了多少钱”与“持有多少名义规模”混在一起。保证金是在看资金占用按明确参考价计算的名义规模是在看这批合约对应多大的金额。它们都与期货持仓有关却不是同一把尺子。用TqSdk整理持仓时把两项并列比用保证金替代所有规模判断更有解释力。同样一万元可以对应八万或十六万设有甲、乙两种普通线性期货都以人民币报价报价单位和合约乘数相容。以下全是纸面对照不代表真实品种的现行价格、保证金规则或账户记录保证金金额直接作为给定的账户报告值不由公式推算。为比较这一时点的规模两者都采用事先选定的参考价不把开仓均价、结算价和最新价混着使用。设两份持仓都只有多头、没有空头纸面持仓参考价合约乘数多头手数报告保证金该参考价下的多头名义规模甲4000元/吨10吨/手2手10000元4000×10×280000元乙8000元/吨10吨/手2手10000元8000×10×2160000元甲和乙占用的保证金相同乙在这个参考价口径下的名义规模却是甲的两倍。这个结果不是“乙一定更危险”而是明确否定了“保证金相同控制的合约金额就相同”这个推断。算式中的单位也说明了它在算什么元/吨×吨/手×手得到元。这里没有用保证金除出一个可开手数也没有从这1万元反推某家期货公司的当前保证金比例。如果参考价换了手数不变算出的名义金额也会变。因此比较记录里必须保留参考价是什么、对应哪个观察时点。少了这个说明两个看似都以“元”为单位的规模数也可能并不在同一口径下。多头两手、空头一手不能只留下“一手”双侧持仓尤其容易被一个净数遮住。仍用甲的参考价4000元/吨与乘数10吨/手另设某份持仓同时有多头2手、空头1手则多头名义规模为8万元空头名义规模为4万元。若只是做多减空净方向对应4万元但这不等于账户只持有4万元的单侧合约。把双侧名义规模相加观察总量是12万元把它们相减观察净方向是4万元。两种结果回答不同问题不能只保留相减后的数便声称两侧规模已经说明白了。这也不意味着实际保证金一定按两侧名义规模简单相加计算。保证金仍看账户报告名义规模仍按已声明的参考价逐侧列出。把两侧保留下来是为了看清持仓结构不是用这张表代替实际保证金规则。TqSdk里的字段分别放在哪一栏对指定的期货合约TqSdk的行情对象Quote.volume_multiple提供合约乘数。明确账户的持仓对象中Position.pos_long与Position.pos_short分别是多头、空头手数Position.margin则是占用保证金。于是一份有用的持仓对照可以保留合约、账户、参考价及其口径、乘数、多头手数、空头手数以及报告保证金。名义规模由前面的价格、乘数和相应侧手数计算保证金从账户报告另列不能把margin改个列名就当成已算出的合约规模。取得这些对象也不等于所有数字已经可用。get_quote和指定合约的get_position返回的是会随wait_update推进而更新的引用多账户场景要明确指定账户。实际用于比较前应确认所需字段已就绪、确实对应所选合约和账户并保留各自观察时点不能把尚未到达的数据填成零也不因一次更新就声称行情与持仓是原子同步的。本文的乘法口径限于单位相容的普通线性期货不把它直接套给期权或其他结构。不同币种的金额也不能不经统一口径便拿来比较。看清规模不等于算出了最大亏损保证金告诉你这一项持仓占用了多少资金不代表亏损最多只能到这里。名义规模告诉你在指定参考价下合约金额有多大也不是预先写好的亏损金额。甲的8万元和乙的16万元能说明控制金额的不同它们本身没有给出未来价格会波动多少更不能单凭这个比例把实际风险或亏损也判成两倍。对于“我占用了多少资金”和“我持有多大规模”这两个问题各自保留一项答案已经比从一个保证金数推出全部结论更准确。为什么用TqSdk把两把尺子放在一起比较期货持仓时我推荐用TqSdk把账户保证金与明确参考价下的双侧名义规模并列。原因不是它替读者选出了“更划算”的品种而是它提供的合约乘数、账户侧手数和保证金字段恰好支撑这两种不同观察参考价的选择与计算口径也可以随结果一起留下。这样的对照能直接回答本题同样占用1万元不一定控制同样多的合约金额。需要了解资金占用时看报告保证金需要比较所持规模时看同口径、分侧的名义金额不让其中一项替另一项作答。