sergey1294: Отвечу вам одно, пока не появиться режим визуализации решить вашу задачу не так просто. Есть одно решение, это записывать данные эквити в файл при тесте. потом данные из этого файла записать в буфер индикатора тем самым построить график эквити.
DV2010:
...雷纳特,按照我的理解,测试完成后, 指标在图表上 的显示是基于测试期间的计算和指标阵列的填充。但是,结果没有从测试器转移到自定义指标图上,这是什么意思?
当然,测试仪-代理的指标计算数据不会转移到终端图表。我们不会把几百兆的计算数据传给终端,它们会立即(在下一个tick)被指标重新计算(对OnCalculate函数的调用没有被取消)。
该指标应自行计算。
sergey1294:
Отвечу вам одно, пока не появиться режим визуализации решить вашу задачу не так просто. Есть одно решение, это записывать данные эквити в файл при тесте. потом данные из этого файла записать в буфер индикатора тем самым построить график эквити.
但我究竟在哪里把数据写入缓冲区?
我以为它只能写入OnCalculated,并试图这样实现它。
Rosh,在线的变体已经发布了,但作为一个主要从事历史工作的人,我需要一个能在历史数据上发挥作用的变体。而且我仍然觉得很难理解这里的主要困难是什么。
但我究竟在哪里把数据写入缓冲区?
我以为它只能写入OnCalculated,并试图这样实现它。
我们使用expert将数值写入文件,然后在指标中写下从文件中读取和向缓冲区中写入数据的代码。我还不能给你看代码,我需要一些时间来写。
当然,计算出的指标值不能从测试器-代理处转移到终端图表上。我们不会把几百兆的计算数据传给终端,它们会立即(在下一个tick)被指标重新计算(对OnCalculate函数的 调用没有被取消)。
雷纳特,该指标应读作自己
这就是为什么 我 在OnCalculated方法中 用一些值来初始化指标数组值 。但是,为什么能以这种方式初始化(建立)指标线,而 股票价值 ,却不能?
雷纳特,指标应改为自己
这就是为什么 我 在OnCalculated方法中 用一些值来初始化指标数组的值 。但是,为什么 能够以这种方式初始化(建立)指标线 ,而股票价值 却不能?
按照我的理解,它应该在专家顾问的OnInit中根据定义通过 AccountInfoDouble(ACCOUNT_EQUITY) 写入文件,并从文件中读取 - 在 OnCalculated 指标中 。
但是为什么 通过 AccountInfoDouble(ACCOUNT_EQUITY)的变量Equty的数据 可以 直接在 OnCalculated 中 使用?
这样一来,代码就会变得过于繁琐,.....。
我不明白 ......在 Print AccountInfoDouble(ACCOUNT_EQUITY) 中 的OnCalculated 输出一些值 。
究竟是什么阻止了它立即被分配到指标值的数组中?
我一直认为,在测试器中对历史值的显示与对当前值的显示不同,只是因为历史已经被记录下来,而当前的数据才刚刚到达。
sergey1294:
потому что цены имеют историю а эквити нет. По этому для эквити вам нужно строить собственную историю записав ее в файл.
但是,在OnCalculated指标中, Equty动态是如何通过AccountInfoDouble(ACCOUNT_EQUITY) 显示的(不仅仅是在OnTick Expert Advisor)?
还是OnCalculated Indicator在测试模式 和显示模式下的工作方式不同?
在EA的全局层面上声明两个数组 Equity[]和Time[]。
在测试EA时,将股权和时间的值写入相应的数组中。
使用一个脚本在测试结束 时读取文件,并在所需的图表上绘制股权。
这是对你的目的最好的方法,我不明白你为什么需要一个指标。
据我所知,它应该在专家顾问的OnInit中根据定义通过 AccountInfoDouble(ACCOUNT_EQUITY) 写入文件,并从文件中读取 - 在 OnCalculated 指标中 。
但是为什么 通过 AccountInfoDouble(ACCOUNT_EQUITY)的变量Equty的数据 可以 直接在 OnCalculated 中 使用?
这样一来,代码就会变得过于繁琐,.....。
我不明白 ......在 Print AccountInfoDouble(ACCOUNT_EQUITY) 中 的OnCalculated 输出一些值 。
究竟是什么阻止了它立即被分配到指标值的数组中?
我一直认为,在测试器中显示历史上的数值与显示当前的数值不同,只是因为历史已经被记录下来,而当前的数据才刚刚到达。