Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1237

 
ANDREY:

Ho capito bene che ora in mql4 gli array dovrebbero essere inizializzati solo usando la funzione

Non necessariamente, ma è meglio controllare queste domande con degli script di test:

void OnStart()
{
   int arr_1[10] = {123};
   int arr_2[10] = {0,1,2,3,4,5,6,7,8,9};
   int arr_3[10];
   ArrayInitialize(arr_3,777);
   ArrayPrint(arr_1);   // 123   0   0   0   0   0   0   0   0   0
   ArrayPrint(arr_2);   // 0 1 2 3 4 5 6 7 8 9
   ArrayPrint(arr_3);   // 777 777 777 777 777 777 777 777 777 777
}
ANDREY:

Il tutorial di Kovalev dice che si può inizializzare un array contemporaneamente alla sua dichiarazione (come ho fatto io), senza alcuna funzione speciale.

La vostra variante nel mio esempio arr_1 - quindi potete inizializzarla con un valore nullo! - e se un altro, allora il primo elemento dell'array sarà un valore di inizializzazione, e tutto il resto sarà nullo.

Credo che il tutorial consigli di inizializzare come nel mio esempio arr_2

 

Pomeriggio.

Devi visualizzare nel tuo EA i valori dell'indicatore utilizzato in esso. Non dovete disegnarlo esattamente come appare. È sufficiente segnare il valore del punto dell'indicatore su ogni candela. Ho provato a farlo attraverso l 'oggetto OBJ_ARROW e ho scoperto che il punto di ancoraggio non può essere al centro dell'oggetto. È più alto o più basso dell'oggetto. Di conseguenza, i punti non coincidono con i valori reali dell'indicatore. Potete suggerire una soluzione a questo problema.

visualizzazione dell'indicatore tramite OBJ_ARROW

 
Oleg Remizov:

Pomeriggio.

Devi visualizzare nel tuo EA i valori dell'indicatore utilizzato in esso. Non dovete disegnarlo esattamente come appare. È sufficiente segnare il valore del punto dell'indicatore su ogni candela. Ho provato a farlo attraverso l 'oggetto OBJ_ARROW e ho scoperto che il punto di ancoraggio non può essere al centro dell'oggetto. È più alto o più basso dell'oggetto. Di conseguenza, i punti non coincidono con i valori reali dell'indicatore. Suggerisci una soluzione a questo problema.

Create un modello con tutti gli indicatori richiesti e salvatelo con il nome di tester o con il nome di Expert Advisor.

 
Alexey Viktorov:

Crea un modello con tutti gli indicatori che vuoi e salvalo con il nome tester o con il nome dell'EA.

Sfortunatamente, il modello non funziona per me. È necessario abilitare/disabilitare la funzione di visualizzazione degli indicatori nelle impostazioni, e il disegno deve essere fatto direttamente dall'EA. L'EA dovrebbe poter essere trasferito in un unico file.

 
Oleg Remizov:

Sfortunatamente, il modello non funziona per me. La funzione di visualizzazione degli indicatori dovrebbe essere attivata/disattivata nelle impostazioni, e il disegno dovrebbe essere fatto direttamente dall'EA. Voglio essere in grado di trasferire l'EA in un unico file.

Questi sono strani desideri. Se vuoi che il tuo EA funzioni, funzioni e basta, allora è sufficiente allegarlo come risorsa e non avrà bisogno di alcuna visualizzazione e funzionerà senza il file dell'indicatore. E se volete esattamente la visualizzazione, che senso ha non dare il file indicatore?

 
Alexey Viktorov:

Questa è una strana richiesta. Se vuoi che l'EA funzioni, solo che funzioni, allora è sufficiente allegarlo come risorsa e funzionerà senza il file indicatore. Se volete vedere la mappatura esatta, che senso ha non dare il file indicatore?

Non è che non voglio dare un file indicatore. Un Expert Advisor che richiede file aggiuntivi non può essere pubblicato sul mercato. In effetti, è comodo avere tutto ciò di cui hai bisogno per il tuo lavoro in un unico file.

Inoltre, non ho sempre bisogno di mostrare tutti i buffer degli indicatori se ce ne sono pochi. Per esempio, ho un indicatore per Ishimoku. Ha 5 linee, ma solo una di esse dovrebbe essere selezionata per essere utilizzata in un Expert Advisor. Voglio visualizzare solo uno di loro invece dell'intero indicatore.

 
Igor Makanu:

Non necessariamente, ma è meglio controllare tali domande con script di test:

La vostra variante nel mio esempio arr_1 - quindi potete inizializzare con un valore nullo! - e se l'altro, allora il primo elemento dell'array sarà un valore di inizializzazione e tutti gli altri saranno nulli.

Credo che il tutorial consigli di inizializzare come nel mio esempio arr_2

Grazie per le preziose informazioni per me.

 
Oleg Remizov:

Non è che non voglio dare un file indicatore. Un Expert Advisor che richiede file aggiuntivi non può essere pubblicato sul mercato. E in generale, è comodo avere tutto ciò che serve per il lavoro in un unico file.

Inoltre, non ho sempre bisogno di mostrare tutti i buffer degli indicatori se ce ne sono pochi. Per esempio, ho un indicatore per Ishimoku. Ha 5 linee, ma solo una di esse dovrebbe essere selezionata per essere utilizzata in un Expert Advisor. Questo è l'unico che vogliamo visualizzare e non l'intero indicatore.

Bene, gli indicatori sono usati come una risorsa per il mercato. Ma a cosa serve all'utente? Nessuno è interessato ai principi con cui si aprono le posizioni. Se vuoi, puoi descrivere l'intera strategia nella descrizione. Qualcuno ne ha bisogno?

 
Igor Makanu:


Credo che il libro di testo consigli di inizializzare come nel mio esempio arr_2

Ecco cosa dice il libro di testo di Kovalev sull'inizializzazione di una matrice nel momento stesso in cui la si dichiara

8.4.4 Inizializzazione delle matrici

Un array può essere inizializzato solo con costanti del tipo appropriato. Gli array monodimensionali e multidimensionali sono inizializzati con una sequenza unidimensionale di costanti elencate separate da virgole. La sequenza è racchiusa tra parentesi graffe:

int Mas_i[3][4] = { 0, 1, 2, 3, 10, 11, 12, 13, 20, 21, 22, 23 }

double Mas_d[2][3] = { 0.1, 0.2, -0.3, -10.2, 1.5, 7.0 };

bool Mas_b[5] = { false, true, false, true, true }

Una o più costanti possono essere saltate nella sequenza di inizializzazione.

Dal libro di testo mi sembra che quando viene dichiarato un array, l'intero array viene inizializzato con tutti i dati, non solo il primo elemento dell'array.
Se ho capito male il tutorial, vi sarei grato se poteste dirmi cosa ho capito male.

 
Alexey Viktorov:

Beh, è quello che usano gli indicatori come risorsa per il mercato. Ma a cosa serve all'utente? Nessuno è interessato ai principi con cui si aprono le posizioni. Se vuoi, puoi descrivere l'intera strategia nella descrizione. Qualcuno ne ha bisogno?

E secondo le mie osservazioni, agli utenti piace quando l'Expert Advisor mostra varie informazioni sullo schermo: disegna frecce, linee, canali, ecc. per dimostrare la vigorosa attività dell'"intelligenza artificiale").

Secondo gli indicatori, l'Expert Advisor fornisce il trailing. Voglio visualizzare questo processo in modo che l'utente possa vedere la linea tratteggiata con StopLoss.