MT4测试器不提供其他时间段的信息 - 页 9

 
avatara >>:

да не в том вопрос.

Получается, что на тесторе нельзя тестировать советника если его логика основана на показаниях мультитайфреймных индикаторов.

Нужно выносить расчётную часть в советник.

Или я не прав?

错了--你可以

 
Vinin >>:


Конечно не прав.
Но правда не понятно зачем использовать мультитаймфреймные индикаторы?
Советник может обращаться к нужному таймфрейму или брать значения индикатора с нужного таймфрейма.
Использование мультитаймфреймных индикаторов нужно только для ручной торговли.
Получается дополнительное усложнение кода и возможность вноса дополнительных ошибок.

它有什么问题?你看了日志吗?

一些作家相信Tester和iCustom...

如果你试图理解它--你可能会被禁止。

如果可能的话,请说明如何在iCustom调用的指标中接收另一个时间段的正确数据(而不是传递给iCustom的时期),以及它在测试器中如何工作。

对我来说,这不是一个明显的限制。我没有在任何地方找到它。

-----------------

使用所有的逻辑和指标代码而不是iCustom,肯定会使EA复杂化,但不是像你所说的那样反过来。;)

 
avatara писал(а)>>

怎么了?你看了日志吗?

一些写的人相信Tester和iCustom...

如果你试图理解它,你可能会被禁止。

如果可能的话,请说明iCustom指标如何接收国外TF的正确数据(不是传递给iCustom的时期),以及它如何在测试器中工作。

对我来说,这不是一个明显的限制。我没有在任何地方找到它。


如果你想在测试器的视觉模式下获得正确的数据(更确切地说,在视觉测试图上覆盖的指标中),你应该在指标中提供时间同步。
所以,在这种模式下的任何iOpen()、iClose等类型的引用都是不正确的。真正的数据正在被访问。调用零条意味着寻址实际的最后一个条。

而大多数基于可视化模式下的收盘价的多时态指标都会展望未来(甚至使用时间同步)。
这就是为什么我说这种工作是不必要的,而且很可能是有害的,因为它给出了不正确的数据。

但这并不适用于来自EA的iCustom调用。

 
Vinin >>:


Если ты хочешь получить корректные данные в визуальном режиме работы тестера (точнее в индикаторе, наброшенном на график визуального тестирования), то нужно в индикаторе предусмотреть синхронизацию времени.
Так любые обращение типа iOpen(), iClose и прочее в таком режиме работы некорректно. Идет обращение к реальным данным. И обращение к нулевому бару означает обращение к действительному последнему бару.

И большинство мультитаймфреймных индикаторов построенных на ценах закрытия в режиме визуализации заглядывают в будущее (даже используя синхронизацию по времени)
Потому и говорю, что подобная работа не нужна, а скорее всего и вредна, так как дает не корректные данные.

我重复一遍。

在没有可视化的情况下进行检查

你的顾问正在呼叫我的感应器。

看一下日志,看看它从分钟TF得到的价格。

-------

我对这个例子进行了一些调整。在tf=1的情况下,它不能正常工作,在其他情况下,它可以正常工作。

附加的文件:
curval.mq4  4 kb
 
avatara писал(а)>>

我重复一遍。

在没有可视化的情况下进行检查

你的顾问在叫我的火鸡。

看一下日志,看看它从分钟TF得到的价格,这并不重要。


你的指标将返回0,因为它是在逻辑错误的情况下做出的。
经过一个小的调整,它工作得很好
 
Vinin >>:

Зачем так сложно
В режиме визуализации работать будет не корректно

对不起,我在打盹,这里是+6gmt。
你对 "复杂 "的理解是错误的,所展示的代码只是EA代码的一部分,它被显示在指标中以检查
来检查EA在测试模式下是否正常工作。
现在,关于 "在可视化模式下将无法正确工作",对于正确编写的程序,当它们正确工作时,程序将做(而且必须做)程序员要求它做的事情,而不是其他。
程序不会正常工作,它将做(而且必须做)程序员设定的事情,否则,软件就很粗糙,没有调整,这是我的看法,并不是我一个人的看法。
关于可视化和非可视化的问题--这是来自光明的未来的童话领域:)
我给出了检查处理后数据的代码,可以清楚地看到,相邻的TFs
不改变他们的数据,你可以把这个指标放在Onlin EA上,并检查在Onlin
所提交的代码工作正常,所有5个指标都显示出大致相同的逻辑性。
相关的数据,代码的详细描述,它应该是作为描述BUT ...如何绕过面糊的缺点?
如果有任何建设性的论点、建议,我可以看到你的代码,它将被实际证明
并显示--这里是当前TF的数据,这里是TESTOR模式下更高和更低TF的数据。
请把无关紧要的争论转移到其他主题,否则我们会在这些不必要的争论中错过一个有用的想法。

如果有什么不对的地方,我很抱歉。没有冒犯的意思。我们仍然需要对软件进行调试,我们仍然有建议。

 
vladv002 писал(а)>>

对不起,我正在打盹,这里是+6gmt。
你对 "复杂 "的理解是错误的,所展示的代码只是EA代码的一部分,它被显示在指标中以检查
来检查EA在测试模式下是否正常工作。
现在关于 "在可视化模式下将无法正确工作",对于正确编写的程序,当它们正确工作时,程序将做(而且必须做)程序员要求它做的事情,而不是其他。
程序不会正常工作,它将做(而且必须做)程序员设定的事情,否则,软件就很粗糙,没有调整,这是我的看法,不是我一个人的看法。
关于可视化和非可视化的问题--这是来自光明的未来的童话领域:)
我给出了检查处理后数据的代码,可以清楚地看到,相邻的TFs
不改变他们的数据,你可以把这个指标放在Onlin EA上,并检查在Onlin
所提交的代码工作正常,所有5个指标都显示出大致相同的逻辑性。
相关的数据,代码的详细描述,它应该是作为描述BUT ...如何绕过面糊的缺点?
如果有任何建设性的论点、建议,我可以看到你的代码,它将被实际证明
并显示--这里是当前TF的数据,这里是TESTOR模式下更高和更低TF的数据。
请把无关紧要的争论转移到其他主题,否则我们会在这些不必要的争论中错过一个有用的想法。

如果有什么不对的地方,我很抱歉。没有冒犯的意思。我必须调试软件,我仍然有建议。


该指标被设计为实时工作。
再一次,它的值不是来自于虚拟化图,而是来自于最近的真实数据。
我们也可以让它在虚拟化图表上工作,但我们必须明白,它不会正确地工作,因为数据仍将取自真实的历史,而不是取自模拟的。将会有对未来的一瞥,也许不会有足够的历史来计算。而且可能还有很多。
将会有一整套其他的问题。
 
这里是一个简单的指标,它将6个时间段的收盘价写入其6个缓冲区。
//+------------------------------------------------------------------+
//|                                               MultiTimeframe.mq4 |
//|                      Copyright © 2007, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

#property indicator_chart_window
#property indicator_buffers 6
#property indicator_color1 Red
#property indicator_color2 Navy
#property indicator_color3 DarkSlateGray
#property indicator_color4 Orange
#property indicator_color5 Magenta
#property indicator_color6 CornflowerBlue
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
double ExtMapBuffer5[];
double ExtMapBuffer6[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1,ExtMapBuffer2);
   SetIndexStyle(2,DRAW_LINE);
   SetIndexBuffer(2,ExtMapBuffer3);
   SetIndexStyle(3,DRAW_LINE);
   SetIndexBuffer(3,ExtMapBuffer4);
   SetIndexStyle(4,DRAW_LINE);
   SetIndexBuffer(4,ExtMapBuffer5);
   SetIndexStyle(5,DRAW_LINE);
   SetIndexBuffer(5,ExtMapBuffer6);
//----
   return(0);
  }

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
//----
   ExtMapBuffer1[0]=iClose(Symbol(),PERIOD_M1,0);
   ExtMapBuffer2[0]=iClose(Symbol(),PERIOD_M5,0);
   ExtMapBuffer3[0]=iClose(Symbol(),PERIOD_M15,0);
   ExtMapBuffer4[0]=iClose(Symbol(),PERIOD_M30,0);
   ExtMapBuffer5[0]=iClose(Symbol(),PERIOD_H1,0);
   ExtMapBuffer6[0]=iClose(Symbol(),PERIOD_H4,0);   
//----
   return(0);
  }
//+------------------------------------------------------------------+
而这里是一个专家顾问,它从这个指标中接收数值,只在视觉测试 模式下在图表上显示这些数值。

//+------------------------------------------------------------------+
//|                                                     SimpleEA.mq4 |
//|                      Copyright © 2007, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   if(IsTesting())
     {
      if(IsVisualMode())
        {
         double M1_Value=iCustom(Symbol(),0,"MultiTimeframe",0,0);
         double M5_Value=iCustom(Symbol(),0,"MultiTimeframe",1,0);
         double M15_Value=iCustom(Symbol(),0,"MultiTimeframe",2,0);
         double M30_Value=iCustom(Symbol(),0,"MultiTimeframe",3,0);
         double H1_Value=iCustom(Symbol(),0,"MultiTimeframe",4,0);
         double H4_Value=iCustom(Symbol(),0,"MultiTimeframe",5,0);
         string com="Last Bid="+DoubleToStr(Close[0],Digits)+"\n";
         com=com+"iClose(M1,0)="+DoubleToStr(M1_Value,Digits)+"\n";
         com=com+"iClose(M5,0)="+DoubleToStr(M5_Value,Digits)+"\n";
         com=com+"iClose(M15,0)="+DoubleToStr(M15_Value,Digits)+"\n";
         com=com+"iClose(M30,0)="+DoubleToStr(M30_Value,Digits)+"\n";
         com=com+"iClose(H1,0)="+DoubleToStr(H1_Value,Digits)+"\n";
         com=com+"iClose(H4,0)="+DoubleToStr(H4_Value,Digits)+"\n";
         Comment(com);
        }
     }
//----
   return(0);
  }
//+------------------------------------------------------------------+

如果之后你继续争辩说测试器中的指标计算不正确,或对非原生时间段的价格数据进行建模,你将不得不提供证据,否则你将被禁止。被禁止。
 
Vinin >>:


Индикатор предназначен для работы в реал-тайм.
Я еще раз повторюсь что он берет свои значения с не с графика виртуализации, а с вполне реальных последних данных
Можно сделать что бы он работал и на графике виртуализации, но надо понимать что будет не совсем корректная работа, так как данные все равно будут браться с реальной истории, а не с моделированной. Будет заглядывание в будущее, возможно не будет хватать истории для расчетов. Да и много еще что может быть.
Появятся совсем другие вопросы.

我一定是说错了什么,对不起,我再试一下,更详细一点。
每个TF都有自己的酒吧,这些酒吧有自己的时间--为什么我们要提前看一下?
我知道,有专家顾问,有展望。
这是个小孩子的游戏。
你在说什么?"该指标被设计为实时工作。",我们说的是测试仪!"。
具体问题--测试器不提供相邻TF的数据,只提供当前TF的数据--如何正确
,规避MT4系统测试器的这个缺点

MQL4函数都不能从测试器中相邻的TF中返回数据,无论是上面还是下面。
如果数据在那里,你可以修复它,检查它,显示--评论、警告、打印--或传递给它处理。
关于如何在测试器中消除这一缺点的任何建议,我将非常感谢你,我想我不是唯一一个。


 
Rosh >>:
Вот простой индикатор, который пишет в 6 своих буферов значения Close с 6-ти таймфреймов.
А вот эксперт, который получает значения из этого индикатора и выводит полученные значения на график только в режиме визуального тестирования.


Если и после этого вы продолжите утверждать, что в тестере неверно считаются индикаторы или моделируются ценовые данные с неродных таймфреймов, то вы обязаны будет предоставить доказательства, иначе бан. Надоело.

感谢开发者提供的有说服力的例子。

手边有极其有用的东西。在测试之前,要检查工作的正确性。

但我的局部问题仍然存在--如你所见,M1=0.0。:(

虽然我删除了历史文件和东西...

将会了解更多。

再次感谢您的所有帮助。