double AD(int index)
{
double MA[1];
ResetLastError();
if(CopyBuffer(AD_H,0,index,1,MA)<0)
{
PrintFormat("Failed to copy data from the iMA indicator, error code %d",GetLastError());
return(0.0);
}
returnNormalizeDouble(MA[0],Digits());
}
然后我像这样计算输入。
double AD=(AD(i+1)-AD(i+PNT+1))*Cont;
这都是在一个脚本中,但它在一个有AI的指标中工作,其中手柄的写法是这样的
AD_H =iAD("BR-12.17", 0, VOLUME_REAL);
缓冲区访问是这样的...
double AD(int index)
{
double MA[1];
ResetLastError();
if(CopyBuffer(AD_H,0,index,1,MA)<0)
{
PrintFormat("Failed to copy data from the iMA indicator, error code %d",GetLastError());
return(0.0);
}
returnNormalizeDouble(MA[0],Digits());
}
这就是我是什么样的程序员。在你掌握它之前,没有人能够正确地解释它......。总之,人们!!!!!听好了。重要的长篇文章来了......
这是一种进化......要么做要么死 :) 我就像那个程序员一样
总之人们!!!!!听好了。即将推出的重要长篇文章......
主人,燃烧!
你们都很清楚,我对未平仓合约(OI)有一种狂热的感觉,因为它是决定交易量性质的关键环节。与德尔塔结合起来......嗯嗯....只是一个美味的花絮....OI当然不是万能的,但提高模型的性能质量,即使是10%,也已经会有很高的权重!!!!。而且,哦,奇迹!!!!我终于忍不住了,但遗憾的是只有MT5有这样的功能,这也是我从MT4转到MT5的决定性因素。非常感谢Rafil,他节省了大量的时间,为迁移工作开了个好头。EA已经在写了,而且有一个星期的统计资料。当然这还不够,但我们可以在M5上开始测试,此外,在这个时间框架内,价差对Si的影响与整个工具的波动性相比是微不足道的。好吧......数据是有的,唯一的问题是我认为它是什么。训练模型,看看Delta+Volume+OI的组合有什么能力。我对Мкуль5有很好的工作知识,但我已经解决了这些问题,我想我已经达到了终点,面对这样一种奇妙而强大的语言,我的误解之墙。TC的一般概念是这样的。
在这篇文章中,我将尝试探讨该模型的理论值和数值之间的主要差异。
为了准备训练集,我使用下面的应用脚本。这个脚本将基本策略的信号卸载到csv文件中。然后我们建立模型并把它塞进另一个指标。我有两个人。BuySi和SellSi,它们都是含有AI的指标。对于投入来说,这些指标涉及的是Delta+AD+OI的指标集。从指标来看,特别是在一个包中...可能是什么问题...但是没有...他们是....我认为我是唯一一个对这种美丽而奇妙的编程语言了解这么多的人....。所以...我说到哪里了......哦,对了....问题是这样的。
脚本将一个数据卸载到一个文件中,但是在测试过程中在信号出现的时候,打印出来的是其他数值。即同一信号在文件中写的是一件事,但事实上在测试的时候输入的是完全不同的。矛盾就在这里。手柄初始化和缓冲区访问本身是从脚本中复制的。但是BuySi在测试的时候加载了足够的数据,因为我是用手检查的。而最有趣的是,OM加载的文件和AI的输入相同,但AD是标准的,终端的。在文件中的一些价值,事实上是其他的。我认为这与这个参数有关,当我们试图为一个与被测试工具不同的工具调用该指标时。我认为问题出在报价和指标值的同步上。我认为这个解决方案可能需要一些前期准备。这就是为什么我向人们寻求帮助。为什么脚本获取了相同的iAD值,但在测试时这些值却不一样,从而使信号开始变化?当图标出现在图表上时,即在初始化过程中计算出来的,图片看起来如下。
在我看来,非常好。一下子就感受到了OM的影响,但是当我在测试器中运行它时,画面就变了......而且不是更好。
此外,该测试仪用不同的信号进行两次运行。电感器应及时抽出缓冲器。计算AI时有延迟,错误4806不再出现,但跳舞的信号和数据的差异,与STANDARD iAD指标的代码绝对相同 我很疲惫,懒得写这篇长文,希望得到帮助。我认为问题出在iCustom上,当指标被调用到与当前不同的工具上时。就这样开始淋漓尽致的OI,但我后来强迫他从特定的文件中加载,都通过了,但对iAD怎么办呢?
这就是我在脚本中的调用方式,它创建了一个带有数据的文件。
然后我像这样访问缓冲区...
然后我像这样计算输入。
这都是在一个脚本中,但它在一个有AI的指标中工作,其中手柄的写法是这样的
缓冲区访问是这样的...
输入计算是这样的:....
这是可以理解的,因为一切都只是抄袭。但为什么最终的结果会有如此大的差异。但我认为,这是因为该指标是用另一个符号调用的。在通过另一个符号调用指标之前,不需要做任何准备,如同步或任何检查。你怎么看????
主人,开火吧!
OOO 很明显......一群严肃的人已经到来。我认为辩论会很激烈 :-)
而现在我编译了一个指标,它向打印机输出的数据正是它发送到文件中的数据。但在测试过程中,输入的同一信号有其他数值。怎么会呢?
我看到不会有电影????悲伤 :-(
AD是依赖于成交量的,所以零杠上的数值是不断变化的。 如果你事先将生成的AD值填入文件,然后读取该文件并将其用于测试,那么你很可能是瞻前顾后,在EA本身还不知道的时候,使用已经生成的零杠的数值。
AD取决于成交量,所以零杠上的数值是不断变化的。 如果你事先将生成的AD值填入文件,然后读取这个文件并用于测试,那么你很可能是瞻前顾后,在EA本身还不知道的时候,使用已经生成的零杠的数值。
不,没有使用AD写文件,一切都直接取自符号。我认为这可能是由于缺乏同步检查。另外,错误4806一直存在。我在主指标中引入了一个延迟,错误消失了,但问题仍然存在。:-(
下面是编译后从终端打印出来的结果。
2017.11.27 20:59:17.625 Buy_Si (Si-12.17,M5)2017.11.23 11:05:00 1.0 -116.0 64.0 2292.0 -206.0 413 4
和这里的代理人。
2017.11.27 20:59:38.318 2017.11.23 11:10:40 2017.11.23 11:05:00 1.0 -116.0 140.0 -1889.0 -993.0 1 4
注意这是同一个信号。时间11:05:-116是取自文件的OI,也是一样的。然后有三个来自不同符号的AD值。然后,我把酒吧做好了,参数就出来了。
为什么关于AD的数据是不同的。同步检查插入....?
没有代码,我什么都不明白。
我们需要做一个简单的专家顾问,用最少的函数集来简单地读取指标值并将其写入日志(或者更好的是--写入csv文件,以便以后更好地进行比较)。在这种情况下,结果将是不同的,应将代码与专家顾问的代码一起发送给服务台。
你也可以把代码附在终端上--https://www.mql5.com/ru/forum/1111/page2096,然后 由知识渊博的人检查并确认或解释什么是错的。