[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 452 1...445446447448449450451452453454455456457458459...652 新评论 [删除] 2011.12.24 17:13 #4511 Vinin: 但是,指标的标题也需要编辑。所有的缓冲区都应该能够存储值 而且,如果能计算出历史就更好了,当然这也是一个品味问题。而且要更正确地与对象一起工作。在每次打勾时,都会创建相同名称的对象(或产生一个错误)。 我修复了标题。 有一个缓冲区。 UP_1Buffer[0] = uitog1v; UP_2Buffer[0] = uitog2v; UP_3Buffer[0] = uitog3v; DOWN_1Buffer[0] = ditog1v; DOWN_2Buffer[0] = ditog2v; DOWN_3Buffer[0] = ditog3v; 明白了。 非常感谢您的帮助。 至于你的建议,我也想做,但不幸的是,我自己做不到。 olegarh 2011.12.24 17:20 #4512 artmedia70:试着把你在这里写的东西变成文字。就个人而言,我第一眼就发现了你的难题:如果一不等于一,那么就关闭订单......之后我没有再看其他的东西......。不要尝试,甚至不要想,在一个周期内写出一个好的EA是可能的......。这里有一个想法。 市场进入 点: 在任何时候,如果没有挂牌,更没有开仓。 机器人开了2个挂牌头寸,与当前价格的距离相等(这是一个自定义变量PriceDistance)。 挂单都有相同的TP、SL、TS(如当前价格的镜像。 而且都是在同一时间(从 "TimeStop "变量的角度来看)。 所有.... 在实践中:以前的头寸被关闭(要么都有到期时间,要么在SL或TP上--这并不重要),终端被释放,之后立即以相同的参数打开相同的头寸,但是,从当前价格开始,在一个新的范围内。再往下看,根据周期。 这个想法是原始的,100%的掠夺者,但我计划朝这个方向发展,并将其与其他信号连接起来,例如,在某些时间段的特定值的Volumes....。 这就是为什么我需要这个软件的原因....。 所以我给自己定下了写作的任务...... [Deleted] 2011.12.24 17:25 #4513 晚上好!在这里写了一个最简单的结构,来计算每一个tick 的可用利润。好吧,它不起作用!我看了10分钟,用眼睛吃掉了这些代码。我没有看到任何错误。下面是代码。//---- double Profit; for ( i=OrdersTotal();i>0;i--){ OrderSelect(i-1,SELECT_BY_POS ); if( OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol()&&OrderType( ) ==OP_SELL || OrderMagicNumber( )==1000 &&OrderSymbol()==Symbol()&&OrderType( ) ==OP_BUY){ Profit=Profit+OrderProfit( ) ;Alert ("i ", i ," Profit ", Profit);}} //---- 这个神奇的数字是对的,我检查了四次。支架,我能想到的一切都要看,一切似乎都是正确的。也许我写的/比较的顺序不对?我看了看参考资料。请帮助我!没有你,我做不到!你能告诉我可能出了什么问题吗? [Deleted] 2011.12.24 18:47 #4514 而且你知道,分别在这三个条件下都能成功!!。 double Profit; for ( i=OrdersTotal();i>0;i--){ OrderSelect(i-1,SELECT_BY_POS ); if( OrderType( ) ==OP_SELL ){Alert ("i ", i ," OP_SELL ", Profit);} if( OrderSymbol()==Symbol()){Alert ("i ", i ," Symbol() ", Profit ,Symbol(), OrderSymbol());} if( OrderMagicNumber( )==2000 ) {Alert ("i ", i ," OrderMagicNumber( ) ", Profit , OrderMagicNumber( ));} if( OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol()&&OrderType( ) ==OP_SELL || OrderMagicNumber( )==1000 &&OrderSymbol()==Symbol()&&OrderType( ) ==OP_BUY){ Profit=Profit+OrderProfit( ) ;Alert ("i ", i ," Profit ", Profit);}} 我感到震惊和困惑!!。 Victor Nikolaev 2011.12.24 20:59 #4515 dkfl.zrjdktdbx: 晚上好! 我写了一个简单的结构,用于计算每个tick的可用利润。好吧,它不起作用! 我用眼睛看着它,看了10分钟。我没有看到这个错误。Magik的代码是正确的,我检查了四次。支架,我所能想到的一切,一切似乎都是正确的。也许我写的/比较的顺序不对?我看了看参考资料。请帮助我!没有你,我做不到!你能告诉我可能出了什么问题吗? 少了几个括号。 double Profit=0; for ( i=OrdersTotal();i>0;i--){ OrderSelect(i-1,SELECT_BY_POS ); if( ( OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol()&&OrderType( ) ==OP_SELL ) || ( OrderMagicNumber( )==1000 &&OrderSymbol()==Symbol()&&OrderType( ) ==OP_BUY ) ){ Profit=Profit+OrderProfit( ) ;Alert ("i ", i ," Profit ", Profit);}} 情况似乎是这样的。尽管最好保持简单。 double Profit=0; for ( i=OrdersTotal();i>0;i--){ OrderSelect(i-1,SELECT_BY_POS ); if(OrderSymbol()==Symbol()) { if( OrderMagicNumber( )==2000 && OrderType( ) ==OP_SELL ) Profit+=OrderProfit( ); if( OrderMagicNumber( )==1000 && OrderType( ) ==OP_BUY ) Profit+=OrderProfit( ); } Alert ("i ", i ," Profit ", Profit); } Oleg 2011.12.25 03:01 #4516 我有这样一个问题 - 在MT4中: (2/3*9 == 2*9/3) ? Comment( "\n", "\n", "2/3*9 = ", 2/3*9, "\n", "2*9/3 = ", 2*9/3, "\n", "\n" ); 谢谢你! Роман 2011.12.25 03:08 #4517 chief2000: 我有这样一个问题 - 在MT4中: (2/3*9 == 2*9/3) ? 谢谢! 这有什么意义? 用计算器检查--你会发现的。 见文档--表达式是如何计算 的。 你至少应该读一读课本... "不难看出,程序中计算表达式的顺序与数学中类似计算的顺序相似,但在计算中间表达式的数值类型上有所不同,这大大影响了计算的最终结果。特别是(与数学中接受的规则不同),表达式中操作数的顺序具有不小的重要性。为了说明这一点,让我们举一个小例子。 问题6:计算整数A、B和C的表达式A/B*C和A*C/B的值。 直观地说,预计两种情况下的计算结果都是一样的。然而,这只对实数而言是真的。当计算由整数操作数组成的表达式的值时,中间结果是非常重要的。在这种情况下,操作数的顺序是至关重要的。 int A = 3; // Значение целого типа int B = 5; // Значение целого типа int C = 6; // Значение целого типа int Res_1 = A/B*C; // Результат 0 (ноль) int Res_2 = A*C/B; // Результат 3 (три) 让我们追踪计算表达式A/B*C的过程。 1.首先(从左到右)将计算表达式A/B的值。根据上述规则,表达式(3/5)的值将是整数值0(零)。 2.计算表达式0*C(零乘以C)。结果是整数值0(零)。 3.总体结果(Res_1变量的值)是一个0(零)的整数值。 现在我们来看看在计算表达式A*C/B时,事件是如何发展的。 1.计算A*C。这个表达式的值是整数18(3*6=18)。 2.计算表达式18/B。答案很明显:(18/5)舍弃小数部分后,结果将是一个整数3(3)。 总的结果(Res_2的值)是整数3(3)。 这个例子显示了一个计算整数类型变量值的小程序片段。如果我们用常数取代这些变量,但使用相同的值,最终结果将是相同的。当计算表达式时,其中使用了整数,你应该对程序行的内容非常小心。否则,程序中可能会出现错误,这在以后是很难发现的(特别是在大型程序中)。这个问题在只涉及实数的计算中不会发生。然而,如果你在一个复杂的表达式中使用不同类型的操作数,最终结果可能完全取决于随机生成的包含整数除法的片段。 运算符的概念和一般属性在运算符一节中讨论,而运算符一章则揭示了每个运算符的特征属性"。 asasusa 2011.12.25 07:43 #4518 FileFlush 与保存文件相同吗? Oleg 2011.12.25 09:43 #4519 Roman.: 有什么问题呢? 用计算器检查--你会发现的。 我查过了--卡西欧和甚至微软的计算器都说2/3*9=6。 Роман 2011.12.25 09:54 #4520 chief2000: 检查了--卡西欧和甚至微软的计算器都说2/3*9=6。 好吧。有什么问题呢? 1...445446447448449450451452453454455456457458459...652 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
但是,指标的标题也需要编辑。所有的缓冲区都应该能够存储值
而且,如果能计算出历史就更好了,当然这也是一个品味问题。而且要更正确地与对象一起工作。在每次打勾时,都会创建相同名称的对象(或产生一个错误)。
我修复了标题。
有一个缓冲区。
明白了。
非常感谢您的帮助。
至于你的建议,我也想做,但不幸的是,我自己做不到。
试着把你在这里写的东西变成文字。
就个人而言,我第一眼就发现了你的难题:如果一不等于一,那么就关闭订单......
之后我没有再看其他的东西......。
不要尝试,甚至不要想,在一个周期内写出一个好的EA是可能的......。
这里有一个想法。
市场进入 点: 在任何时候,如果没有挂牌,更没有开仓。
机器人开了2个挂牌头寸,与当前价格的距离相等(这是一个自定义变量PriceDistance)。
挂单都有相同的TP、SL、TS(如当前价格的镜像。
而且都是在同一时间(从 "TimeStop "变量的角度来看)。
所有....
在实践中:以前的头寸被关闭(要么都有到期时间,要么在SL或TP上--这并不重要),终端被释放,之后立即以相同的参数打开相同的头寸,但是,从当前价格开始,在一个新的范围内。再往下看,根据周期。
这个想法是原始的,100%的掠夺者,但我计划朝这个方向发展,并将其与其他信号连接起来,例如,在某些时间段的特定值的Volumes....。
这就是为什么我需要这个软件的原因....。
所以我给自己定下了写作的任务......
晚上好! 我写了一个简单的结构,用于计算每个tick的可用利润。好吧,它不起作用! 我用眼睛看着它,看了10分钟。我没有看到这个错误。Magik的代码是正确的,我检查了四次。支架,我所能想到的一切,一切似乎都是正确的。也许我写的/比较的顺序不对?我看了看参考资料。请帮助我!没有你,我做不到!你能告诉我可能出了什么问题吗?
少了几个括号。
情况似乎是这样的。尽管最好保持简单。
我有这样一个问题 - 在MT4中: (2/3*9 == 2*9/3) ?
谢谢你!
我有这样一个问题 - 在MT4中: (2/3*9 == 2*9/3) ?
谢谢!
这有什么意义?
用计算器检查--你会发现的。
见文档--表达式是如何计算 的。
你至少应该读一读课本...
"不难看出,程序中计算表达式的顺序与数学中类似计算的顺序相似,但在计算中间表达式的数值类型上有所不同,这大大影响了计算的最终结果。特别是(与数学中接受的规则不同),表达式中操作数的顺序具有不小的重要性。为了说明这一点,让我们举一个小例子。 问题6:计算整数A、B和C的表达式A/B*C和A*C/B的值。
直观地说,预计两种情况下的计算结果都是一样的。然而,这只对实数而言是真的。当计算由整数操作数组成的表达式的值时,中间结果是非常重要的。在这种情况下,操作数的顺序是至关重要的。
让我们追踪计算表达式A/B*C的过程。
1.首先(从左到右)将计算表达式A/B的值。根据上述规则,表达式(3/5)的值将是整数值0(零)。
2.计算表达式0*C(零乘以C)。结果是整数值0(零)。
3.总体结果(Res_1变量的值)是一个0(零)的整数值。
现在我们来看看在计算表达式A*C/B时,事件是如何发展的。
1.计算A*C。这个表达式的值是整数18(3*6=18)。
2.计算表达式18/B。答案很明显:(18/5)舍弃小数部分后,结果将是一个整数3(3)。
总的结果(Res_2的值)是整数3(3)。
这个例子显示了一个计算整数类型变量值的小程序片段。如果我们用常数取代这些变量,但使用相同的值,最终结果将是相同的。当计算表达式时,其中使用了整数,你应该对程序行的内容非常小心。否则,程序中可能会出现错误,这在以后是很难发现的(特别是在大型程序中)。这个问题在只涉及实数的计算中不会发生。然而,如果你在一个复杂的表达式中使用不同类型的操作数,最终结果可能完全取决于随机生成的包含整数除法的片段。
运算符的概念和一般属性在运算符一节中讨论,而运算符一章则揭示了每个运算符的特征属性"。
有什么问题呢?
用计算器检查--你会发现的。
我查过了--卡西欧和甚至微软的计算器都说2/3*9=6。
检查了--卡西欧和甚至微软的计算器都说2/3*9=6。
好吧。有什么问题呢?