文章 "针对初学者以 MQL5 编写“EA 交易”的分步指南" - 页 17 1...101112131415161718192021222324...30 新评论 Daniel Lima 2018.11.20 02:40 #161 非常好谢谢! charlesg 2018.11.21 17:32 #162 我下载了文件并调试了代码,结果显示了这样的警告,谁能帮我解决这个问题? 应检查"OrderSend"的返回值 EricVortex 2018.11.22 01:14 #163 你好,我是新手,也在测试机器人。 试试这个: //OrderSend(mrequest,mresult);bool res=OrderSend(mrequest,mresult);// 获取结果代码if(res && (mresult.retcode==10009 || mresult.retcode==10008)) //请求已完成或已下订单{Alert("A Buy order has been successfully placed with Ticket#:",mresult.order,"!");}否则{Alert("The Buy order request could not be completed -error:",GetLastError());ResetLastError();返回;} 如果我说错了,请指正! 研究来源:https://www.mql5.com/en/forum/23663 return value of 'OrderSend' should be checked 2014.05.03www.mql5.com Hi ! I'm wondering how to do that ...:/ the warning appeared @ the last update... Discussion of article "Step-by-Step 我三个月前写的EA现在不能通过策略测试,但它在两三个月前运行得很好!!。 Closing a position Allyson 2019.01.10 16:54 #164 我在调试时,总是在发送订单时出错。我以为是我的代码出了问题,但即使在测试下载 mql5 文件时也会出错。 brunoblits 2019.01.16 12:52 #165 northedan:我在调试时,总是在发送订单时出错。我以为是我的代码出了问题,但即使在测试下载 mql5 文件时也会出错。我认为示例中使用的是货币,因此 0.1 的手数变量不适合您的测试,请尝试这样更改(更改 mrequest.volume 变量): double minSymbolLot = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);mrequest.action = TRADE_ACTION_DEAL; // 立即执行订单mrequest.price = NormalizeDouble(latest_price.ask,_Digits); // 最新卖出价mrequest.sl = NormaliseDouble(latest_price.ask - STP*_Point,_Digits); // 止损点mrequest.tp = NormaliseDouble(latest_price.ask + TKP*_Point,_Digits); // 止盈mrequest.symbol = _Symbol; // 货币对 mrequest.volume = minSymbolLot; // 交易手数mrequest.magic = EA_Magic; // 订单魔法编号mrequest.type = ORDER_TYPE_BUY; // 买入订单mrequest.type_filling =ORDER_FILLING_FOK; // 订单执行类型mrequest.deviation=100; Discussion of article "Step-by-Step Stop Loss with price Questions from Beginners MQL5 Sella170 2019.01.17 13:35 #166 有谁知道我是否可以将此 EA 用于迷你指数 或迷你美元? জচেলিনো 2019.01.17 13:41 #167 Sella170: 有谁知道我是否可以将此 EA 用于迷你指数或迷你美元?您了解该策略吗?你了解风险吗?你分析过 SL 和 TP 水平吗?你知道所使用的技术指标吗?知道如何设置参数吗?您知道如何为每种资产(WIN 和 WDO)定制变量吗? 代码本身是为任何资产开发的,您可以通过"_Symbol "和任何图表时间"_Period "来识别。 现在,重要的是您要知道运行 EA 时要做什么。如果您选择这样做,我建议您只在模拟账户上操作,直到您掌握了该工具并对股市有了更好的了解。 [ ]'s apirakkamjan 2019.02.10 12:42 #168 各位、 如果同时打开多个订单时出现错误,这是一个简单快速的修改代码。 将以下代码替换为:第 167 - 177 行 if(PositionSelect(_Symbol)==true) // 我们打开了一个仓位 { if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY) { Buy_opened=true; //买入 } else if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL) { Sell_opened=true; // 卖出 } } 替换为以下代码: int total= PositionsTotal(); for(int i=0;i<total;i++) { if(PositionGetSymbol(i)==_Symbol); { if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY) { Buy_opened=true; //买入 } else if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL) { Sell_opened=true; // 卖出 } } } 感谢@Samuel Olowoyo Locus_Neminis 2019.05.17 08:32 #169 Korobejnik:建议如何解决问题。Expert Advisor 会连续打开多个仓位进行买入,卖出也是如此。尽管在代码中进行了检查,但 Expert Advisor 没有看到已经打开的买入和卖出仓位,而是打开了新的仓位。 对已经打开的仓位进行检查。由于某些原因,该检查不起作用。由于这里的巨魔版主没有提供帮助,我将复制英文论坛上的答案: 伙计们,这是一个简单快速的可修改代码,如果您在同时打开多个订单时出现错误。替换以下代码: 从第 167 - 177 行 if(PositionSelect(_Symbol)==true) // 我们有一个空缺职位 { if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY) { Buy_opened=true; //买入 } else if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL) { Sell_opened=true; // 卖出 } }替换为 int total= PositionsTotal(); for(int i=0;i<total;i++) { if(PositionGetSymbol(i)==_Symbol); { if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY) { Buy_opened=true; //买入 } else if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL) { Sell_opened=true; // 卖出 } } } Artyom Trishkin 2019.05.19 15:55 #170 Locus_Neminis:既然这里的巨魔版主帮不了我,那我就复制英文论坛上的答案吧:伙计们,如果同时打开多个订单时出现错误,这是一个简单快速的可修改代码。替换以下代码: 从第 167 - 177 行替换为 这没用。我的个人资料中有一个关于此问题的主题。那里有问题 的原因和解决方案。我不明白巨魔的意思。 1...101112131415161718192021222324...30 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我下载了文件并调试了代码,结果显示了这样的警告,谁能帮我解决这个问题?
应检查"OrderSend"的返回值
你好,我是新手,也在测试机器人。
试试这个:
//OrderSend(mrequest,mresult);
bool res=OrderSend(mrequest,mresult);
// 获取结果代码
if(res && (mresult.retcode==10009 || mresult.retcode==10008)) //请求已完成或已下订单
{
Alert("A Buy order has been successfully placed with Ticket#:",mresult.order,"!");
}
否则
{
Alert("The Buy order request could not be completed -error:",GetLastError());
ResetLastError();
返回;
}
如果我说错了,请指正!
研究来源:https://www.mql5.com/en/forum/23663
我在调试时,总是在发送订单时出错。我以为是我的代码出了问题,但即使在测试下载 mql5 文件时也会出错。
我在调试时,总是在发送订单时出错。我以为是我的代码出了问题,但即使在测试下载 mql5 文件时也会出错。
我认为示例中使用的是货币,因此 0.1 的手数变量不适合您的测试,请尝试这样更改(更改 mrequest.volume 变量):
double minSymbolLot = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
mrequest.action = TRADE_ACTION_DEAL; // 立即执行订单
mrequest.price = NormalizeDouble(latest_price.ask,_Digits); // 最新卖出价
mrequest.sl = NormaliseDouble(latest_price.ask - STP*_Point,_Digits); // 止损点
mrequest.tp = NormaliseDouble(latest_price.ask + TKP*_Point,_Digits); // 止盈
mrequest.symbol = _Symbol; // 货币对
mrequest.volume = minSymbolLot; // 交易手数
mrequest.magic = EA_Magic; // 订单魔法编号
mrequest.type = ORDER_TYPE_BUY; // 买入订单
mrequest.type_filling =ORDER_FILLING_FOK; // 订单执行类型
mrequest.deviation=100;
有谁知道我是否可以将此 EA 用于迷你指数或迷你美元?
您了解该策略吗?你了解风险吗?你分析过 SL 和 TP 水平吗?你知道所使用的技术指标吗?知道如何设置参数吗?您知道如何为每种资产(WIN 和 WDO)定制变量吗?
代码本身是为任何资产开发的,您可以通过"_Symbol "和任何图表时间"_Period "来识别。
现在,重要的是您要知道运行 EA 时要做什么。如果您选择这样做,我建议您只在模拟账户上操作,直到您掌握了该工具并对股市有了更好的了解。
[ ]'s
各位、
如果同时打开多个订单时出现错误,这是一个简单快速的修改代码。
将以下代码替换为:第 167 - 177 行
替换为以下代码:
感谢@Samuel Olowoyo
建议如何解决问题。Expert Advisor 会连续打开多个仓位进行买入,卖出也是如此。
尽管在代码中进行了检查,但 Expert Advisor 没有看到已经打开的买入和卖出仓位,而是打开了新的仓位。
对已经打开的仓位进行检查。由于某些原因,该检查不起作用。
由于这里的巨魔版主没有提供帮助,我将复制英文论坛上的答案:
伙计们,这是一个简单快速的可修改代码,如果您在同时打开多个订单时出现错误。替换以下代码: 从第 167 - 177 行
替换为
既然这里的巨魔版主帮不了我,那我就复制英文论坛上的答案吧:
伙计们,如果同时打开多个订单时出现错误,这是一个简单快速的可修改代码。替换以下代码: 从第 167 - 177 行
替换为