[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 657

 
IgorM:

谢谢是的,这就是我正在寻找的,有谁测量过mt4和mt5的同类型代码的速度?

我想补充一点。最感兴趣的是同类型EA的测试/优化速度的差异。
 
ToLik_SRGV:

尤里,为了将来,如果代码至少重复两次 ,它应该被分配到一个方法中,你就不需要成堆的数组来扰乱代码了......


安纳托利,非常感谢你。 很遗憾,你不能像Skype中的蝴蝶结一样在这篇文章中插入一个图标。一切都是简单而优雅的。我从与其他技术分析工具的交流中了解到,它应该是这样的,但我在使用mql方面还没有实践。谢谢你关于将其标记为方法的提示--我将试着想办法解决这个问题。

最后,你能告诉我如何避免该EA在同一个柱子上多次下单吗?好人已经给出了一些提示,但他们并没有坚持。

 
granit77:
我想补充一点。最感兴趣的是同类型EA的测试/优化速度的差异。


你看MT4和MT5的优化应该是非常不同的,如果只是因为MT5已经实现了不完整的条件检查--对于MT4来说,你需要做大量的嵌入式if语句--这降低了代码的可读性,导致逻辑错误。
 
IgorM:


非常感谢,这正是我在寻找的,谁测量过MT4和MT5的同类型代码的速度?


2010.06.29 16:29:56 Test_Speed (EURUSD,M1: time1641 msec MT-4

2010.06.29 16:28:56 Test_Speed (EURUSD,M1) time359 msec MT-5

这段代码不需要翻译,因为你看到它适用于5和4。

 int start_=GetTickCount();
 int d=0;
 for(int i=0;i<100000000;i++)d+=11;
 Print("время ",GetTickCount()-start_," мсек");

我不相信这只是一个简单的补充,想象一下开发者为加快复杂的功能所做的工作。

 
Urain:

而这是在初级的加法上,想象一下,为了加快复杂的功能,开发人员在那里搞砸了什么。


希望如此,在MT4中,EA代码的处理与Java非常相似--内置函数非常快,但用户函数就不那么快了,即使是最基本的动作。

当谈到优化时,我对条件的全面检查感到非常困惑--我已经有20年没有听说过这样的事情了--学校的基础知识:)

 

我找不到一个多货币指标,其中有GoldUSD。请用链接戳我。

升级指数,这是

 
IgorM:


把问题说得更具体些。

如果你对下单时的当前价格感兴趣,你可以在代码中添加一个调用,负责将当前价格存储在一个全局数组中,并改变数组的计数器索引,然后你可以从代码中的任何一点查看该价格


也就是说,我需要从订单开盘价开始的所有价格被写入数组,这样我就可以提取数组的 最大和最小元素

你能告诉我如何在代码中实现它吗?

 
zelek:


也就是说,我需要从订单的开盘价开始的所有价格被写入一个数组,这样我就可以提取数组中的最大和最小元素。

你能告诉我如何在代码中实现它吗?


我只是不明白这个问题。 你已经开了一个订单,想把当前的价格 写进数组 为什么? 你有条形图,会给你最低和最高价格。 如果你按tick写价格,我甚至不能想象数组会包含多少数据--tick从20到80单位/分钟。

还是你需要的是订单开启时的价格?- 可以在终端查看已关闭和未关闭的订单。

 
IgorM:


我只是不明白这个问题。 你已经开了一个订单,想在数据阵列中保存当前价格。 为什么?

还是你需要订单开出的价格?- 可以在终端查看已关闭和未关闭的订单。


我想实现类似于一个点的虚拟跟踪止损的东西。

你需要知道每个新刻度的最大值

 
zelek:


我想从一个点上实现类似于虚拟追踪止损的东西

为此,我需要知道每个新刻度的最大值。


你不需要为此目的记录和存储整个数组,只需要存储两个数字就足够了--来自订单开端的最大和最小值。但要做到这一点--事实上--我们只需要监测订单开启时的第一个分钟柱的价格。此后,最高值和最低值由分钟条形图决定,无需不断地存储价格。
原因: