if (ticket>0) // Если позиция открылась
{
while(OrderSelect(ticket,SELECT_BY_TICKET)==false) // Если ордер выбранSleep(100);
double OpenPrice=OrderOpenPrice();
// Print("OrderTicket()=",OrderTicket(), "OrderOpenTime()=",OrderOpenTime()); // Print("TimeLocal()=",TimeLocal()); //---------------------Запоминаем значения сл и тп ордера if (orderType == OP_BUY)
{
}
if (orderType == OP_SELL)
{
}
}
...请 :
全局变量和局部变量中的大多数一半都是未初始化的--我确信它们在某些时候包含了很多垃圾。
你从来没有通过OrderSelect()检查过一个订单是否被选中,我们甚至根本没有说要检查它是否打开或关闭。
我没有注意到交易功能前的任何报价更新...
GetLastError在打开/关闭前没有被重置,但它被检查过--同样,变量中会有垃圾的情况。
关闭时你不检查和规范价格
你想继续吗?
请讲。
非常有用。
在这里https://www.mql5.com/ru/forum/137651/page3,我发布了我的关闭功能
用print代替GetInfo(), Fun_Error() = ErrorDescription()
你从不检查订单是否被OrderSelect()选中。
说实话,我不太明白,如果在选择订单 时返回一个值--false--该怎么做。
假的是否意味着在MODE_TRADES中100%没有?
我根据你的建议重新绘制了开单代码,坦率地说,我没有碰过专家顾问的配置,所以我很好奇,让我们看看... 它是会卖出去还是会再获利?
说实话,我不太明白如果在选择订单时返回false该怎么办。
假的是否意味着在MODE_TRADES中100%没有?
这意味着100%不能对订单做任何事情,因为它没有被选中。
这意味着100%不能对它[订单]做什么,因为它没有被选中。
对... 哦,伙计...但如果没有被选中,那就是一个错误,不是吗?必须采取一些措施...
例如,请看这个函数。
如果订单没有被选中,我应该返回-1。而如果因为其他原因没有被选中--例如,某种故障,但订单是开放的,那么我应该怎么做?对...哦,伙计...但如果没有被选中,那就是某种错误,不是吗?必须采取一些措施...
它可能不会被选中。
1)因为专家顾问的代码有错误。
2)由于EA无法控制的情况而关闭(触发SL/TP,手动关闭,由EA关闭)。
对...哦,伙计...但如果没有选择,就会出现错误,不是吗?必须采取一些措施...
你是在跟我开玩笑还是认真的?
暂停并再次选择。我是这样组织的,它在网上运行。
你是在跟我开玩笑还是认真的?
暂停并再次选择。我是这样组织的,它在网上运行。
我在那里补充了我的帖子。
你要选择多少次?
我在那里补充了我的帖子。
那么要选择多少次呢?
在这之前。直到它在一个循环中被选中。
它可能不会被选中。
1)因为EA代码中的一个错误。
这是很清楚的
2)由于EA无法控制的情况而关闭(SL/TP被触发,手动关闭,由EA关闭)。