新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 931

 
Seric29:

这种失败会发生吗?

我不知道,我从来没有遇到过,最多就是在编译专家顾问时终端挂起--如果代码中存在错误,就会出现这种情况

这完全取决于你对这一切如何 "运作 "的理解。

1.MT4是32位的,操作系统不能分配超过3GB的内存给它,如果你在图表上设置一个最大的条数,你最终会吃掉所有的内存,对于交易专家来说,一个小的条数就足够了,我只放了1000条(你可以更少)。

2.你应该为ATS安装一个单独的终端,而不是把它塞到那里去!

3.不要对图表进行着色,EA并不关心,但它会消耗资源,着色(图形对象、自定义指标)可以在第二终端完成,如果你想做的话,可以直接去那里。

我认为,合理的极简主义原则和 "不触及工作!"的原则。

 
Igor Makanu:

我不知道,我从来没有遇到过这种情况,最多就是在编译专家顾问的过程中终端挂起,如果代码中有错误,就会发生

唯一会发生的事情是了解这一切是如何 "转身 "的。

1.MT4是32位的,操作系统不能分配超过3GB的内存给它,如果你在图表上设置一个最大的条数,你可以吞噬所有的内存,对于交易专家来说,少量的条数就足够了,我只放了1000条(你可以做的更少)。

2.你应该为ATS安装一个单独的终端,而不是把它塞到那里去!

3.不要对图表进行着色,EA并不关心,但它会消耗资源,着色可以在第二终端完成,如果你手痒,可以直接去那里做。

我认为,合理的极简主义原则和 "不触及工作!"的原则。

我从来没有遇到过这种情况,我没有交易机器人,但它经常挂起编译,我经常看到它的反应,当我在5分钟内收到点子折磨机器人时,终端挂死了,但在这种情况下,机器人本身应该正常工作,它不会像你写的那样挂起。另外,Deinit函数会返回错误,比如参数改变了就会触发,机器人删除了就会触发,终端关闭了就会再次触发。你唯一能做的就是编写一个程序,跟踪机器人在图表上是否处于活动状态。

 
Seric29:

你必须像你所写的那样,胜任地使用和编写代码。

如果你不知道如何使用这些指标,你可以试着猜测它们,但如果你不知道如何解决问题,你可以试着避开它们,如果你不知道如何解决问题,你可以试着避开它们,但如果你不知道问题,你可能会感到困惑。如果你与MetaTrader 5有良好的连接,这可能是困难的,因为连接中断,终端将开始同步历史,所有使用的指标将重新计算所有的历史,但五如果你有1000条,什么也不会发生,MT4是一个非常强大的终端,我测试了几次,从MT5它比MT5慢4-5倍,MT5性能大约是C + +。

也就是说,开发人员做了相当高质量的终端,而且往往不是关于MT,而是关于谁在使用它 )))

 
Seric29:

我也没有过,虽然我不做机器人交易,但它经常挂起编译,我经常看到它的反应,当在5分钟收到一个tick来折磨机器人,终端曾经冻结卡死,但在这种情况下,机器人本身应该正常工作,不会像你写的那样挂起。另外,Deinit函数会返回错误,比如参数改变了就会触发,机器人删除了就会触发,终端关闭了就会再次触发。你唯一能做的就是编写一个程序,跟踪机器人在图表上是否处于活动状态。

我将不得不检查该程序,以确保它的工作。你不能有怜悯之心...

 
Seric29:

你有这样的故障,是设置被打乱了,还是机器人本身因为终端故障而飞出了图表?

是的,我有各种各样的事情。只是,当面团被加载时,你必须迅速做出反应......我会用所有这些东西来加载配置文件,但不会在TS上的机器人之后连续加载这些套装。是的,看起来是这样的--它起作用了,当你加载配置文件时,它以所有的机器人设置加载。还没有测试。

当你重新编译一个安装在图表上的同名机器人时--它的输入参数值不会下降到代码中设置的参数(ME)--我知道这是个老问题--只是供参考。

虽然,当对外部参数进行编辑时--在那里,似乎在ME中编译代码后在终端设置的设置被翻转了。

 
Seric29:

这个人问了一个相当有趣的问题,就是关于失败和如何把一切重新设置起来,但事实上没有办法做到。 我想知道如何才能模拟出会导致这种后果的故障,以及会有什么后果,可能会失去什么设置。是否有这样的失败?

我不知道现在的情况--他们曾经...我不会伪造...:-)

我总是把所有东西都保存在我的资料中。

也有模板 - 但它是漫长而痛苦的...

 
Igor Makanu:

我不知道,我从来没有遇到过这种情况,最多就是在编译专家顾问的过程中终端挂起,如果代码中有错误,就会发生

唯一会发生的事情是了解这一切是如何 "转身 "的。

1.MT4是32位的,操作系统不能分配超过3GB的内存给它,如果你在图表上设置一个最大的条数,你最终会吃掉所有的内存,对于交易专家来说,一个小的条数就足够了,我只放了1000条(你可以更少)。

2.你应该为ATS安装一个单独的终端,而不是把它塞到那里去!

3.不要对图表进行着色,EA并不关心,但它会消耗资源,着色(图形对象、自定义指标)可以在第二终端完成,如果你想做的话,可以直接去那里。

我认为,合理的极简主义原则和 "不触及工作!"的原则。

是啊...这是个很长的路要走...。:-)

你必须把所有的东西都放在一个战斗终端屏幕上--快速跟踪信息并做出决定......否则你为什么需要这一切--这就是MT4和MT5!所有终端的征服者 :-)在这里,半途而废是不合适的,尤其是当一切都很真实,非常艰难的时候。

1,2,3 - 完全是胡说八道...:-)

 
Roman Shiredchenko:

1,2,3 - 完全是胡说八道...:-)

我知道用户要求的是什么,确保今天、昨天、一周的利润出现在屏幕上,甚至画出一条虚拟的获利线,如果我在图表上运行一个具有相同指标的模板,一切都会让我慢下来

我已经看到了你如何破坏终端做一些它不需要的交易。

;)

 

大家下午好!

伙计们,建议,只有不要参考参考书,那里没有明确的描述,也没有例子,有时我遇到以下条目。

void NameFunction(void); 或 double NameFunction(double); 没有变量

它是如何工作的?传递哪些参数,从哪里传递?

 

使用Symbol() 和_Symbol 具体方法是什么? 什么时候使用一个或另一个Symbol更好?

下面的代码能否正确地检查当前符号是否有订单?

      int ordersTotal=OrdersTotal();
      bool isOrdersExist=false;
      for (int i=0; i<ordersTotal; i++){
         if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true){
            if(OrderSymbol()==Symbol()){
               isOrdersExist=true;
               break;
            }
         }
      }