MQL5 里怎么获取当前点差(Spread)
新手常问怎么在 EA 里判断点差。其实很简单:Ask - Bid 就是当前点差,除以 Point 就是点数。
下面这段是个小片段,点差超过阈值就不开仓,可以直接用在你自己的 EA 里。
下面这段是个小片段,点差超过阈值就不开仓,可以直接用在你自己的 EA 里。
// MQL5 点差过滤:点差过大时跳过开仓
input double MaxSpreadPoints = 30; // 最大允许点差(点)
int CurrentSpreadPoints() {
return (int)((Ask - Bid) / _Point);
}
bool CanOpenTrade() {
int sp = CurrentSpreadPoints();
if(sp > (int)MaxSpreadPoints) {
Print("当前点差 ", sp, " 点,超过阈值 ", MaxSpreadPoints, ",跳过开仓");
return false;
}
return true;
}
void OnTick() {
if(!CanOpenTrade()) return;
// 这里写你自己的开仓逻辑
}全部回复(2)
发表回复
请先登录后再回复。
