MT4 tester non dà informazioni da altri timeframes - pagina 9

 
avatara >>:

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

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

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

Или я не прав?

sbagliato - è possibile

 
Vinin >>:


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

Cosa c'è che non va? Hai guardato i registri?

Alcuni scrittori credono in Tester e iCustom...

Se cercate di capirlo - potreste essere banditi.

Se possibile, si prega di mostrare come ricevere dati corretti di un altro timeframe nell'indicatore chiamato da iCustom (non del periodo, che viene passato a iCustom) e come può funzionare nel tester.

Non è una limitazione evidente, come per me. Non l'ho trovato da nessuna parte.

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

E usare tutta la logica e il codice dell'indicatore al posto di iCustom complicherà sicuramente l'EA, ma non il contrario come dici tu... ;)

 
avatara писал(а) >>

Cosa c'è che non va? Hai guardato i registri?

Alcuni di quelli che scrivono credono in Tester e iCustom...

Se cercate di capirlo, potreste essere banditi.

Se possibile, mostrate come l'indicatore iCustom può ricevere i dati corretti del TF estero (non del periodo passato a iCustom) e come può funzionare nel tester.

Non è una limitazione evidente, come per me. Non l'ho trovato da nessuna parte.


Se volete ottenere dati corretti nella modalità visiva del tester (più precisamente nell'indicatore, sovrapposto al grafico di test visivo), dovete fornire la sincronizzazione temporale nell'indicatore.
Quindi, qualsiasi uso di iOpen(), iClose, ecc. in questo modo non è corretto. Si accede ai dati reali. Chiamare una barra zero significa rivolgersi all'ultima barra attuale.

E la maggior parte degli indicatori multitemporali basati sui prezzi di chiusura in modalità di visualizzazione guardano al futuro (anche usando la sincronizzazione temporale).
Ecco perché dico che questo tipo di lavoro è inutile, e molto probabilmente dannoso, perché fornisce dati errati.

Ma questo non si applica alla chiamata iCustom da un EA

 
Vinin >>:


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

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

Ripeto.

Controllo senza visualizzazione.

Il tuo consigliere sta chiamando il mio induttore.

non importa cosa o come conta. guarda i registri per vedere cosa ottiene come prezzo dal minuto TF.

-------

Ho modificato un po' l'esempio. Su tf=1 non funziona correttamente, su altri funziona come dovrebbe.

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

Ripeto.

Controllo senza visualizzazione.

Il tuo consigliere sta chiamando il mio tacchino.

Non importa cosa o come conta. guardate i registri per vedere cosa ottiene come prezzo dal minuto TF.


Il vostro indicatore restituirà zero perché è fatto con un errore logico.
Dopo una piccola regolazione, funziona bene
 
Vinin >>:

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

Scusate, stavo facendo un pisolino, qui c'è +6gmt.
Ti sbagli su "complicato", il codice presentato è solo una parte del codice EA, viene visualizzato nell'indicatore per controllare
per controllare se l'EA funziona correttamente in modalità test.
Ora, riguardo a "In modalità di visualizzazione non funzionerà correttamente", per i programmi scritti correttamente e quando funzionano correttamente, il programma farà (e deve fare) quello che il programmatore gli ha chiesto di fare e nient'altro,
Il programma non funzionerà correttamente, farà (e deve fare) quello che i programmatori hanno impostato per fare altrimenti il software è rozzo e non regolato, questa è la mia opinione e non solo mia.
Ciò che riguarda la visualizzazione e la non visualizzazione - questo è dal campo delle favole di un futuro luminoso:))
Ho dato il codice con cui ho controllato i dati elaborati, si vede chiaramente che le TF adiacenti
non cambiare i loro dati, si può mettere questo indicatore nell'EA Onlin e controllare che in Onlin
il codice presentato funziona correttamente, e tutti e 5 gli indicatori mostrano approssimativamente lo stesso logicamente
dati relativi, il codice è descritto in dettaglio, dovrebbe essere come descritto MA ... Come aggirare le carenze della pastella?
Se ci sono argomenti costruttivi, suggerimenti, posso vedere il vostro codice dove sarà praticamente provato
e mostrato - ecco i dati del TF corrente, ed ecco i dati del TF superiore e inferiore in modalità TESTOR.
Per favore, spostate le discussioni sul nulla in altri thread, o perderemo un'idea utile in queste dispute inutili.

Mi scuso se qualcosa è sbagliato. Senza offesa. Dobbiamo ancora eseguire il debug del software, abbiamo ancora dei suggerimenti.

 
vladv002 писал(а) >>

Scusate, stavo facendo un pisolino, qui c'è +6gmt.
Ti sbagli su "complicato", il codice presentato è solo una parte del codice EA, viene visualizzato nell'indicatore per controllare
per controllare se l'EA funziona correttamente in modalità test.
Ora, riguardo a "In modalità di visualizzazione non funzionerà correttamente", per i programmi scritti correttamente e quando funzionano correttamente, il programma farà (e deve fare) quello che il programmatore gli ha chiesto di fare e nient'altro,
Il programma non funzionerà correttamente, farà (e deve fare) quello che i programmatori hanno impostato per fare altrimenti il software è grezzo e fuori norma, è una mia opinione e non solo mia.
Ciò che riguarda la visualizzazione e la non visualizzazione - è dal campo delle favole di un futuro luminoso:))
Ho dato il codice con cui ho controllato i dati elaborati, si vede chiaramente che le TF adiacenti
non cambiare i loro dati, si può mettere questo indicatore nell'EA Onlin e controllare che in Onlin
il codice presentato funziona correttamente, e tutti e 5 gli indicatori mostrano approssimativamente lo stesso logicamente
dati relativi, il codice è descritto in dettaglio, dovrebbe essere come descritto MA ... Come aggirare le carenze della pastella?
Se ci sono argomenti costruttivi, suggerimenti, posso vedere il vostro codice dove sarà praticamente provato
e mostrato - ecco i dati del TF corrente, ed ecco i dati del TF superiore e inferiore in modalità TESTOR.
Per favore, spostate le discussioni sul nulla in altri thread, o perderemo un'idea utile in queste dispute inutili.

Mi scuso se qualcosa è sbagliato. Senza offesa. Devo fare il debug del software, ho ancora dei suggerimenti.


L'indicatore è progettato per lavorare in tempo reale.
Ancora una volta non prende i suoi valori dal grafico di virtualizzazione, ma da dati reali recenti.
Possiamo farlo funzionare anche sul grafico di virtualizzazione, ma dobbiamo capire che non funzionerà correttamente perché i dati saranno ancora presi dalla storia reale e non da quella simulata. Ci sarà uno sguardo al futuro, forse non ci sarà abbastanza storia per i calcoli. E potrebbero essercene molti altri.
Ci sarà tutta un'altra serie di domande.
 
Ecco un semplice indicatore che scrive i valori di chiusura di 6 timeframe nei suoi 6 buffer.
//+------------------------------------------------------------------+
//|                                               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);
  }
//+------------------------------------------------------------------+
Ed ecco un Expert Advisor, che riceve valori da questo indicatore e visualizza questi valori sul grafico solo in modalità test visivo.

//+------------------------------------------------------------------+
//|                                                     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 dopo questo continuate a sostenere che gli indicatori nel tester non sono calcolati correttamente o che vengono modellati i dati dei prezzi da timeframe non nativi, dovrete fornire delle prove altrimenti sarete bannati. Vietato.
 
Vinin >>:


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

Devo aver detto qualcosa di sbagliato, mi dispiace, proverò di nuovo in modo più dettagliato.
Ogni TF ha le sue barre che hanno il loro tempo - perché abbiamo uno sguardo in avanti?
So che ci sono Expert Advisors con uno sguardo in avanti,
è un gioco da ragazzi.
Di cosa stai parlando "L'indicatore è progettato per lavorare in tempo reale", stiamo parlando del Tester!
Domanda specifica - il tester non sta dando dati dai TF adiacenti, solo i dati dal TF corrente stanno arrivando - COME aggirare correttamente
questo difetto del tester di sistema MT4
.
Nessuna delle funzioni MQL4 può restituire dati dai TF adiacenti nel tester, sia sopra che sotto.
Se i dati ci sono, si possono correggere, controllare, visualizzare - Comment,Alert,Print - o passarli per l'elaborazione.
Qualsiasi suggerimento su come eliminare questo inconveniente nel Tester, vi sarei molto grato e penso di non essere l'unico.


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


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

Grazie per l'esempio convincente degli sviluppatori.

Estremamente utile da avere a portata di mano. Prima del collaudo, per verificare la correttezza del lavoro.

Ma i miei problemi locali rimangono - come potete vedere M1=0.0. :(

Anche se ho cancellato i file della cronologia e altre cose...

Imparerà di più.

Grazie ancora per tutto il vostro aiuto.

Motivazione: