O testador MT4 não fornece informações de outros períodos de tempo - página 9

 
avatara >>:

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

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

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

Или я не прав?

errado - você pode

 
Vinin >>:


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

O que há de errado com isso? Você já olhou para os troncos?

Alguns dos escritores acreditam no Tester e no iCustom.

Se você tentar entender isso - você pode ser banido.

Se possível, mostre como receber dados corretos de outro período no indicador chamado pelo iCustom (não do período, que é passado para o iCustom) e como ele pode funcionar no testador.

Não é uma limitação óbvia, como para mim. Eu não o encontrei em nenhum lugar.

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

E usar toda a lógica e código indicador em vez do iCustom vai definitivamente complicar a EA, mas não o contrário, como você alega... ;)

 
avatara писал(а) >>

O que está errado? Você já olhou para os troncos?

Alguns dos que escrevem acreditam no Tester e no iCustom.

Se você tentar entendê-lo, poderá ser banido.

Se possível, favor mostrar como o indicador iCustom pode receber dados corretos da TF estrangeira (não do período passado ao iCustom) e como ele pode funcionar no testador.

Não é uma limitação óbvia, como para mim. Eu não o encontrei em nenhum lugar.


Se você quiser obter dados corretos no modo visual do testador (mais precisamente no indicador sobreposto no gráfico de teste visual), você deve fornecer a sincronização de tempo no indicador.
Portanto, qualquer uso de iOpen(), iClose, etc. neste modo é incorreto. Os dados reais estão sendo acessados. Chamar uma barra zero significa dirigir-se à última barra real.

E a maioria dos indicadores multitemporais baseados em preços próximos no modo de visualização olham para o futuro (mesmo usando sincronização de tempo).
É por isso que eu digo que este tipo de trabalho é desnecessário, e muito provavelmente prejudicial, porque fornece dados incorretos.

Mas isso não se aplica à chamada iCustom de uma EA

 
Vinin >>:


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

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

Repito.

Verificação sem visualização.

Seu conselheiro está chamando meu indutor.

não importa o que ou como conta. olhe para os troncos para ver o que recebe como preço do TF minuto.

-------

Eu dei um pouco o exemplo. Em tf=1 não funciona corretamente, em outros funciona como deveria.

Arquivos anexados:
curval.mq4  4 kb
 
avatara писал(а) >>

Repito.

Verificação sem visualização.

Seu conselheiro está chamando meu peru.

Não importa o que ou como conta. olhe para os troncos para ver o que recebe como preço do TF minuto.


Seu indicador retornará zero porque é feito com um erro lógico.
Após um pequeno ajuste, ele funciona bem
 
Vinin >>:

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

Desculpe, eu estava tirando uma soneca, aqui é +6gmt.
Você está errado sobre "complicado", o código apresentado é apenas uma parte do código EA, ele é exibido no indicador para verificar
para verificar se a EA funciona corretamente no modo teste.
Agora, sobre "No modo de visualização não funcionará corretamente", para programas escritos corretamente e quando eles funcionam corretamente, o programa fará (e deve fazer) o que o programador lhe pediu e nada mais,
O programa não funcionará corretamente, ele fará (e deve fazer) o que os programadores o definiram para fazer de outra forma, caso contrário o software é rude e não ajustado, esta é a minha opinião e não apenas a minha.
O que diz respeito à visualização e não-visualização - isto é do campo dos contos de fadas de um futuro brilhante:))
Eu dei o código pelo qual eu verifiquei os dados processados, vê-se claramente que os TFs adjacentes
não altere seus dados, você pode colocar este indicador na EA Onlin e verificar que na Onlin
o código apresentado funciona corretamente, e todos os 5 indicadores mostram aproximadamente o mesmo logicamente
dados relacionados, o código é descrito em detalhes, deve ser como descrito MAS ... Como contornar as deficiências da massa?
Se houver algum argumento construtivo, sugestões, posso ver seu código onde ele será praticamente comprovado
e mostrado - aqui estão os dados do TF atual, e aqui estão os dados do TF superior e inferior no modo TESTOR.
Por favor, não mova argumentos sobre nada para outros tópicos, ou perderemos uma idéia útil nestas disputas desnecessárias.

Peço desculpas se algo está errado. Sem ofensa. Ainda precisamos depurar o software, ainda temos sugestões.

 
vladv002 писал(а) >>

Desculpe, eu estava tirando uma soneca, aqui é +6gmt.
Você está errado sobre "complicado", o código apresentado é apenas uma parte do código EA, ele é exibido no indicador para verificar
para verificar se a EA funciona corretamente no modo teste.
Agora, sobre "No modo de visualização não funcionará corretamente", para programas escritos corretamente e quando eles funcionam corretamente, o programa fará (e deve fazer) o que o programador lhe pediu e nada mais,
O programa não funcionará corretamente, ele fará (e deve fazer) o que os programadores o definiram para fazer de outra forma, caso contrário o software é rude e não ajustado, esta é a minha opinião e não apenas a minha.
O que diz respeito à visualização e não-visualização - é do campo dos contos de fadas de um futuro brilhante:))
Eu dei o código pelo qual eu verifiquei os dados processados, vê-se claramente que os TFs adjacentes
não altere seus dados, você pode colocar este indicador na EA Onlin e verificar que na Onlin
o código apresentado funciona corretamente, e todos os 5 indicadores mostram aproximadamente o mesmo logicamente
dados relacionados, o código é descrito em detalhes, deve ser como descrito MAS ... Como contornar as deficiências da massa?
Se houver algum argumento construtivo, sugestões, posso ver seu código onde ele será praticamente comprovado
e mostrado - aqui estão os dados do TF atual, e aqui estão os dados do TF superior e inferior no modo TESTOR.
Por favor, não mova argumentos sobre nada para outros tópicos, ou perderemos uma idéia útil nestas disputas desnecessárias.

Peço desculpas se algo está errado. Sem ofensa. Tenho que depurar o software, ainda tenho sugestões.


O indicador é projetado para funcionar em tempo real.
Mais uma vez, ela não retira seus valores do gráfico de virtualização, mas de dados reais recentes.
Podemos fazer com que funcione também no gráfico de virtualização, mas temos que entender que ele não funcionará corretamente porque os dados ainda serão tirados da história real e não do simulada. Haverá um vislumbre do futuro, talvez não haja história suficiente para os cálculos. E pode haver muito mais.
Haverá todo um outro conjunto de perguntas.
 
Aqui está um indicador simples que escreve valores próximos de 6 períodos de tempo em seus 6 buffers.
//+------------------------------------------------------------------+
//|                                               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);
  }
//+------------------------------------------------------------------+
E aqui está um Expert Advisor, que recebe valores deste indicador e exibe estes valores no gráfico apenas em modo de teste visual.

//+------------------------------------------------------------------+
//|                                                     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);
  }
//+------------------------------------------------------------------+

Se depois disso você continuar a argumentar que os indicadores no testador não são calculados corretamente ou os dados de preços de prazos não nativos são modelados, você terá que fornecer provas, caso contrário você será banido. Proibido.
 
Vinin >>:


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

Devo ter dito algo errado, sinto muito, vou tentar novamente com mais detalhes.
Cada TF tem suas próprias barras que têm seu próprio tempo - por que temos um olhar para o futuro?
Sei que há Conselheiros Especializados com um olhar para o futuro,
é uma brincadeira de criança.
Do que você está falando "O indicador é projetado para funcionar em tempo real", estamos falando do Testador!
Pergunta específica - o testador não está fornecendo dados de TFs adjacentes, apenas dados do TF atual estão chegando - COMO contornar corretamente
esta falha do testador do sistema MT4
.
Nenhuma das funções da MQL4 pode retornar dados das TFs adjacentes no testador, seja acima ou abaixo dele.
Se os dados estiverem lá, você pode corrigi-los, verificá-los, exibi-los - Comentar,Alertar, Imprimir - ou passá-los para processamento.
Qualquer sugestão sobre como eliminar esta desvantagem no Testador, eu ficaria muito grato a você e acho que não sou o único.


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


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

Obrigado pelo exemplo convincente dos desenvolvedores.

Extremamente útil para ter em mãos. Antes de testar, para verificar a exatidão do trabalho.

Mas meus problemas locais permanecem - como você pode ver M1=0,0. :(

Embora tenha apagado arquivos de histórico e outras coisas...

Aprenderá mais.

Obrigado novamente por toda a sua ajuda.