初学者的问题 MQL5 MT5 MetaTrader 5 - 页 555 1...548549550551552553554555556557558559560561562...1503 新评论 [删除] 2016.04.04 06:42 #5541 Alexey Viktorov:我读过这些论点。但这不是争论,只是不愿意理解解释和试图证明终端的错误。你的话没有得到任何支持。你太懒了,懒得做截图,懒得解释清楚你的想法。 什么截图?我已经提供了代码,它在MT4上运行,在MT5上会崩溃。错误的类型写在代码中,也被注释出来。 Alexey Viktorov 2016.04.04 06:48 #5542 comp: 什么截图?提供的代码,在MT4上运行,在MT5上崩溃,出现错误。错误的类型写在代码中,也被注释出来。这很好。这是你的观点。你认为每个人都要做一些事情来理解你的观点,但你不认为不和你争论更容易,要求太高确实更容易被禁。幸运的是,我没有禁止的权利,所以我只是停止了这种对话。 [删除] 2016.04.04 09:56 #5543 请告诉我为什么订单无法打开void OnTick() { int pos; int rsi; int uroven1; int uroven2; int kolpos; uroven1=RSI_uroven1; uroven2=RSI_uroven2; rsi=iRSI(Symbol(),0,RSI,0,1); //================================================================== for(int pos=0; pos<OrdersTotal(); pos++) { OrderSelect(pos,SELECT_BY_POS,MODE_TRADES); if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic) kolpos++; } //==================================================================== if(kolpos==0) { if(rsi>uroven1 || rsi<uroven1 || rsi>uroven2 || rsi<uroven2) { OrderSend(Symbol(),OP_BUY,Lot,Ask,30,0,0,"",Magic,0,clrAliceBlue); OrderSend(Symbol(),OP_SELL,Lot,Bid,30,0,0,"",Magic,0,clrRed); } } } 请告诉我为什么订单无法打开。 Vladislav Andruschenko 2016.04.04 10:01 #5544 edutak: 请告诉我为什么订单无法打开。我至少有4个错误'RSI_uroven1' - 未宣布的标识符 32.mq4 13 12'RSI_uroven2' - 未宣布的标识符 32.mq4 14 12'RSI' - 未宣布的标识符 32.mq4 16 24'pos' - 已经定义的变量 32.mq4 19 12//+------------------------------------------------------------------+ //| ProjectName | //| Copyright 2012, CompanyName | //| http://www.companyname.net | //+------------------------------------------------------------------+ #property strict int RSI=23; int RSI_uroven1=100; int RSI_uroven2=100; int Magic=777; double Lot=0.1; void OnTick() { int pos; int rsi; int uroven1; int uroven2; int kolpos; uroven1=RSI_uroven1; uroven2=RSI_uroven2; rsi=iRSI(Symbol(),0,RSI,0,1); //================================================================== for(int pos=0; pos<OrdersTotal(); pos++) { OrderSelect(pos,SELECT_BY_POS,MODE_TRADES); if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic) kolpos++; } //==================================================================== if(kolpos==0) { if(rsi>uroven1 || rsi<uroven1 || rsi>uroven2 || rsi<uroven2) { OrderSend(Symbol(),OP_BUY,NormalizeDouble(Lot,2),Ask,30,0,0,"",Magic,0,clrAliceBlue); OrderSend(Symbol(),OP_SELL,NormalizeDouble(Lot,2),Bid,30,0,0,"",Magic,0,clrRed); } } } //+------------------------------------------------------------------+ все октрывает 1 2015.01.02 09:00 buy 1 0.10 120.42 0.00 0.00 0.00 10000.00 2 2015.01.02 09:00 sell 2 0.10 120.39 0.00 0.00 0.00 10000.00 3 2016.04.04 13:08 close at stop 2 0.10 111.66 0.00 0.00 3.26 10003.26 4 2016.04.04 13:08 close at stop 1 0.10 111.63 0.00 0.00 -11.85 9991.41 Vitalii Ananev 2016.04.04 10:04 #5545 edutak: 请告诉我为什么订单没有打开。首先我给了你一个计算订单数量的正常函数,但你仍然继续使用你的错误函数。其次,如果(rsi>uroven1 || rsi<uroven1 || rsi>uroven2 || rsi<uroven2)条件是相互矛盾的。 [删除] 2016.04.04 10:13 #5546 Vitalii Ananev:首先我给了你一个计算订单数量的正常函数,但你仍然继续使用你的错误函数。其次,如果(rsi>uroven1 || rsi<uroven1 || rsi>uroven2 || rsi<uroven2)条件是相互不一致的。我将使用正常的函数,这只是暂时的草案,为测试者准备的--我只是在块中复制,这样更快。如果在越过RSI的任何一个水平时,订单打开,而在越过任何其他水平时--它关闭并立即打开另一个,那么就不存在矛盾。或者有吗? [删除] 2016.04.04 10:18 #5547 Vladislav Andruschenko:我至少有4个错误'RSI_uroven1' - 未宣布的标识符 32.mq4 13 12'RSI_uroven2' - 未宣布的标识符 32.mq4 14 12'RSI' - 未宣布的标识符 32.mq4 16 24'pos' - 已经定义的变量 32.mq4 19 12 谢谢你,这很有效。 Vitalii Ananev 2016.04.04 10:27 #5548 edutak:我将使用正常的功能,这是目前的一个粗略的草案,为测试者 - 我只是在块中复制,这样更快。如果当RSI越过任何一个水平时,订单打开,当它越过任何其他水平时,它关闭并立即打开另一个,那么就不存在矛盾。或者有吗?想想看吧。我们假设uroven1=80;rsi=30;条件rsi>80或rsi<80意味着(30>80[假]或30<80[真])在自然界不存在。虽然这个条件会是真的,因为它使用了OR运算符,但它本质上是没有意义的。表达式的第二部分 Suppose uroven2 = 20; rsi = 30 (30 > 20 [true] or 30< 20[false] ) 是相同的。 [删除] 2016.04.04 10:52 #5549 表达式的第二部分 Suppose uroven2 = 20; rsi = 30 (30 > 20 [true] or 30< 20[false] ) 是相同的。当我写到 "或 "时,我的意思是在任何级别的交叉点,订单都会被打开。当第二个条件30<20[false]发生时,在那一刻,之前的订单将被关闭,它将成为真的。如果我理解正确的话。 [删除] 2016.04.04 10:57 #5550 如果你证明是正确的,我将增加第二个RSI。 1...548549550551552553554555556557558559560561562...1503 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我读过这些论点。但这不是争论,只是不愿意理解解释和试图证明终端的错误。你的话没有得到任何支持。你太懒了,懒得做截图,懒得解释清楚你的想法。
什么截图?提供的代码,在MT4上运行,在MT5上崩溃,出现错误。错误的类型写在代码中,也被注释出来。
这很好。这是你的观点。你认为每个人都要做一些事情来理解你的观点,但你不认为不和你争论更容易,要求太高确实更容易被禁。
幸运的是,我没有禁止的权利,所以我只是停止了这种对话。
请告诉我为什么订单无法打开。
我至少有4个错误
'RSI_uroven1' - 未宣布的标识符 32.mq4 13 12
'RSI_uroven2' - 未宣布的标识符 32.mq4 14 12
'RSI' - 未宣布的标识符 32.mq4 16 24
'pos' - 已经定义的变量 32.mq4 19 12
все октрывает
1 2015.01.02 09:00 buy 1 0.10 120.42 0.00 0.00 0.00 10000.00 2 2015.01.02 09:00 sell 2 0.10 120.39 0.00 0.00 0.00 10000.00 3 2016.04.04 13:08 close at stop 2 0.10 111.66 0.00 0.00 3.26 10003.26 4 2016.04.04 13:08 close at stop 1 0.10 111.63 0.00 0.00 -11.85 9991.41
请告诉我为什么订单没有打开。
首先我给了你一个计算订单数量的正常函数,但你仍然继续使用你的错误函数。
其次,如果(rsi>uroven1 || rsi<uroven1 || rsi>uroven2 || rsi<uroven2)条件是相互矛盾的。
首先我给了你一个计算订单数量的正常函数,但你仍然继续使用你的错误函数。
其次,如果(rsi>uroven1 || rsi<uroven1 || rsi>uroven2 || rsi<uroven2)条件是相互不一致的。
我将使用正常的函数,这只是暂时的草案,为测试者准备的--我只是在块中复制,这样更快。
如果在越过RSI的任何一个水平时,订单打开,而在越过任何其他水平时--它关闭并立即打开另一个,那么就不存在矛盾。
或者有吗?
我至少有4个错误
'RSI_uroven1' - 未宣布的标识符 32.mq4 13 12
'RSI_uroven2' - 未宣布的标识符 32.mq4 14 12
'RSI' - 未宣布的标识符 32.mq4 16 24
'pos' - 已经定义的变量 32.mq4 19 12
我将使用正常的功能,这是目前的一个粗略的草案,为测试者 - 我只是在块中复制,这样更快。
如果当RSI越过任何一个水平时,订单打开,当它越过任何其他水平时,它关闭并立即打开另一个,那么就不存在矛盾。
或者有吗?
想想看吧。我们假设uroven1=80;rsi=30;条件rsi>80或rsi<80意味着(30>80[假]或30<80[真])在自然界不存在。虽然这个条件会是真的,因为它使用了OR运算符,但它本质上是没有意义的。
表达式的第二部分 Suppose uroven2 = 20; rsi = 30 (30 > 20 [true] or 30< 20[false] ) 是相同的。
表达式的第二部分 Suppose uroven2 = 20; rsi = 30 (30 > 20 [true] or 30< 20[false] ) 是相同的。
当我写到 "或 "时,我的意思是在任何级别的交叉点,订单都会被打开。当第二个条件30<20[false]发生时,在那一刻,之前的订单将被关闭,它将成为真的。
如果我理解正确的话。