来自一个 "傻瓜 "的问题 - 页 216 1...209210211212213214215216217218219220221222223...277 新评论 [删除] 2012.12.05 12:54 #2151 2 Yedelkin,我告诉你,EA只是睡着了,停止工作。唤醒它的唯一方法是重新启动终端,它就会工作。2 sergeev,在MQL5中,当时钟停止时,意味着它睡着了。 Yedelkin 2012.12.05 12:55 #2152 Yedelkin: ......思绪又回到了无限循环,作为显式延迟事件处理 的最简单例子。 这里有一个问题:你 用什么功能来发送交易请求? G001 : 2 耶德尔金,我告诉你,专家顾问只是睡着了,停止工作。而它只有通过重新加载终端才能唤醒,而且还能工作。 一切都必须有一个理由和解释,包括目前似乎 "停止工作 "的现象。 --- 2012.12.05 13:06 #2153 G001:2 耶德尔金,我告诉你,EA只是睡着了,停止工作。唤醒它的唯一方法是重新启动终端,它就会工作。2 sergeev,在MQL5中,当时钟停止时,意味着它睡着了。 在哪个MQL事件中(你的EA中的哪个函数),你 "在它睡着的时候抓住它"? [删除] 2012.12.05 13:06 #2154 Yedelkin: 这是个问题:你 用什么功能来发送交易请求?一切都必须有一个理由和解释,包括迄今为止似乎已经 "停止工作 "的现象。//+------------------------------------------------------------------+ //| Open Orders | //+------------------------------------------------------------------+ // Perform analysis and open orders on new candle/bar if((TradeNewBar != true)||(IsNewBar() == true)) { //----- Open BUY_STOP if(TrendDetection() == BULL && TotalBullStopOrders() < 1 && TotalBullPositions() < 1) { request.action = TRADE_ACTION_PENDING; request.magic = Magic; request.symbol = Symbol(); request.volume = Volume(); request.price=NormalizeDouble(Ask+OrderDrive*_Point,_Digits); request.sl = NormalizeDouble(request.price - StopLoss*_Point,_Digits); request.tp = NormalizeDouble(request.price + TakeProfit*_Point,_Digits); request.type=ORDER_TYPE_BUY_STOP; request.type_filling=ORDER_FILLING_RETURN; request.comment=Coments; int ResBull = -1; while(ResBull < 1) { if(OrderCheck(request,check)) { ResBull = OrderSend(request,result); } if((MQL5InfoInteger(MQL5_TESTING)||MQL5InfoInteger(MQL5_OPTIMIZATION)))break; } Print("BuyStop Order Set "); if(UseSound == true){PlaySound(OrderSound);} Print(ResultRetcodeDescription(result.retcode)); } //----- Open SELL_STOP if(TrendDetection() == BEAR && TotalBearStopOrders() < 1 && TotalBearPositions() < 1) { request.action = TRADE_ACTION_PENDING; request.magic = Magic; request.symbol = Symbol(); request.volume = Volume(); request.price=NormalizeDouble(Bid-OrderDrive*_Point,_Digits); request.sl = NormalizeDouble(request.price + StopLoss*_Point,_Digits); request.tp = NormalizeDouble(request.price - TakeProfit*_Point,_Digits); request.type=ORDER_TYPE_SELL_STOP; request.type_filling=ORDER_FILLING_RETURN; request.comment=Coments; int ResBear = -1; while(ResBear < 1) { if(OrderCheck(request,check)) { ResBear = OrderSend(request,result); } if((MQL5InfoInteger(MQL5_TESTING)||MQL5InfoInteger(MQL5_OPTIMIZATION)))break; } Print("SellStop Order Set "); if(UseSound == true){PlaySound(OrderSound);} Print(ResultRetcodeDescription(result.retcode)); } } [删除] 2012.12.05 13:09 #2155 sergeev: 在哪个MQL事件中(你的EA中的哪个函数),你 "在它进入睡眠状态时抓住它"?对不起,我真的不知道你在问什么...:(时钟就在void OnTick()之后。void OnTick() { Comment("Local Time: "+TimeToString(TimeLocal(),TIME_MINUTES|TIME_SECONDS)); Yedelkin 2012.12.05 13:14 #2156 sergeev: 在哪个MQL事件中(你的EA中的哪个函数),你 "在它睡着的时候抓住它"? 是的,它直观地检测到专家顾问已经 "睡着了"。它将图表上的评论 时间与自己的时间进行比较。它不使用任何事件。 Nikita Zubarov 2012.12.05 13:15 #2157 有谁能帮助提供一个EA的条件?我想做一个EA,在关闭一个头寸 后,它将立即打开相同的头寸,并有相反的位置。例如,只开了2个头寸,一个卖出,一个买入。其中一个被关闭,例如在TP或SL买入,我想让EA重新建立一个买入头寸,并建立一个新的卖出头寸。有2个卖出位置和1个买入位置希望有人能想出一些公式,用一个相反的位置打开一个封闭的位置。或任何其他方式......我已经尝试了我所知道的一切((((,但都不起作用 :, ( 附加的文件: SellBuY.mq4 3 kb [删除] 2012.12.05 13:19 #2158 Yedelkin: 是的,它直观地检测到专家已经 "睡着"。它将图表上注释 中的时间与它的计算机时间进行比较。它不使用任何事件。 对。这就是我的要求,如何以编程方式找出EA停止工作的时间。 Yedelkin 2012.12.05 13:20 #2159 G001: ResBear = OrderSend(request,result); 明白了。你使用OrderSend() 函数。该版本是,NewTick()函数处理OnTick()事件 的延迟可能是由于缺乏服务器的响应造成的,因为OrderSend()函数必须等待这个响应。如果有兴趣,可以尝试使用它的异步拷贝,而不是OrderSend() 函数,后者不需要等待服务器的回复。这是否会导致专家顾问停止工作? [删除] 2012.12.05 13:26 #2160 Yedelkin: 明白了。你正在使用OrderSend() 函数。这个版本是,延迟可能是由于服务器没有响应,因为OrderSend()函数必须等待这个响应。如果你有兴趣,可以尝试使用它的异步拷贝,而不是OrderSend() 函数,它不需要等待服务器的回复。在这种情况下,它也会悬挂吗? 谢谢你。我也想过使用异步版本,但我不知道经纪人是否会不考虑这些交易。但我会努力。 1...209210211212213214215216217218219220221222223...277 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
2 sergeev,在MQL5中,当时钟停止时,意味着它睡着了。
这里有一个问题:你 用什么功能来发送交易请求?
一切都必须有一个理由和解释,包括目前似乎 "停止工作 "的现象。
2 sergeev,在MQL5中,当时钟停止时,意味着它睡着了。
这是个问题:你 用什么功能来发送交易请求?
一切都必须有一个理由和解释,包括迄今为止似乎已经 "停止工作 "的现象。
在哪个MQL事件中(你的EA中的哪个函数),你 "在它进入睡眠状态时抓住它"?
对不起,我真的不知道你在问什么...:(
时钟就在void OnTick()之后。
在哪个MQL事件中(你的EA中的哪个函数),你 "在它睡着的时候抓住它"?
有谁能帮助提供一个EA的条件?
我想做一个EA,在关闭一个头寸 后,它将立即打开相同的头寸,并有相反的位置。
例如,只开了2个头寸,一个卖出,一个买入。其中一个被关闭,例如在TP或SL买入,我想让EA重新建立一个买入头寸,并建立一个新的卖出头寸。
有2个卖出位置和1个买入位置
希望有人能想出一些公式,用一个相反的位置打开一个封闭的位置。
或任何其他方式......我已经尝试了我所知道的一切((((,但都不起作用 :, (
是的,它直观地检测到专家已经 "睡着"。它将图表上注释 中的时间与它的计算机时间进行比较。它不使用任何事件。
G001: ResBear = OrderSend(request,result);
明白了。你正在使用OrderSend() 函数。这个版本是,延迟可能是由于服务器没有响应,因为OrderSend()函数必须等待这个响应。如果你有兴趣,可以尝试使用它的异步拷贝,而不是OrderSend() 函数,它不需要等待服务器的回复。在这种情况下,它也会悬挂吗?