Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Perché nel tester non chiama OnChartEvent.
È vero. Ma nella stessa situazione in MT4 c'erano possibili varianti. Ne ho implementata una con successo. L'interfaccia funzionava per un Expert Advisor in esecuzione nella modalità normale, ma poteva controllare la sua copia in esecuzione nel tester. La connessione è stata realizzata attraverso le risorse. L'EA sul grafico ha ricevuto tutti i dati durante il processo di test. Con MT5, forse, la situazione è più complicata. Non sono sicuro che sia possibile stabilire una "comunicazione" tra due copie tramite risorse. Questo problema richiede uno studio separato.
4. navigare tra gli elenchi di proprietà dei singoli elementi.
//-----------------------------------------------------------------------------------------
Vi ricordo l'elenco degli argomenti da considerare:
1. Orientarsi nell'elenco di intellisense e selezionare la funzione della finestra giusta.
2. Apertura e chiusura programmatica delle finestre.
3. Orientarsi nell'elenco di intellisense e selezionare l'elemento giusto nella finestra giusta.
4. Navigare negli elenchi di proprietà dei singoli elementi.
5. Parsing del nome di un elemento e funzione wrapper della finestra.
6.restituzione del valore del parametro di un elemento selezionato a una variabile del suo tipo. Considerare tre tipi di elementi diversi.
7. Impostazione di valori nei parametri di diversi tipi di elementi. Vediamo come appariranno i valori nelle finestre dell'interfaccia di questi elementi.
8. Restituzione dei valori dei parametri di un elemento, modifica e inoltro del valore a un altro elemento. Considerare diversi tipi di elementi e valori e testare l'inoltro tra diversi tipi di elementi in diverse finestre.
9. Restituzione del valore precedente (_V_LAST). Quando e in quali casi è richiesto l'ultimo valore (da non confondere con il valore corrente).
10. Testare l'impostazione degli stati ON/OFF/LOCK_ON/LOCK_OFF/LOCK/UNLOCK per diversi tipi di elementi.
11. Proviamo a collegare e sincronizzare le modifiche dei valori di elementi di tipo diverso: ad esempio, campo di input con pulsanti e cursore. Supponiamo che quando il valore di un elemento (manuale o software) cambia, il valore del secondo elemento cambi di conseguenza.
12. Proviamo a reimpostare programmaticamente i confini dell'intervallo dello slider e del campo di input con pulsanti tramite funzioni wrapper. Non ho avuto il tempo di testarlo, ma qualcosa mi suggerisce che funzionerà. Comunque, vediamo.
13. Proviamo a restituire gli stati degli elementi tramite funzioni wrapper. È inclusa nella funzionalità, ma non ho avuto il tempo di testarla. Quindi vedremo... Il risultato è sconosciuto.
14. Otteniamo e impostiamo i colori per il testo e le basi degli elementi. Possiamo provare ad associare questi colori ad alcuni semplici eventi o confini di valori.
15. Vi spiegherò meglio come navigare e leggere la nuova stampa del file API.
//------------------------------------------
Il colore giallo indica gli argomenti già trattati.
//--------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------
Enfasi aggiunta:
Ogni funzione wrapper accetta solo proprietà con il prefisso scritto nel suo nome.
Ecco come si presenta in pratica il lavoro con gli elenchi(mettere le parentesi alla fine, perché intellisense non funziona all'interno delle parentesi delle funzioni wrapper):
La gif è leggermente velocizzata.
Come risultato delle chiamate mostrate nella gif, le funzioni wrapper restituiscono i valori delle proprietà specificate.
Prima della chiamata, è necessario dichiarare una variabile per memorizzare il valore della proprietà o il risultato dell'esecuzione della funzione. Maggiori informazioni al riguardo sono contenute nei seguenti argomenti.
5.
Parsing del nome dell'elemento e funzione wrapper della finestra:
1. Nome della funzione wrapper dell'elemento:
Vediamo un esempio di funzione dell'elemento campo di inserimento testo EDIT: w7_s_p4_EDIT_Comment_1();
//-------------------------------------------------------------
//-------------------------------------------------------------
//-------------------------------------------------------------
/ / - ------------------------------------------------------------
//-------------------------------------------------------------
//-------------------------------------------------------------
2. Il nome della funzione wrapper della finestra:
Vediamo un'altra funzione come esempio: w_15_Processing_the_data();
//-------------------------------------------------------------
) // - ------------------------------------------------------------
//-------------------------------------------------------------
Si noti che la funzione finestra non dispone ancora di un prefisso per aprire l'elenco delle proprietà. Questa funzione apparirà sicuramente. Verrà generato un elenco speciale di proprietà della finestra da restituire/impostare e verrà assegnato un prefisso. Inoltre, la funzione finestra non contiene ancora una lettera per il tipo di ritorno.
Per ora, la funzione può solo aprire o chiudere una finestra.
Questi difetti saranno risolti nella prossima versione.
Si raccomanda di riassumere queste informazioni sulla formazione una volta sola, privatamente e separatamente, per evitare di ingolfare i commenti in futuro.
6.restituire il valore delparametro o della proprietà a una variabile del tipo richiesto:
Il tipo del parametro dell'elemento(int, double o string) determina il tipo della funzione dell'elemento.
È noto che le funzioni elemento restituiscono il valore del parametro con uno dei tre tipi: int, double o string.
Tuttavia, le funzioni restituiscono anche valori di proprietà...
Si verifica una situazione in cui il tipo del valore del parametro può non coincidere con il tipo delle proprietà, che sono sempre int. Si scopre che le funzioni restituiscono valori di proprietà del tipo sbagliato, ad esempio double o string invece di int. Questo inconveniente forzato è il prezzo per l'universalità delle funzioni.
Il compito dell'utente è quello di convertire da solo il valore ricevuto nel tipo richiesto..
Sottolineo: il tipo principale di tutte le proprietà degli elementi è int.
Diamo un'occhiata più da vicino agli esempi di domande e risposte:
Il tipo del valore del parametro determina il tipo della funzione dell'elemento.
Se la funzione cursore restituisce il tipo int, significa che nella fase di creazione dell'elemento l'utente ha assegnato dei numeri interi al suo parametro o alle sue proprietà, ad esempio posizionando l'intervallo del cursore o i campi di input con i pulsanti all'interno di valori interi.
Conclusione: il compito dell'utente è quello di convertire i valori ricevuti nel tipo richiesto.
Consideriamo alcuni esempi pratici:
1.
//------------------------------------------------------------------------------------------------------------
2.
//------------------------------------------------------------------------------------------------------------
3.
Vedere il risultato:
//------------------------------------------------------------------------------------------------------------
4.
//------------------------------------------------------------------------------------------------------------
5.
Vedere il risultato:
Proviamo quindi a ottenere e impostare altre proprietà di elementi e parametri. Proviamo anche a lavorare con il tipo double.
Ho seguito il codice e l'ho testato, e ho trovato un imprevisto che non si nasconde automaticamente quando la lunghezza della stringa casuale è troppo lunga
w7_s_p4_EDIT_Comment_1("Some random text AAAAAAAA");