Il mio approccio. Il nucleo è il motore. - pagina 42

 
Maxim Kuznetsov:

L'importazione di GUI dall'EA all'indicatore è una cosa discutibile (solo l'architettura di MT - gli indicatori lavorano nel thread dell'interfaccia e possono rallentare TUTTO. Per evitare la frenata degli indicatori in MT, anche una parte delle funzioni è vietata loro)

non su questo.

Se un miserabile utente ha preso un paio di indicatori (di terze parti) e un EA e sono tutti GUI con il kernel-engine fuori dai piedi. Cosa succederà?

PS/ Peter, hai già ottenuto almeno l'hosting gratuito e ci hai messo il tuo prodotto. Se il codice base non è buono. La pubblicazione delle versioni alfa/beta/preview richiede un paio d'ore. Non riesci a trovare il tempo?

Beh, prima di tutto, lo farò io. E lo farò.

Sono stato accusato qui nella promozione del prodotto, quindi in effetti, questa è la promozione più inetta che si possa pensare. Perché se devo iniziare a fare soldi, sarò l'ultimo. Quando tutti useranno la versione gratuita.


Per quanto riguarda gli indicatori, hai ragione. La grafica è lenta. Soprattutto lo scorrimento. Ho già fatto alcuni esperimenti. Lo stesso codice in Expert Advisor (scorrimento dell'immagine), non causa rallentamenti, e nell'indicatore - rallenta.

Pertanto, il motore può essere realizzato come Expert Advisor che funzionerà su qualsiasi grafico libero, e la finestra può essere spostata tra i grafici utilizzando pulsanti speciali.

 
Реter Konow:

Le schede commutano l'intero kanvas. La seconda e la terza opzione sono progettate per controllare il fenomeno degli elementi senza cambiare kanvase. Cioè, lo stesso kanvas viene ridisegnato e ogni volta con un diverso insieme di elementi.

Per quanto riguarda la connessione, non capisco la tua idea. Perché non dovrebbe essere collegato all'EA? Come si possono sincronizzare i parametri?

La GUI è completamente nell'Expert Advisor o è collegata dall'esterno. Nel caso di una connessione esterna, è necessario impostare le proprietà di connessione e sincronizzare i valori dei parametri su entrambi i lati.

Cosa si chiama qui la sincronizzazione dei parametri? Quali proprietà può avere qui la connessione?

 
Реter Konow:

Quando tutti useranno la versione gratuita.

ahimè, non lo faranno, il tuo modo solo nastro trasportatore, l'uscita di cui è un sacco di prodotti con grafica, alla testa e nel processo, solo tu)))

Sembra che sia già stato discusso che il tuo approccio non è compreso da coloro che sanno programmare e da coloro che non possono programmare senza il tuo aiuto, hai 2 opzioni:

1. Mercato

2. Freelance

SZZ: Ripeto la mia opinione

a) per il trading, gli elementi di base della grafica dalla consegna MT o si possono usare esempi dalla KB - tutto questo è scritto in linguaggi di programmazione classici e non richiede tempo aggiuntivo per la sperimentazione e il debug, basta prenderlo e usarlo. Tutto questo può essere pubblicato nel Mercato

b) per scrivere una piattaforma analitica per uso personale, è meglio trovare soluzioni già pronte e collegarle a MT (.dll, Pythons, R, Matlab....), in questo caso, è meglio usare grafica di terze parti, così MT funzionerà solo con il server

 
Dmitry Fedoseev:

Cosa si chiama qui la sincronizzazione dei parametri? Quali proprietà può avere qui la connessione?

I controlli hanno dei parametri.

Per esempio Checkbox. Ha un parametro che ha due possibili valori: 1 e 0.

Se un utente clicca su una casella di controllo e mette un segno di spunta, sul lato motore, nell'array di parametri dei controlli, viene messo 1.

Successivamente, viene inviato un messaggio all'applicazione utente con il numero e il valore del parametro della casella di controllo. Dopo di che, il nuovo valore viene scritto nell'analogo dei parametri dell'array nell'applicazione e viene chiamata la funzione On_Gui_Event().

Questo è il modo in cui i valori sono sincronizzati tra il motore e l'applicazione utente.


Proprietà di connessione:

Parole chiave, funzioni wrapper che impostano valori agli elementi dell'EA, funzioni wrapper che aprono/chiudono finestre utilizzabili...

Inizializzazione di una copia dell'array di parametri nell'Expert Advisor.

Questo è tutto.

 
Igor Makanu:

ahimè, non lo faranno, il tuo modo solo un nastro trasportatore con un sacco di prodotti con grafica, in testa e nel processo, solo tu)))

Penso che abbiamo già discusso (1) iltuo approccio è incomprensibile per chi sa programmare e chi non sa programmare senza il tuo aiuto, hai due scelte:

1. Il mercato

2. Freelance

SZZ: Ripeto la mia opinione

a) per il trading, gli elementi di base della grafica dalla consegna MT o si possono usare esempi dalla KB - tutto questo è scritto in linguaggi di programmazione classici e non richiede tempo aggiuntivo per la sperimentazione e il debug, basta prenderlo e usarlo. Tutto questo può essere pubblicato nel Mercato

b) per scrivere una piattaforma analitica per uso personale, è meglio trovare soluzioni già pronte e collegarle a MT (.dll, Pythons, R, Matlab....) , (2) in questo caso, è meglio usare grafica di terze parti, in modo che MT si occupi solo del server

1) Coloro che sanno programmare non avranno bisogno di imparare il mio approccio. Usate solo il costruttore e collegate la GUI creata alla loro applicazione.

2. questo è solo per i professionisti. Ho già dimostrato che usare grafica di terze parti è molto più difficile. È una stampella che richiede un alto livello di allenamento. Contro la leggerezza del mio costruttore, diventa senza senso.

Tutto sommato, la vostra soluzione non è per le masse. Il mio è per le masse.

 
Igor Makanu:

Sembra che sia già stato discusso che il tuo approccio è incomprensibile per coloro che sanno programmare, e quelli che non possono programmare senza il tuo aiuto, hai 2 modi:

Il costruttore di grafica in uscita crea un motore che porta la GUI dell'utente + i file di connessione.

Poi, l'utente connette il motore alla sua applicazione (come descritto sopra), e riempie il file di connessione.

A questo punto, è tutto.

Nessuno deve imparare il mio approccio. Padroneggia solo il facile linguaggio del costruttore.

 
Реter Konow:

I controlli hanno dei parametri.

Per esempio Checkbox. Ha un parametro che ha due possibili valori: 1 e 0.

Se l'utente clicca sulla casella di controllo e la spunta, il lato motore mette 1 nell'array dei parametri dei controlli.

Successivamente, viene inviato un messaggio all'applicazione utente con il numero e il valore del parametro della casella di controllo. Dopo di che, il nuovo valore viene scritto nell'analogo dei parametri dell'array nell'applicazione e viene chiamata la funzione On_Gui_Event().

Questo è il modo in cui i valori sono sincronizzati tra il motore e l'applicazione utente.


Proprietà di connessione:

Parole chiave, funzioni wrapper che impostano valori agli elementi dell'EA, funzioni wrapper che aprono/chiudono finestre utilizzabili...

Inizializzazione di una copia dell'array di parametri nell'Expert Advisor.

Questo è tutto.

In quali array è scritto? In array regolari? Ho riavviato il terminale e tutto si è resettato...

L'utente ha premuto un pulsante o una casella di controllo - si è verificato un evento e l'Expert Advisor ha reagito a questo evento. Cos'altro c'è da sincronizzare e perché? Nel caso di un riavvio separato dell'Expert Advisor o dell'indicatore con una gui?

Sono molto curioso di sapere come reagirà ad un riavvio del terminale. I parametri impostati dall'utente saranno salvati?

 
Dmitry Fedoseev:

In quali array è scritto? Gli array normali? Ho riavviato il terminale e tutto è resettato...

L'utente ha premuto un pulsante o una casella di controllo - si è verificato un evento, l'Expert Advisor ha reagito a questo evento. Cos'altro c'è da sincronizzare e perché? Nel caso di un riavvio separato dell'Expert Advisor o dell'indicatore con una gui?

Sono molto curioso di sapere come reagirà ad un riavvio del terminale. Salverà i parametri impostati dall'utente?

Il riavvio del terminale porta al riavvio dell'Expert Advisor. Non è vero?

Due array di tipo stringa (un tipo universale, adatto a memorizzare qualsiasi valore di parametro) sono sincronizzati.

Gli elementi del motore rappresentano i valori dei loro parametri.


Per esempio, la cella di una tabella. Memorizza l'ultimo valore passato in un array di valori di parametri.

Questo array memorizza le proprietà dei parametri.

O proprietà dei parametri del cursore: valore minimo, valore massimo, passo di valore, valore corrente.

Quando l'utente altera il valore di una casella di input con i pulsanti (+/-), il cambiamento di valore viene fatto nel motore e poi passato all'Expert Advisor.

Cioè, l'Expert Advisor non ha bisogno di tenere traccia dei cambiamenti nei valori degli elementi. Riceve valori pronti e reagisce ad essi.

 
Dmitry Fedoseev:

...

L'utente ha premuto un pulsante o una casella di controllo - si è verificato un evento, l'Expert Advisor ha reagito a questo evento. Cos'altro c'è da sincronizzare e perché? Nel caso di un riavvio separato di Expert Advisor o indicatore con gui?

...

Dove memorizzate i valori degli elementi?

Inizialmente, i valori degli elementi possono essere impostati nel designer e possono anche essere impostati dall'Expert Advisor su Inite.

Il motore è obbligato a memorizzare i valori dei parametri degli elementi. Altrimenti, non sarà in grado di processarli quando l'utente interagisce con gli elementi.

Cioè, quando la maniglia del cursore viene spostata, il valore non cambierà sul lato del motore, e quindi, l'utente dovrà tenere traccia del cambiamento di valore da solo.

Ci sono un numero enorme di altre sfumature.

Per esempio - sincronizzazione dei valori dei parametri tra elementi. Deve essere impostato a livello del costruttore.

(Chiedete a Oleg Papkov. Ho implementato la sincronizzazione dei suoi elementi. Cambia la posizione del cursore, e nei campi di input in diverse finestre i valori cambiano. E tutto questo funziona a livello di motore).

Altrimenti, tutto questo deve essere fatto dall'utente stesso.

E questo non è per le masse.

 
Реter Konow:

(Chiedete a Oleg Papkov. Ho implementato la sincronizzazione dei suoi elementi. Cambia la posizione del cursore, e i campi di input nelle diverse finestre cambiano i valori. E tutto questo funziona a livello di motore).


Oh@@t! Dammi due...

Non l'avevo mai visto prima ed eccolo di nuovo qui :-)

È il miracolo dei miracoli: quando si cambia uno, si cambia l'altro.

Almeno pensa a quello di cui ti stai vantando :-)

Motivazione: