初学者的问题 MQL5 MT5 MetaTrader 5 - 页 302 1...295296297298299300301302303304305306307308309...1503 新评论 Dmitriy Skub 2014.10.22 14:13 #3011 mavar:干杯!今天我在MT5中推出了我的第一个EA!市场上合适的情况来了,专家顾问开始买了又买!!。至少我设法及时做出了反应。你能告诉我代码里有什么问题吗?我认为它应该只买一手,并立即设置止损和止盈。只要他买了东西,变量Bye_opened 就应该变成真, 在止损被触发之前,应该不允许他做后续的交易。另外,我如何知道最后一笔交易的价格,以便在上面设置止损?但看起来我做错了什么。请指出我的错误。点击率可能比该职位在未平仓名单中的速度更快。所以,你的支票 if(PositionSelect(_Symbol)==true)将有一段时间不能工作,在这段时间里,将有几个条目被删除。假设上述代码位于tick handler中。 PokrovMT5 2014.10.22 15:52 #3012 pako:把这个脚本放在scripts文件夹中,在unitor中打开这个脚本,编译它。当交易所打开时,把这个脚本拖到图表上 谢谢你的帮助,我自己想通了,一切都成功了。 PokrovMT5 2014.10.22 16:00 #3013 大家晚上好,分享一下拖网的代码。谢谢你。 Vladimir Karputov 2014.10.22 16:07 #3014 PokrovMT5: 大家晚上好,请分享拖网的代码。谢谢。请使用网站搜索--这并不难:https://www.mql5.com/ru/search#!keyword=%D1%82%D1%80%D0%B0%D0%BB PokrovMT5 2014.10.22 17:13 #3015 barabashkakvn:请使用网站搜索--这并不困难:https://www.mql5.com/ru/search#!keyword=%D1%82%D1%80%D0%B0%D0%BB 谢谢你! mavar 2014.10.22 21:37 #3016 Dima_S:点击率可能会比仓位在开仓列表中的速度快。所以,你的支票 将在一段时间内不工作,在这段时间内会有多个条目。假设上述代码位于tick handler中。迪马,代码在tick处理块中。解决这个问题的正确方法是什么?我在QuickBooks中也遇到了同样的问题,机器人经常买的东西比它应该买的多。我把它归结为它的第二个延迟,并简单地添加了单独的变量,当条件满足时就会改变,但它在那里也有一些问题。有时订单被交易所拒绝,而变量已经有了 "交易 "的值,机器人没有交易。如何在MQL5中正确解决这个问题,使机器人在给定的条件下买入指定的手数,在卖出所有买入的手数之前,不会买入超过指定的手数? mavar 2014.10.23 13:14 #3017 我们是否应该在购买后暂停一下,等待交易所的答复,以确定是否有问题?Sleep(1000); //你暂停了吗? mq35 2014.10.23 13:38 #3018 止损不动写道。--修改订单 -- 价格open:1.3111 BID :1.3121 sl 1.3109 修改失败的订单#3在1.31110买入限价1.00 sl: 1.31080 tp: 0.00000 -> 1.31110, sl: 1.31090 tp: 0.00000 [无效的停止]--修改订单 <- result:10016为什么?void MoveStopLoss() { ulong ticket = OrderGetTicket(0); double price = OrderGetDouble(ORDER_PRICE_OPEN); double slossPrev = OrderGetDouble(ORDER_SL); double sloss = SymbolInfoDouble(_SYMBOL, SYMBOL_ASK) - SymbolInfoDouble(_SYMBOL, SYMBOL_POINT)*15; if (slossPrev < sloss) { MqlTradeRequest request={0}; MqlTradeResult result={0}; request.action = TRADE_ACTION_MODIFY; // Тип выполняемого действия request.order = ticket; // Тикет ордера (для модификации ордеров) request.price = price; // Цена request.sl = sloss; // Уровень Stop Loss ордера request.tp = 0; // Уровень Stop Loss ордера request.type_time = ORDER_TIME_DAY; // Тип ордера по времени действия Print ("--Modify order -> ", " price open:", price, " BID :", SymbolInfoDouble(_SYMBOL, SYMBOL_BID), " sl ", request.sl); bool ret = OrderSend (request, result); Print ("--Modify order <- результат:", result.retcode); } } [删除] 2014.10.23 13:47 #3019 mq35:止损不动写道。--修改订单 -- 价格open:1.3111 BID :1.3121 sl 1.3109 修改失败的订单#3在1.31110买入限价1.00 sl: 1.31080 tp: 0.00000 -> 1.31110, sl: 1.31090 tp: 0.00000 [无效的停止]--修改订单 <- result:10016为什么? 尝试使SL正常化。 mq35 2014.10.23 13:56 #3020 正常化没有帮助。同样的事情,sop-loss没有被拉起来--创建订单-> ASK:1.3121 价格:1.3111 sl 1.3106在1.3111 (1.3121)买入限额1.00欧元兑美元,目标:1.3106 (1.3118 / 1.3121 / 1.3118)--创建订单 <- 结果:10009--修改订单 -- 价格open:1.3111 BID :1.3119 sl 1.3107 修改后的订单 [#3 买入限额 1.00 EURUSD at 1.3111] 。--修改订单 <- result:10009--修改订单 -- 价格open:1.3111 BID :1.312 sl 1.3108 修改后的订单 [#3 买入限额 1.00 EURUSD at 1.3111] 。--修改订单 <- result:10009--修改订单 -- 价格open:1.3111 BID :1.3121 sl 1.3109 修改失败的订单#3在1.31110买入限价1.00 sl: 1.31080 tp: 0.00000 -> 1.31110, sl: 1.31090 tp: 0.00000 [无效的停止]--修改订单 <- result:10016 Questions from Beginners MQL5 RETCODE ERROR 10036 how EA study book MT5 1...295296297298299300301302303304305306307308309...1503 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
干杯!今天我在MT5中推出了我的第一个EA!
市场上合适的情况来了,专家顾问开始买了又买!!。至少我设法及时做出了反应。你能告诉我代码里有什么问题吗?我认为它应该只买一手,并立即设置止损和止盈。只要他买了东西,变量Bye_opened 就应该变成真, 在止损被触发之前,应该不允许他做后续的交易。另外,我如何知道最后一笔交易的价格,以便在上面设置止损?
但看起来我做错了什么。请指出我的错误。
点击率可能比该职位在未平仓名单中的速度更快。所以,你的支票
将有一段时间不能工作,在这段时间里,将有几个条目被删除。假设上述代码位于tick handler中。
把这个脚本放在scripts文件夹中,在unitor中打开这个脚本,编译它。
当交易所打开时,把这个脚本拖到图表上
大家晚上好,请分享拖网的代码。谢谢。
请使用网站搜索--这并不难:https://www.mql5.com/ru/search#!keyword=%D1%82%D1%80%D0%B0%D0%BB
请使用网站搜索--这并不困难:https://www.mql5.com/ru/search#!keyword=%D1%82%D1%80%D0%B0%D0%BB
点击率可能会比仓位在开仓列表中的速度快。所以,你的支票
将在一段时间内不工作,在这段时间内会有多个条目。假设上述代码位于tick handler中。
迪马,代码在tick处理块中。解决这个问题的正确方法是什么?我在QuickBooks中也遇到了同样的问题,机器人经常买的东西比它应该买的多。我把它归结为它的第二个延迟,并简单地添加了单独的变量,当条件满足时就会改变,但它在那里也有一些问题。有时订单被交易所拒绝,而变量已经有了 "交易 "的值,机器人没有交易。
如何在MQL5中正确解决这个问题,使机器人在给定的条件下买入指定的手数,在卖出所有买入的手数之前,不会买入超过指定的手数?
我们是否应该在购买后暂停一下,等待交易所的答复,以确定是否有问题?
Sleep(1000); //你暂停了吗?
止损不动
写道。
--修改订单 -- 价格open:1.3111 BID :1.3121 sl 1.3109
修改失败的订单#3在1.31110买入限价1.00 sl: 1.31080 tp: 0.00000 -> 1.31110, sl: 1.31090 tp: 0.00000 [无效的停止]
--修改订单 <- result:10016
为什么?
止损不动
写道。
--修改订单 -- 价格open:1.3111 BID :1.3121 sl 1.3109
修改失败的订单#3在1.31110买入限价1.00 sl: 1.31080 tp: 0.00000 -> 1.31110, sl: 1.31090 tp: 0.00000 [无效的停止]
--修改订单 <- result:10016
为什么?
正常化没有帮助。同样的事情,sop-loss没有被拉起来
--创建订单-> ASK:1.3121 价格:1.3111 sl 1.3106
在1.3111 (1.3121)买入限额1.00欧元兑美元,目标:1.3106 (1.3118 / 1.3121 / 1.3118)
--修改订单 -- 价格open:1.3111 BID :1.3119 sl 1.3107--创建订单 <- 结果:10009
修改后的订单 [#3 买入限额 1.00 EURUSD at 1.3111] 。
--修改订单 <- result:10009
--修改订单 -- 价格open:1.3111 BID :1.312 sl 1.3108修改后的订单 [#3 买入限额 1.00 EURUSD at 1.3111] 。
--修改订单 <- result:10009
--修改订单 -- 价格open:1.3111 BID :1.3121 sl 1.3109修改失败的订单#3在1.31110买入限价1.00 sl: 1.31080 tp: 0.00000 -> 1.31110, sl: 1.31090 tp: 0.00000 [无效的停止]
--修改订单 <- result:10016