Pulsanti e campi di testo sul grafico mt4 ora possibili - pagina 2

 
bello
 

Ghost, abbiamo la 0.3 che ora funziona. Non sono sicuro della 0.2 ma la 0.3 di sicuro supporta il testo e i bgcolor su CHECKBOX e BUTTONS (il resto non è ancora implementato).

Per ottenere lo stato del checkbox definiremo una nuova funzione, ma attualmente tbIsClicked(handle) può rilevare i click, quindi si può fare una funzione interna per catturare lo stato, dato che può essere 1 o 0. Ma nelle prossime versioni arriverà una nuova funzione per gestire lo stato del checkbox.

Per ottenere il valore della casella di testo usate

stringa tbGetText(handle)

Non c'è una funzione prevista per ottenere il valore del pulsante, ma è possibile impostare il testo del pulsante tramite

tbSetText( obj, text, fontsize, fontname )

questa funzione può anche impostare il valore dell'etichetta, del campo di testo ecc.....

fx1

 
fx1.net:

Qui voglio introdurre un nuovo addon gratuito per mt4 in anteprima. Attualmente sto testando un prodotto chiamato mt4gui. Questo prodotto rende possibile posizionare pulsanti, campi di testo, campi elenco direttamente sul grafico; ecco una schermata di anteprima che è già funzionante

http://fx1.net/wiki/uploads/img_7.png

I pulsanti reagiscono immediatamente dopo il click senza aspettare il tick del lato broker. Stiamo migliorando questo prodotto con altre caratteristiche nelle prossime settimane. Il motivo per cui ho postato questo è per avere idee dalla comunità su ciò che è necessario. Naturalmente non tutto può essere realizzato, ma filtrerò le idee interessanti qui.

Ecco un esempio di codice molto semplice che dimostra l'uso:

che ne dite di aggiungere un oggetto alla lib aka diagramma? winapi

essere molto utile

 

Britanec,

un tale oggetto è molto complicato da implementare in questa fase poiché vogliamo rilasciare tutti gli oggetti comuni fino alla versione 1.0 poi possiamo passare ad argomenti avanzati ma grazie per i suggerimenti, facci sapere le nuove idee


fx1.net

 

Credo di non essere stato molto chiaro nel mio post precedente. Proviamo di nuovo:

1) il modo in cui la tua funzione posiziona i pulsanti sullo schermo è leggermente diverso da ObjectCreate in mql. Non è legato a un angolo. Quindi, per posizionare un oggetto rispetto all'angolo inferiore ci sono delle coordinate negative. Inoltre il tuo posizionamento va da tutta la finestra e non da una finestra del grafico. Non ho nulla in contrario, ma posizionare un testo accanto a un pulsante con coorditnate negative usando la funzione generale mql è impossibile, o forse io non potrei farlo. La vostra funzione "pxy" è buona come altre per mettere un testo in una finestra del grafico, ma non ha fatto il lavoro perché le coordinate sono date in modo diverso.

2) i colori non hanno funzionato nella versione 2. Grazie mille per l'aggiornamento alla versione 3. Assolutamente nessun problema con i colori. Eccellente.

3) ancora una volta vorrei chiedervi se è possibile utilizzare la funzione tbPutObject della vostra dll per mettere gli oggetti in una sottofinestra separata. Il vostro prodotto, a mio parere, sarebbe 10 volte più prezioso se ciò fosse fatto. Sarebbe una specie di console commerciale, e sarebbe molto gestibile all'interno di una finestra. Inoltre risolverà tutti i problemi di coordinate sollevati al punto 1.

4) Ho il campione che hai postato qui e quello del sito fx1. E naturalmente ho tbRemove per ciascuno degli oggetti in deinit. Solo che NON rimuove gli oggetti quando l'esperto viene rimosso. Non ho idea del perché.

Vorrei ancora una volta ringraziarvi per il prodotto. È veramente eccellente ed esattamente quello che stavo cercando da molto tempo.

C'è un problema però che volevo portare alla vostra attenzione. Se il pulsante ExpertAdvisor di MT4 è in posizione OFF e uno qualsiasi dei tuoi pulsanti viene cliccato non succede nulla, il che è corretto, ma nel momento in cui il pulsante ExpertAdvisors viene riacceso, l'EA esegue tutti i comandi dai clic. Solo per una prova ho cliccato sia Buy che Sell mentre ExpertAdvisor era spento, nel momento in cui l'ho acceso ha comprato e venduto. Penso che questo sia qualcosa da sistemare.

 

fx1.net : icontrolli lampeggiano molto spesso sul grafico, puoi risolvere questo problema? Immagino che la frequenza di lampeggiamento dipenda dai dati dei tick.

 
Ghost: vedi i miei video; non sciacquano affatto. è una questione di implementazione. Se rimuovi e riapplichi ad ogni tick questo può accadere, ma in altri casi sono più o meno statici. Almeno dalla mia parte. Puoi postare come l'hai implementato per favore?
 
pro_:

Credo di non essere stato molto chiaro nel mio post precedente. Proviamo di nuovo:

1) il modo in cui la tua funzione posiziona i pulsanti sullo schermo è leggermente diverso da ObjectCreate in mql. Non è legato a un angolo. Quindi, per posizionare un oggetto rispetto all'angolo inferiore ci sono delle coordinate negative. Inoltre il tuo posizionamento va da tutta la finestra e non da una finestra del grafico. Non ho nulla in contrario, ma posizionare un testo accanto a un pulsante con coorditnate negative usando la funzione generale mql è impossibile, o forse io non potrei farlo. La vostra funzione "pxy" è buona come altre per mettere un testo in una finestra del grafico, ma non ha fatto il lavoro perché le coordinate sono date in modo diverso.


pro_: sì, MQL lo fa attraverso l'impostazione di una proprietà separata e mantiene le posizioni positive. Credo che si possa fare lo stesso meglio con coordinate negative, ecco perché ho implementato questo modo. Per quanto riguarda la funzione pxy, è in grado di capire le coordinate con una leggera modifica. Sì tutta la finestra perché come .dll non possiamo vedere l'asse del grafico ecc. D'altra parte sembrano statici, si può semplicemente misurare la loro larghezza e altezza e posizionare i testi x,y rispetto a questo.

2) i colori non hanno funzionato nella versione 2. Grazie mille per l'aggiornamento alla versione 3. Assolutamente nessun problema con i colori. Eccellente.

La v3 supporta ancora il colore nei pulsanti e nelle caselle di controllo.


3) ancora una volta vorrei chiedervi se è possibile utilizzare la funzione tbPutObject della vostra dll per mettere gli oggetti in una sottofinestra separata. Il vostro prodotto, a mio parere, sarebbe 10 volte più prezioso se questo fosse fatto. Sarebbe una specie di console commerciale, e sarebbe molto gestibile all'interno di una finestra. Inoltre risolverà tutti i problemi di coordinate sollevati al punto 1.

Beh, il lavoro principale era quello di posizionarli sulla finestra del grafico, in realtà. l'inserimento in finestre separate sarebbe molto facile, ma attualmente abbiamo scelto un modo. La sua implementazione è leggermente diversa se li mettiamo nel grafico o in una finestra separata. Nelle versioni successive potremmo supportarlo. Ho intenzione di essere in grado di rendere il CHART più piccolo senza cambiare le dimensioni della finestra MDI in cui il grafico si trova. In questo modo potremmo avere uno spazio separato a destra o in basso per mettere pulsanti aggiuntivi. Sembrerebbero pulsanti accanto al grafico.


4) Ho l'esempio che hai postato qui e quello del sito fx1. E naturalmente ho tbRemove per ogni oggetto in deinit. Solo che NON rimuove gli oggetti quando l'esperto viene rimosso. Non ho idea del perché.

Sì, lo confermo, questo funzionava una volta. Controllerò questo importante problema

C'è un problema però che volevo portare alla vostra attenzione. Se il pulsante ExpertAdvisor di MT4 è in posizione OFF e uno qualsiasi dei tuoi pulsanti viene cliccato non succede nulla, il che è corretto, ma nel momento in cui il pulsante ExpertAdvisors viene riacceso l'EA esegue tutti i comandi dai clic. Solo per una prova ho cliccato sia Buy che Sell mentre ExpertAdvisor era spento, nel momento in cui l'ho acceso ha comprato e venduto. Penso che questo sia qualcosa da sistemare.

Sì, hai ragione. Non ho controllato questo problema. Lavorerò anche su questo.

Grazie mille per aver testato mt4gui!

 

fx1.net: prima di postare il mio codice controllerò il tuo codice di esempio.

Può essere il problema che uso il tbSetText per aggiornare il testo delle etichette in ogni tick?

Hai intenzione di aggiungere i radiobottoni all'addon? Se no, come possiamo cambiare il checkstate di una checkbox?

 

Il bug di tbRemove e tbRemoveAll è stato risolto nella v0.4

Il supporto per icheckbox è stato esteso:

int tbSetChecked(int,bool);

int tbIsChecked(int);

Il codice dimostrativo sul sito è stato aggiornato.

Motivazione: