GUI in crowdsourcing. Open beta testing. - pagina 18

 
Реter Konow:

Chiarire, questi "nodi" sono oggetti dinamici e interattivi così come i collegamenti tra di loro? Non è solo uno schema, vero? Se è così, ho visto qualcosa di simile nel costruttore di strategie grafiche di Andrei Barinov. È questo che intende?

La logica dei collegamenti tra i nodi è immutabile e segue regole predefinite, o è uno schema frivolo creato a piacere?

In linea di principio, non vedo nulla di difficile da creare. Sono due o tre giorni di lavoro. Non ho bisogno di alcun codice extra. Lo farò io stesso, dopo le cose principali che sono una priorità in questo momento.

Sì, questa è una rappresentazione della strategia, solo che non è quella di Andrei Barinov, i miei sviluppi.

L'editing visivo non è previsto. Ci sarà una generazione automatica.

"Non c'è bisogno di codice aggiuntivo". - Quindi potrebbe non esserci una strategia sotto forma di file. Quindi vuoi fare un parser? Ne abbiamo già uno, perché ne hai bisogno :) ? Posso mandarti esempi di come lavorare con la strategia, è facile e conveniente.

Ecco un esempio:

#include <Greshnik\\Strategy.mqh>

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnStart()
  {
   cStrategy *st=new cStrategy();
   st.Read_from_file("Strategy\\Test\\1.txt");  //Читаем с файла
   st.Print_strategy();                         //Вывести в лог
   int count_top_nodes=st.Get_top_nodes_count();//Количество узлов на вершине
   int my_node=-1;
   for(int i1=0; i1<count_top_nodes; i1++)
     {
      int node_id=st.Get_top_node(i1);
      if(node_id<0)
        {
         Print("Узла на вершине нету по индексу:",i1);
        }
      else
        {
         my_node=node_id;
        }
     }
   if(my_node>=0)
     {
      Print("Тип узла: ",EnumToString(st.Get_node_type(my_node)));
      Print("Количество родительских узлов: ",st.Get_parents_nodes_count(my_node));
     }
   delete st;
  }

Quando un errore è necessario guardare il registro, lì in russo tutto.

E nel codice sorgente tutto è descritto.

 
Aliaksandr Hryshyn:

Un tale esempio, non riflette come voglio che sia, mostra la struttura e alcune caratteristiche. I nodi hanno anche alcune informazioni da mostrare. Direzione dal basso verso l'alto.

Non c'è modo, senza codice aggiuntivo, di leggere questo tipo di struttura da un file di testo e ottenere tutte le informazioni su di essa.

Vorrei una bella presentazione di questa struttura.

Ha bisogno della creazione dinamica di elementi grafici.

Ecco un esempio di un file con questo tipo di struttura, potete vedere a cosa serve la struttura :)

Questo file può essere letto dal codice e c'è un facile accesso a tutti i parametri della struttura. Non tutti i tipi di nodi sono rappresentati qui.

Non insisto sull'aiuto, so che richiede un certo sforzo. Qualche problema di collocamento ottimale dei nodi è richiesto, non è bene collocare per lista a causa della cattiva leggibilità della struttura.

La struttura non ha loop. Per attraversare il grafico si può usare la ricorsione partendo da un vertice, segnare i nodi dove si è già stati. Poi si sceglie un qualsiasi nodo non marcato e si definiscono tutti i nodi da esso, che formano un altro grafo non collegato a quello principale, ecc.

Avrei potuto fare tutto da solo, ma ci sono molti altri compiti ora.

Questo non è più per Peter. Non distrarlo, per favore.
È più per te.

 
Aliaksandr Hryshyn:

Sì, questa è una presentazione della strategia, solo che non è di Andrei Barinov, il suo lavoro.

Non è previsto alcun montaggio visivo. Ci sarà una generazione automatica.

"Non c'è bisogno di codice extra". - Quindi potrebbe non esserci una strategia sotto forma di file. Quindi vuoi fare un parser? Ne abbiamo già uno, perché ne hai bisogno :) ? Posso mandarti esempi di come lavorare con la strategia, è facile e conveniente.

Ecco un esempio:

Quando un errore è necessario guardare il registro, lì in russo tutto.

E nella fonte tutto è descritto.

Posso creare una soluzione generale per tutti questi schemi interattivi e flessibili, ma non è presto. Nel tuo caso hai bisogno di una soluzione specifica, adatta a una certa idea. Non sono sicuro di poter aiutare in questo. È necessario creare prima la "meccanica" grafica dei nodi e dei collegamenti, e poi modificare per idee specifiche. Posso creare la meccanica, ma ulteriori "messe a punto", restringeranno il campo di applicazione e lo renderanno un progetto individuale. Forse Nikolay può aiutare. Sono molto occupato al momento.

 
Реter Konow:

Potrei creare una soluzione generale, per tutti i tipi di schemi interattivi e flessibili, ma è un colpo lungo. Nel vostro caso, avete bisogno di una soluzione specifica che si adatti a un'idea specifica. Non sono sicuro di poter aiutare in questo. È necessario creare prima la "meccanica" grafica dei nodi e dei collegamenti, e poi modificare per idee specifiche. Posso creare la meccanica, ma ulteriori "messe a punto", restringeranno il campo di applicazione e lo renderanno un progetto individuale. Forse Nikolay può aiutare. Sono molto occupato al momento.

Bene.

 
Nikolai Semko:

Questo non è più per Peter. Non distrarlo, per favore.
È più il tuo posto.

Sì, è così.

 
Aliaksandr Hryshyn:

Un tale esempio, non riflette come voglio che sia, mostra la struttura e alcune caratteristiche. I nodi hanno anche alcune informazioni da mostrare. Direzione dal basso verso l'alto.

Non c'è modo, senza codice aggiuntivo, di leggere questo tipo di struttura da un file di testo e ottenere tutte le informazioni su di essa.

Vorrei una bella presentazione di questa struttura.

Ha bisogno della creazione dinamica di elementi grafici.

Ecco un esempio di un file con questo tipo di struttura, potete vedere a cosa serve la struttura :)

Questo file può essere letto dal codice e c'è un facile accesso a tutti i parametri della struttura. Non tutti i tipi di nodi sono rappresentati qui.

Non insisto sull'aiuto, so che richiede un certo sforzo. Qualche problema di posizionamento ottimale dei nodi è richiesto, non è bene posizionare per lista a causa della cattiva leggibilità della struttura.

La struttura non ha loop. Per attraversare il grafico si può usare la ricorsione partendo da un vertice, segnare i nodi dove si è già stati. Poi si sceglie un qualsiasi nodo non marcato e si definiscono tutti i nodi da esso, che formano un altro grafo non collegato a quello principale, ecc.

Potrei fare tutto da solo, ci sono solo un sacco di altri compiti ora.

Ci sono strumenti classici per la visualizzazione di grafici: http: //www.graphviz.org/documentation/ aka https://en.wikipedia.org/wiki/DOT_(graph_description_language)

cioè dovete generare un file .dot del vostro grafico secondo la vostra struttura ed eseguire il renderer (ce ne sono diversi da scegliere)

Se non mi sbaglio, il file .dot può essere aperto in yEd(https://www.yworks.com/products/yed) per correggerlo con il mouse :-)

PS. la visualizzazione dei grafici non è un compito molto facile a dir poco :-) Si sta ancora risolvendo nel mondo...

 
Quindi vorrei una soluzione MQL. OK, dovrò farlo io stesso :).
 

Possiamo solo immaginare come il codice generato dallo strumento di Peter si collegherà al resto del programma.

"Kernel, markup" ..... no comment.

Capisco i seguenti tipi di markup: xml, html, json, xaml e così via.

Capisco l'ereditarietà, che permette sia di modificare i controlli sorgente che di sottoscrivere i loro eventi senza immergersi nel codice sorgente dei controlli.

Peter usa la programmazione procedurale, quindi riferirsi a un controllo come a un oggetto, dato che non ci sono oggetti a priori in Peter, è impossibile.

Il che significa che non puoi cambiarli al volo, tanto meno collegarli ai dati...

Aspettiamo... Stiamo aspettando di vedere come va a finire. Ma sarebbe meglio se Peter generasse ex4 invece di mqh in modo da non dover scavare in giro in ... kernel.

 
Алексей Барбашин:

Possiamo solo speculare su come il codice generato dallo strumento di Peter si collegherà al resto del programma.

"Kernel, markup" ..... no comment.

Capisco i seguenti tipi di markup: xml, html, json, xaml e così via.

Capisco l'ereditarietà, che permette sia di modificare i controlli sorgente che di sottoscrivere i loro eventi senza immergersi nel codice sorgente dei controlli.

Peter usa la programmazione procedurale, quindi riferirsi a un controllo come a un oggetto, dato che non ci sono oggetti a priori in Peter, è impossibile.

Il che significa che non puoi cambiarli al volo, tanto meno collegarli ai dati...

Aspettiamo... Stiamo aspettando di vedere come va a finire. Ma sarebbe meglio se Peter generasse ex4 invece di mqh in modo da non dover scavare in giro in ... kernel.

Questo è divertente :) Tutto il kernel è pieno di oggetti.

Alexey, hai promesso di aiutarmi a testarlo. È merito tuo se questo editore vedrà la luce. Mi hai motivato a finire il lavoro.

Non appena metterò su l'editor (martedì), creeremo insieme un semplice pannello di pulsanti, caselle di controllo e campi di input e lo collegheremo ad un semplice Expert Advisor. E tutte le domande avranno una risposta immediata).

 
Aliaksandr Hryshyn:
Quindi vorrei una soluzione in MQL. OK, dovrò farlo io stesso :).

è ora di uscire dalla scatola di sabbia :-) una spatola per bambini non è sufficiente...

compiti diversi richiedono strumenti diversi

d'altra parte: si può martellare le viti con un martello (anche un microscopio)

Motivazione: