L'oscillatore di equità di MQL5 significa - pagina 3

 

DV2010:

...Renat, da quanto ho capito, la visualizzazione dell' indicatore sul grafico al termine del test si basa sui calcoli fatti durante il test e sul riempimento dell'array dell'indicatore. Ma cosa significa che i risultati non vengono trasferiti dal tester al grafico dell'indicatore personalizzato?

Naturalmente, i dati di calcolo dell'indicatore dal tester-agente non vengono trasferiti al grafico del terminale. Non passeremo centinaia di megabyte di dati calcolati al terminale, e saranno immediatamente (e al prossimo tick) ricalcolati dall'indicatore (la chiamata della funzione OnCalculate non è stata annullata).

L'indicatore dovrebbe calcolarsi da solo.

 

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

Ma dove scrivo esattamente i dati nel buffer?

Pensavo che potesse essere scritto solo su OnCalculated e ho cercato di implementarlo in quel modo.

 
DV2010:

Rosh, la variante per l'online è già stata postata, ma come qualcuno che lavora principalmente con la Storia, ho bisogno di una variante che funzioni su dati storici. E trovo ancora difficile capire quale possa essere la difficoltà principale qui.


Scrivere i valori di equità in un file. Poi tracciate l'indicatore in base a questi valori. Tuttavia, il file di dati dovrà essere spostato manualmente perché durante i test i file vengono scritti nella cartella agent_name/MQL5/Files.
 
DV2010:

Ma dove scrivo esattamente i dati nel buffer?

Pensavo che potesse essere scritto solo su OnCalculated e ho cercato di implementarlo in quel modo.

Usiamo expert per scrivere i valori nel file, poi nell'indicatore scriviamo il codice per leggere dal file e scrivere i dati nel buffer. Non posso ancora mostrarvi il codice, mi ci vorrà del tempo per scriverlo.

 
Renat:

Naturalmente, i valori degli indicatori calcolati non possono essere trasferiti dal Tester-Agent al grafico del terminale. Non passeremo centinaia di megabyte di dati calcolati al terminale, e saranno immediatamente (e al prossimo tick) ricalcolati dall'indicatore (la chiamata della funzione OnCalculate non è stata annullata).

Renat, l'indicatore dovrebbe leggere se stesso

Ecco perché inizializzo i valori dell'array di indicatori con alcuni valori nel metodo OnCalculated . Ma perché è possibile inizializzare (costruire) la linea dell'indicatore in questo modo, mentre i valori Equity non lo fanno?

 
DV2010:

Renat, l'indicatore dovrebbe leggere se stesso

Ecco perché inizializzo i valori dell'array di indicatori con alcuni valori nel metodo OnCalculated . Ma perché è possibile inizializzare (costruire) la linea dell'indicatore inquesto modo, mentre i valori azionari non possono?

Perché i prezzi hanno una storia ma l'Equity no. Pertanto, è necessario costruire la propria storia per Equity scrivendola in un file.
 
Rosh: Scrivere i valori di equità nel file. Poi costruisci l'indicatore sulla base di questi valori. Tuttavia, il file di dati deve essere trasferito manualmente, durante i test, i file sono scritti nella cartella Agent_name/MQL5/Files.

Come ho capito, dovrebbe essere scritto nel file nell'OnInit dell'Expert Advisor basato sulla definizione tramite AccountInfoDouble(ACCOUNT_EQUITY) e letto dal file - nell' indicatoreOnCalculated.

Ma perché i dati sulla variabile Equty attraverso AccountInfoDouble(ACCOUNT_EQUITY) sono disponibili direttamente in OnCalculated?

Il codice diventerebbe poi troppo ingombrante.....

Non riesco acapire ...OnCalculated in Print AccountInfoDouble(ACCOUNT_EQUITY) produce qualche valore .

Cosa impedisce esattamente che venga assegnato immediatamente all'array di valori dell'indicatore?

Ho sempre pensato che l'indicazione dei valori nel tester sulla storia differisce dall'indicazione dei valori attuali solo per il fatto che la storia è già registrata, mentre i dati attuali sono appena arrivati.

 

sergey1294:
потому что цены имеют историю а эквити нет. По этому для эквити вам нужно строить собственную историю записав ее в файл.

Ma allora come viene visualizzata la dinamica Equty attraverso AccountInfoDouble(ACCOUNT_EQUITY) in OnCalculated Indicator (non solo in OnTick Expert Advisor)?

O l'indicatore OnCalculated funziona diversamente in modalità test e in modalità display?

 

Dichiarare due array Equity[] e Time[] a livello globale in EA.

Scrivere il valore del capitale e del tempo nell'array appropriato quando si testa l'EA.

Usate uno script per leggere il file alla fine del test e tracciare l'equità sul grafico richiesto.

Questo è il modo migliore per i vostri scopi, non capisco perché avete bisogno di un indicatore.

 
DV2010:

Come ho capito, dovrebbe essere scritto nel file nell'OnInit dell'Expert Advisor basato sulla definizione tramite AccountInfoDouble(ACCOUNT_EQUITY) e letto dal file - nell' indicatoreOnCalculated.

Ma perché i dati sulla variabile Equty attraverso AccountInfoDouble(ACCOUNT_EQUITY) sono disponibili direttamente in OnCalculated?

Il codice diventerebbe poi troppo ingombrante.....

Non riesco acapire ...OnCalculated in Print AccountInfoDouble(ACCOUNT_EQUITY) produce qualche valore .

Cosa impedisce esattamente che venga assegnato immediatamente all'array di valori dell'indicatore?

Ho sempre pensato che indicare i valori nel tester sulla storia differisce dall'indicare i valori attuali solo per il fatto che la storia è già registrata, mentre i dati attuali sono appena arrivati.

Non so nemmeno come spiegartelo. AccountInfoDouble(ACCOUNT_EQUITY) memorizza l'ultimo valore di capitale. Dopo il test, come ha detto Renat, l'indicatore viene reinizializzato e ricalcolato. Così, i dati azionari accumulati nel buffer dell'indicatore durante il test vengono cancellati.