错误、漏洞、问题 - 页 940

 

下午好。

你能告诉我有什么可以做的吗...

而不是C:\Program files\MT 5 .........一切都在C:\Users\Iam\AppData\Roaming\MetaQuotes\Terminal\

卸载和安装MT 5数次--结果相同。这一切都发生在安装Windows 8之后。

问候,E.Kovalev

 
erkov:

下午好。

你能告诉我有什么可以做的吗...

而不是C:\Program files\MT 5 .........一切都在C:\Users\Iam\AppData\Roaming\MetaQuotes\Terminal\

卸载和安装MT 5数次--结果相同。这一切都发生在安装Windows 8之后。

真诚的,E. Kovalev

我的台式机7上也有,所有的专家顾问、诱导等都安装在上面。

显然,这是一种 "默认"。

我也想改变它?到文件夹....,很不方便。

 
对0x000000001535C1D8的访问违规写入


这是脚本给出的结果,该脚本循环调用同一个指标,只是参数发生了变化,在大约300次调用之后,出现了这样的信息

在循环的开始,我创建一个句柄

调用指标

在每个周期结束时,把IndicatorRelease(...)。

也许需要其他东西来移除指标

 
vgeny:

我的7号机也是如此,所有的EA、诱导等都放在那里。

这必须是 "默认 "的。

我还想知道如何改变它?要到文件夹....,这不方便。

在终端的内置帮助中查找 -MetaTrader 5 帮助开始菜单运行终端

访客模式

客户端启动的访客模式的区别在于其可编辑文件的位置与不可更改的文件分开。当终端安装在系统文件夹(OS文件夹,Program Files)中,并且用户对它的写入权限受到限制时,就会使用这种模式。

访客模式在以下情况下也会被启用。

  • 如果UAC(用户账户控制)被启用。
  • 如果远程连接到一台计算机(远程桌面协议,RDP)。

在上述情况下,所有可修改的终端文件,根据所使用的操作系统,都存储在以下目录中。

微软Windows XP。

  • C:\Documents and Settings\username\Application Data\MetaQuotes\Terminal\instance_id\

微软Windows Vista及以后版本。

  • C:\Users\username\Application Data\Roaming\MetaQuotes\Terminal\instance_id\

这里 "C "是安装操作系统的逻辑驱动器的字母,"username "是操作系统中的账户名,终端安装在该账户下,"instance_id "是根据安装终端的目录路径生成的唯一标识符。

为了快速访问这些文件夹,终端提供了一个特殊的命令 - "打开数据目录 打开数据目录",位于"文件 " 菜单中。

  • 在访客模式下,每个Windows账户将有不同的目录来存储改变的终端文件。
  • 要强制终端在主模式下启动,可以用/portable 开关从命令行启动它。
  • 客户端文件结构的详细描述和它们的用途在相应部分 给出。

如果你不想有安全系统的问题--不要把终端安装到/Program Files/ 文件夹中。

还请阅读文章《快速深入了解MQL5》。


 
vgeny: 打印前

k2 = NormalizeDouble(k2, 2);

在日志中是这样写的

0.07000000000000001

并且只有当系数为0.07时

Type k2 double k2;

会是什么呢?

显然,这正是这个数字在归一化之后的样子。请看描述NormalizeDouble()函数 的参考说明 下面一行将打印什么?

Print("DoubleToString(a,8)=",DoubleToString(a,8)); // выведем с заданной точностью

Документация по MQL5: Преобразование данных / NormalizeDouble
Документация по MQL5: Преобразование данных / NormalizeDouble
  • www.mql5.com
Преобразование данных / NormalizeDouble - Документация по MQL5
 
vgeny: 对0x000000001535C1D8的访问违规写入

这是脚本给出的结果,该脚本循环调用同一个指标,只是参数发生了变化,在大约300次调用之后,出现了这样的信息

我在循环开始时形成句柄,调用指标,在每个循环结束时放入 IndicatorRelease(...)。

也许需要其他东西来移除指标

循环中的连续指标调用? 这是一个非常困难的方法。在这里,找到开头,仔细阅读整个主题:事实上,在99%的情况下,IndicatorRelease的调用是程序员的逻辑错误
 
vgeny:

请告知为什么会发生在循环线上

for(k2 = 0.01; k2 < 0.1; k2 += 0.01)

我把k2的系数送去打印

打印(k2)。

打印前

k2 = NormalizeDouble(k2, 2);

日志中是这样写的

0.07000000000000001

并且只有当系数为0.07时

Type k2 double k2;

会是什么呢?

这个问题已经讨论过很多次了。

在这里 阅读。

 
Yedelkin:
在一个循环中不断调用指标? 这是很难做到的。在这里,找到开头,仔细阅读整个主题:事实上,在99%的情况下,IndicatorRelease的调用是程序员的一个逻辑错误

ok 900页))

建议用另一种方法来检查指标线,10000个不同的指标参数变体,我检查每个参数的结果,保存结果,采取下一个参数等。

例如,如果你考虑到MA,10000期,你将如何实现这一点?

 
alexvd:

这个问题已经讨论过很多次了。

在这里 阅读。

好的,谢谢你的耐心和理解)))))))
 

vgeny:

耶德尔金
在一个循环中不断地调用指标? 这是一个非常困难的方法。在这里,找到开头并仔细阅读整个主题:事实上,在99%的情况下,IndicatorRelease的调用是程序员的逻辑错误

ok 900页))

不,不是900页。关于低效使用IndicatorRelease()的话题,在这个链接附近不太可能得到超过10页的内容。这就是为什么我建议你 "找到主题的起点"。你不必为此重读 "错误、缺陷、问题 "这个总分支。

vgeny :我给你建议另一种检查指标线的方法,我将检查每个参数的结果,我将保存结果并采取下一个参数,如此循环。

也就是说,你需要一万个指标来进行分析(一个指标的一万个版本,参数不同)?我想这个问题的答案已经给出了--尝试用关键词IndicatorRelease搜索论坛的主题。

vgeny :例如,如果你考虑MA,10000期,你将如何实现?

当你不理解使用如此大量的时期/参数的意义时,就很难回答。但从理论上讲,我会放弃使用一万个标准指标(一万个标准指标的不同参数版本)的想法,而编写我自己的指标(一个),在每个刻度上重新计算一万个值和其他衍生参数。而且它最大限度地减少了指标缓冲区的数量--你需要的是计算的数据,而不是它们在图表上的反映。而且必须检查这样的混合动力是否在一个刻度内完成所有计算。或者在一分钟内,如果你的分析允许进行逐分钟的重新计算,而不是逐个时间段的计算。

这里有一个简单的例子--布林线。你可以使用三个独立的指标--用于中线、上线和下线。或者你可以将它们优雅地结合在一个指标程序中。