[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 301 1...294295296297298299300301302303304305306307308...652 新评论 costy_ 2011.10.28 16:23 #3001 rustein: 我在论坛上搜索了一下,但没有找到一个快速的解决方案,帮助解决在测试器中不工作的问题,而在现实生活中却可以。谢谢你。 如果它挂住了测试器,那么它就应该挂住。(一定要描述出环路的出口)。 像这样 while(Result == -1) { if(TotalOpenOrders() < TotalOrders) { if(TrendDetection() == BULL) { Result = OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,Digits),Slippage,NormalizeDouble(Ask,Digits)-(StopLoss*Point),NormalizeDouble(Ask,Digits)+(TakeProfit*Point),OrderComments,Magic,0,CLR_NONE); if((IsTesting()||IsOptimization())&&Result == -1)break; } Warstein 2011.10.28 16:24 #3002 drknn: 很难说你的问题是什么。在MQL4中,作为一项规则,代码中的负数应该总是放在括号中。有时可能出现没有括号的错误。 虽然,在以extern开头的代码行中,在括号中取负值是没有必要的。我不知道为什么会这样。 谢谢你,但这不起作用,你能不能建议一个结构来摆脱这个循环 if(IsTesting()==true || IsOptimization()==true) costy_ 2011.10.28 16:26 #3003 rustein: 谢谢,但这不起作用,你能不能建议一个结构来摆脱循环 if(IsTesting()==true || IsOptimization()==true) while(Result == -1) { if(TotalOpenOrders() < TotalOrders) { if(TrendDetection() == BULL) { Result = OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,Digits),Slippage,NormalizeDouble(Ask,Digits)-(StopLoss*Point),NormalizeDouble(Ask,Digits)+(TakeProfit*Point),OrderComments,Magic,0,CLR_NONE); if((IsTesting()||IsOptimization())&&Result == -1)break; } ^^ [删除] 2011.10.28 16:28 #3004 drknn: 它不需要警报--我的理解是,在代码的某个地方,文件可能已经打开,但没有关闭。这可能就是为什么文件不能被重新打开,警报窗口不断弹出的原因。不过,也许我错了--我不是心灵感应俱乐部的成员 :( 情况如下:在某一时刻,专家顾问进入一个csv文件,并检查那里有什么命令(买入、卖出、关闭),这个命令由EXCEL写入文件中。问题是目前,当专家将读取文件时,它可以被EXCEL打开,Ekspert会给出一个错误,就这样,我需要它再去尝试,直到它读取命令。 我不知道,而 建设... 请检查我写得是否正确。 int init() { while(handle<1) { handle=FileOpen("firstfile.csv",FILE_CSV|FILE_READ|FILE_WRITE,'\t') } } costy_ 2011.10.28 16:31 #3005 sanches83: } 是的,为什么要问,你可以用 "战斗 "来测试它))。 Владимир Тезис 2011.10.28 16:32 #3006 rustein: 谢谢,但这不起作用,你能不能建议一个结构来摆脱循环 if(IsTesting()==true || IsOptimization()==true) 试试完全没有循环,像这样说。 double PR,SL,TP; PR=NormalizeDouble(Ask,Digits); SL=NormalizeDouble(PR-StopLoss*Point,Digits); TP=NormalizeDouble(PR+TakeProfit*Point,Digits); int Result=0; Result = OrderSend(Symbol(),OP_BUY,Lots,PR,Slippage,SL,TP,OrderComments,Magic,0,CLR_NONE); if(Result<=0){ Print("Ошибка № ",GetLastError()," при открытии бай-ордера. PR = ",PR," SL = ",SL," TP = ",TP); } 这至少会有助于理解为什么姿势打不开。 Warstein 2011.10.28 16:36 #3007 costy_: ^^ 非常感谢 :) 谢谢大家,修好了,可以用了。 非常感谢您的帮助。 Владимир Тезис 2011.10.28 16:39 #3008 costy_: 是的,我们为什么要问,我们可以通过 "战斗 "来检查它))。 一般来说,这是正确的,但为了使其工作,我们需要在循环之前初始化变量。 handle=0。 while(handle<1) { handle=FileOpen("firstfile.csv",FILE_CSV|FILE_READ|FILE_WRITE,'\t')。 } 嗯,这只是为了绝对确保代码的执行会进入循环的主体,而不是忽略它。 costy_ 2011.10.28 16:44 #3009 drknn: 事实上,这是正确的,但为了工作,变量应该在循环之前被初始化。 handle=0。 while(handle<1) { handle=FileOpen("firstfile.csv",FILE_CSV|FILE_READ|FILE_WRITE,'\t')。 } 这是为了确保代码的执行进入了循环体,而不是忽略它。 是的,不幸的是,我必须像算命先生一样,用问题上的部分代码创建脚本,好吧,或者所有的代码,这样会更容易让你指出错误。 咖啡渣zakAchyVeTso)。 [删除] 2011.10.28 16:53 #3010 伙计们,帮我一下吧!!!。 我正试图用早间通道策略编写一个EA。其本质是这样的:在6:01,在EURGBP货币对上,我们确定从0点到早上6点的价格运动通道。我们设置两个挂单,如果被触发的挂单被止损器关闭,我们就开一个相反方向的订单。正是该战略的第二部分不起作用。也就是说,如果一个止损点已经触发,我们就不能在相反的方向上开立一个订单。 附加的文件: kupffqkvgsg.mq4 4 kb 1...294295296297298299300301302303304305306307308...652 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
谢谢你。
如果它挂住了测试器,那么它就应该挂住。(一定要描述出环路的出口)。
像这样
很难说你的问题是什么。在MQL4中,作为一项规则,代码中的负数应该总是放在括号中。有时可能出现没有括号的错误。
虽然,在以extern开头的代码行中,在括号中取负值是没有必要的。我不知道为什么会这样。
谢谢,但这不起作用,你能不能建议一个结构来摆脱循环 if(IsTesting()==true || IsOptimization()==true)
^^
它不需要警报--我的理解是,在代码的某个地方,文件可能已经打开,但没有关闭。这可能就是为什么文件不能被重新打开,警报窗口不断弹出的原因。不过,也许我错了--我不是心灵感应俱乐部的成员 :(
我不知道,而 建设...
int init()
{
while(handle<1)
{
handle=FileOpen("firstfile.csv",FILE_CSV|FILE_READ|FILE_WRITE,'\t')
}
}
}
谢谢,但这不起作用,你能不能建议一个结构来摆脱循环 if(IsTesting()==true || IsOptimization()==true)
试试完全没有循环,像这样说。
这至少会有助于理解为什么姿势打不开。
^^
非常感谢 :)
谢谢大家,修好了,可以用了。
非常感谢您的帮助。
是的,我们为什么要问,我们可以通过 "战斗 "来检查它))。
一般来说,这是正确的,但为了使其工作,我们需要在循环之前初始化变量。
handle=0。
while(handle<1)
{
handle=FileOpen("firstfile.csv",FILE_CSV|FILE_READ|FILE_WRITE,'\t')。
}
嗯,这只是为了绝对确保代码的执行会进入循环的主体,而不是忽略它。
事实上,这是正确的,但为了工作,变量应该在循环之前被初始化。
handle=0。
while(handle<1)
{
handle=FileOpen("firstfile.csv",FILE_CSV|FILE_READ|FILE_WRITE,'\t')。
}
这是为了确保代码的执行进入了循环体,而不是忽略它。
伙计们,帮我一下吧!!!。
我正试图用早间通道策略编写一个EA。其本质是这样的:在6:01,在EURGBP货币对上,我们确定从0点到早上6点的价格运动通道。我们设置两个挂单,如果被触发的挂单被止损器关闭,我们就开一个相反方向的订单。正是该战略的第二部分不起作用。也就是说,如果一个止损点已经触发,我们就不能在相反的方向上开立一个订单。