MQL4 Slippage & Point Value

在很长一段时间内,当大多数经纪商的货币报价为 4 位数字(或日元对为 2 位数字)时,滑点值和点值将按照您的预期工作。但是随着分数点经纪人的加入,需要对这些值进行调整,否则会出现问题。在这篇 MQL4 滑点和点值文章中学习如何对您的 EA 交易进行编程以使用 5 位数或分数点经纪商。

在 OrderSend() 函数的第四个参数中找到的 Slippage 值表示订单要通过的最大点差。如果您的经纪商是 4 位经纪商,则 1 点 = 1 点。没关系。如果您指示 3 点滑点,您将确保您在信号价格的 3 点内成交。

但是,如果您的经纪商使用 5 位数报价(或日元对使用 3 位数),则 1 点 = 0.1 点。现在这是一个问题,因为如果你输入 3 作为滑点,它将是 0.3,这就像有 0。您冒着被重新报价的危险。为了进行手动调整,您必须在滑点设置的末尾添加一个额外的零,将您的 3 变成 30,以保持您的 3 点滑点意图。

因此,代码可以自动检查 4 位或 5 位经纪人并自动进行适当的调整。

Point 值也有类似的问题。正如我们在检查 OrderSend() 函数时所看到的,我们为 StopLoss 或 TakeProfit 指示的点整数需要乘以 Point,以便将它们转换为适当的小数值。Point 是 MQL 中的预定义变量,它返回货币的最小价格单位,具体取决于小数位数。

因此,Point = 0.0001 表示 4 个小数点。但最近,许多经纪商采用了小数点报价,小数点后 3 位和 5 位,小数点后 5 位的点数 = 0.00001。问题在于,预期为 50 点的止损点值将计算为 5 点。为了进行手动调整,您必须在止损值的末尾添加一个额外的零,将 50 更改为 500,以保持您的 50 点止损意图。因此,代码可以自动检查 4 位或 5 位经纪人并进行适当的调整。

我们可以创建一个代码,自动检测分数经纪商并自动调整滑点和点数,而不是要求用户每次在小数点经纪商上交易时都在他们的滑点、止损和止盈设置中添加额外的零。

// Global Variables
double vPoint; 
int vSlippage; 

int init()

// Detect 3/5 digit brokers for Point and Slippage

if (Point == 0.00001)
{ vPoint = 0.0001; vSlippage = Slippage *10;}

else {
if (Point == 0.001)
{ vPoint = 0.01; vSlippage = Slippage *10;}

else vPoint = Point; vSlippage = Slippage;
}

然后,将所有倍数替换为 vPoint,并在 OrderSend() 函数的 Slippage 参数中插入 vSlippage,如以下示例所示:

OrderSend (Symbol(), OP_BUY, Lots, Ask, vSlippage, Bid-StopLoss *vPoint, Bid+TakeProfit*vPoint, “EAName”, MagicNumber, 0, Blue)
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇