历史原因,以前的外汇经纪商提供的非日元货币是小数点后 4 位,日元货币是小数点后 2 位。小数点最末位变动 1,称为 1Pip,也就是一点,人们也已经习惯用 Pips 来指定止损止盈空间和滑点。
现在的 MT4 平台下的外汇交易,非日元货币是小数点后 5 位,日元货币是小数点后 3 位。并且 MT4 的 OrderSend 函数中的滑点参数也是最小单位,这就意味着 2 Pip 的滑点,需要设置为 20 个最小单位。
另外如果设置固定止损空间,那个也是以 Pip 习惯来设置,然后再把他换算成具体的止损价位。如果是 ATR 计算的止损空间,直接加减就是了。
计算手数
MT4 没有 1 Pip 多少金额价值的函数,只提供了 MarketInfo(Symbol(), MODE_TICKVALUE)
来表示最小单位价值。
stoploss = 止损 Pips 转换成最小单位 // 根据小数点位数来决定是否乘以10
手数 = (总金额*(2/100))/ (stoploss * tickvalue)
- 2/100 是风险比例 2%
令人迷惑的 MarketInfo(Symbol(), MODE_TICKSIZE)
MarketInfo(Symbol(), MODE_TICKSIZE)
表示最小价格变动单位,通常以点为单位。对于当前交易的货币对,它存储在预定义变量 Point 中。 对于货币来说, TICKSIZE 等于 Point ,但是其他品种就不一样了。