mql4 - 一次只有一个 EA 工作。只要有交易,其他的就不会开放
问题描述
Orderselect 用于控制 EA 开启的交易数量。我没有使用 OrdersTotal,因为它会产生阻塞其他 EA 的问题。现在看来 OrdersSelect 也做了同样的事情。我需要每个 EA 只打开两个交易并允许其他 EA 也打开它们的交易。
void OnTick()
{
double movingAverageSS = iMA(NULL,60,LowerMAS,0,MODE_SMA,PRICE_CLOSE,0);
double lastmovingAverageSS = iMA(NULL,60,LowerMAS,0,MODE_SMA,PRICE_CLOSE,1);
double movingAverageSB = iMA(NULL,60,LowerMAB,0,MODE_SMA,PRICE_CLOSE,0);
double lastmovingAverageSB = iMA(NULL,60,LowerMAB,0,MODE_SMA,PRICE_CLOSE,1);
double movingAverageFS = iMA(NULL,60,UpperMAS,0,MODE_SMA,PRICE_CLOSE,0);
double lastmovingAverageFS = iMA(NULL,60,UpperMAS,0,MODE_SMA,PRICE_CLOSE,1);
double movingAverageFB = iMA(NULL,60,UpperMAB,0,MODE_SMA,PRICE_CLOSE,0);
double lastmovingAverageFB = iMA(NULL,60,UpperMAB,0,MODE_SMA,PRICE_CLOSE,1);
for(int b=0;b<OrdersTotal();b++)
{
if (OrderSelect(b,SELECT_BY_POS,MODE_TRADES) == true)
{
if (OrderMagicNumber() != MagicB)
{
if((lastmovingAverageFB<lastmovingAverageSB) && (movingAverageFB > movingAverageSB))
{
b = OrderSend (Symbol(),OP_BUY,lotSize,Ask,4,Ask - SLPB*_Point, Ask + TPB1*_Point,NULL,128,0,Green);
b = OrderSend (Symbol(),OP_BUY,lotSize,Ask,4,Ask - SLPB*_Point, Ask + TPB2*_Point,NULL,128,0,Green);
}
else if((lastmovingAverageFS>lastmovingAverageSS)&&(movingAverageFS<movingAverageSS))
{
b = OrderSend (Symbol(),OP_SELL,lotSize,Bid,4,Ask + SLPS*_Point,Ask - TPS1*_Point,NULL,128,0,Red);
b = OrderSend (Symbol(),OP_SELL,lotSize,Bid,4,Ask + SLPS*_Point,Ask - TPS2*_Point,NULL,128,0,Red);
}
}
}
}
解决方案
推荐阅读
- git - 我的仓库有两个 GitHub 遥控器,*GitHub pages* 只更新其中一个
- python-3.x - 有没有办法使用数据框内容作为索引来更改数据框的内容范围?
- html - 如何在 ionic 4 页面加载时实现Celebration Confetti 动画?
- java - 按 Java 中的相关列表排序列表
- bitbucket - 如何在 bitbucket 管道中实现 openvpn?
- angular - Angular/Ionic 是否在 Google/Apple 的汽车系统中运行?
- html - 无法在单一页面应用程序 (Angular) 中显示多个组件
- c# - 安装 VS2019 后无法在 VS2015 中构建 .NET 4.5
- include - 如何使用 DXL (IBM DOORS) 中的可变路径包含文件 (#include <>)?
- c++ - 如何使用 Set 和 Custom 类?