3.3.2 验证仓位大小
如同停损、获利及挂单价,仓位大小也应该进行验证,以确保你的经纪商能接受。也就是说,你的仓位不宜过大或过小,如经纪商不支持这些,也不该被指定在微型仓位(0.01)。你还应该将仓位大小正常化至适当的小数位。
我们先来检查最大和最小的仓位。以MarketInfo( )功能的MODE_MINLOT和MODE_MAXLOT参数比较目前仓位大小和最大/最小的仓位大小。如果仓位大小无效,会自动调整至最大值或最小值。
我们只是比较仓位大小值、计算过或固定仓位大小与最大/最小的仓位大小。如果LotSize(仓位大小)比最小仓位还小,或比最大仓位还大,就会被分配至造当的最大值或最小值。
接着,我们需要比较仓位大小和step值。step值代表经纪商是否允许微型仓位(0.01)或迷你仓位(0.1)。如果在仅允许迷你仓位的经纪商系统上尝试使用微型仓位,则会因出现错误而无法下单。
检查step值源代码:
NormalizeDouble( )功能把LltSize(仓位大小)的值舍入到第二参数中指定的
位数。在第一行,如step是0.1,表示经纪商仅使用迷你仓位, LotSize(仓位大小)将舍入到小数点后一位。否则,LotSize将舍入至小数点后两位。
在未来,如遇到允许仓位大小至小数点后三位的经纪商,即可轻易修改上述代码进行检查。但在此时,几乎所有MetaTrader的经纪商都使用一位或两位小数的仓位大小。

