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

 
I programmatori che si scambiano le mani e sono in grado di asciare librerie aggiuntive e sanno come usarle sono pochi e lontani tra loro.

I programmatori che possono scrivere la propria libreria sono anche pochi e lontani tra loro.

Ci sono molti utenti che vogliono una GUI. Ma per loro, tutto dovrebbe essere semplice. Semplice come due volte due.
A questo scopo, è necessario fare un progetto separato che permette di lavorare come vs

Peter fai quello che pensi sia necessario. Si può giudicare la domanda solo dopo aver stabilito le statistiche. Abbiamo cercato di fare un indicatore di raccolta delle statistiche dei conti con voi. Non ho voluto disturbare perché non ho ancora finito la parte del calcolo.
Anche se sono sicuro che la tua GUI è più facile da programmare della mia, che è già fatta.
Sto solo modificando costantemente ed è più facile per me gestire il mio codice da solo, non voglio chiedere a qualcun altro di farlo.


Ma ci sono pochi utenti reali che apprezzeranno il vostro lavoro. Ve lo dico per esperienza personale.
Ho creato una biblioteca gratuita per gli esperti. Una biblioteca pronta per le informazioni. Che visualizza solo informazioni e permette di gestire qualsiasi Expert Advisor.
Ci sono centinaia di download. Sono stato ringraziato un paio di volte. Cina, Brasile, Thailandia e Russia lo stanno scaricando. Questo è tutto.

La tua libreria sarà utile per i venditori che vogliono una bella interfaccia. Ma si dovrà confrontare la velocità e i freni con i glitch. L'ho incontrato.

Tutto il resto non è importante.
Fai le tue cose. Non c'è bisogno di provare nulla.
 
Vladislav Andruschenko:
Ci sono pochissimi programmatori che sono abili e possono gestire e utilizzare librerie aggiuntive.

I programmatori che possono scrivere la propria libreria sono anche pochi e lontani tra loro.

Ci sono molti utenti che vogliono una GUI. Ma per loro, tutto dovrebbe essere semplice. Semplice come due volte due.
A questo scopo, è necessario fare un progetto separato che permette di lavorare come vs

Peter fai quello che pensi sia necessario. Si può giudicare la domanda solo dopo aver stabilito le statistiche. Abbiamo cercato di fare un indicatore di raccolta delle statistiche dei conti con voi. Non ho voluto disturbare perché non ho ancora finito la parte del calcolo.
Anche se sono sicuro che la tua GUI è più facile da programmare della mia, che è già fatta.
Sto solo modificando costantemente ed è più facile per me gestire il mio codice da solo, non voglio chiedere a qualcun altro di farlo.


Ma ci sono pochi utenti reali che apprezzeranno il vostro lavoro. Ve lo dico per esperienza personale.
Ho creato una biblioteca gratuita per gli esperti. Una biblioteca pronta per le informazioni. Che visualizza solo informazioni e permette di gestire qualsiasi Expert Advisor.
Ci sono centinaia di download. Sono stato ringraziato un paio di volte. Cina, Brasile, Thailandia e Russia lo stanno scaricando. Questo è tutto.

La tua libreria sarà utile per i venditori che vogliono una bella interfaccia. Ma si dovrà confrontare la velocità e i freni con i glitch. L'ho incontrato.

Tutto il resto non è importante.
Fai le tue cose. Non c'è bisogno di provare nulla.


Grazie. La tua opinione, come sviluppatore e venditore con una vasta esperienza, è molto importante per me.

 
Реter Konow:


Grazie. La tua opinione, come sviluppatore e venditore con una vasta esperienza, è molto importante per me.

Grazie.
L'obiettivo principale è che la libreria non influenzi l'algoritmo principale dell'Expert Advisor.
Mi sono trovato di fronte a questo all'inizio, quando stavo creando la mia biblioteca.
 
Vladislav Andruschenko:
Grazie.
L'obiettivo principale è che la libreria non influenzi l'algoritmo principale di EA.
Mi sono trovato di fronte a questo all'inizio, quando stavo creando la mia libreria.

Tutte le mie connessioni sono puramente esterne. Non influisce in alcun modo.

Hai disegnato la GUI nel linguaggio di markup. È trasportato dall'indicatore "motore".

Abbiamo collegato 2 file all'EA e compilato il file di connessione.

Abbiamo avviato il motore con la GUI e l'Expert Advisor.

E tutto funziona.

 
Vladislav Andruschenko:
...

Ci sono anche pochissimi programmatori che possono scrivere la propria libreria.

...

Non sono d'accordo. Tutti coloro che programmano in MQL, anche i non professionisti, se lo fanno da molto tempo, hanno piuttosto molte delle loro funzioni originali. È facile raggrupparli e convertirli in un file sotto forma di libreria. Penso che la maggior parte sia in grado di farlo.

 
khorosh:

Non sono d'accordo. Tutti coloro che programmano in MQL, anche i non professionisti se lo fanno da molto tempo, hanno accumulato molte funzioni originali. È facile metterli insieme e archiviarli come una biblioteca. Credo che la maggior parte delle persone possa farlo.

Non sto parlando di un insieme di funzioni. Intendo una libreria con interfaccia grafica. Fidatevi di me. È complicato da organizzare. E Peter ha fatto un ottimo lavoro.
 

Ripeterò il compito ancora una volta:

  1. Il programma MT dovrebbe cambiare lo stato degli elementi del modulo delle finestre (premuto/non premuto).
  2. Il programma MT deve cambiare il colore dei pulsanti sul modulo delle finestre.
  3. Il programma MT deve accettare il testo daicampi di input del modulo delle finestre.
  4. Il programma MT deve impostare il testo nei campi di input del modulo delle finestre.
  5. Il programma MT deve aprire/chiudere le finestre dell'applicazione Windows.

È abbastanza semplice. Devi disegnare due semplici moduli in C#. Ci dovrebbe essere un pulsante, un campo di input e una casella di controllo. Aggiungere una DLL. Connettiti con MT5.

Farò il mio analogo in MT. Stesse forme ed elementi e stesse funzioni. Poi, confrontiamo le soluzioni in termini di qualità e potenziale di sviluppo.

//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Ecco la mia soluzione:


//-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Codice di controllo nell'Expert Advisor:

void OnTimer()
  { 
   static int q,q2,q3,q4,q5;    q++; q2++; q3++; q4++; q5++;
   //-----------------------------------------------------------------
   //Реализуем изменение цвета кнопки внутри формы.
   //-----------------------------------------------------------------
   if(q == 1)E_Window_1_Button_1(M_COLOR,C'245,245,245');
   if(q == 2)E_Window_1_Button_1(M_COLOR,C'245,0,0');
   if(q == 3)q = 0;
   //-----------------------------------------------------------------
   //Реализуем программное нажатие/отжатие/блокировку кнопки.
   //-----------------------------------------------------------------
   if(q2 == 1)E_Window_1_Button_2(STATE,ON);  
   if(q2 == 2)E_Window_1_Button_2(STATE,LOCKED_ON);
   if(q2 == 3)E_Window_1_Button_2(STATE,OFF);
   if(q2 == 4)E_Window_1_Button_2(STATE,LOCKED_OFF);
   if(q2 == 5)q2 = 0;
   //-----------------------------------------------------------------
   //Реализуем программное нажатие/отжатие/блокировку чекбоксов.
   //-----------------------------------------------------------------
   if(q3 == 1){E_Window_1_Checkbox_1(STATE,ON);         E_Window_1_Checkbox_2(STATE,LOCKED_ON);  E_Window_1_Checkbox_3(STATE,OFF);} 
   if(q3 == 2){E_Window_1_Checkbox_1(STATE,LOCKED_ON);  E_Window_1_Checkbox_2(STATE,OFF);        E_Window_1_Checkbox_3(STATE,ON);}
   if(q3 == 3){E_Window_1_Checkbox_1(STATE,OFF);        E_Window_1_Checkbox_2(STATE,ON);         E_Window_1_Checkbox_3(STATE,LOCKED_ON);}
   if(q3 == 4)q3 = 0;
   //-----------------------------------------------------------------
   //Реализуем изменение текста в поле ввода:
   //-----------------------------------------------------------------
   E_Window_1_Edit_box_1("Current text: " + MathRand());
   //-----------------------------------------------------------------
   //Реализуем изменение цвета текста в поле ввода.
   //-----------------------------------------------------------------
   if(q4 == 1)E_Window_1_Edit_box_1(T_COLOR,C'145,245,245');
   if(q4 == 2)E_Window_1_Edit_box_1(T_COLOR,C'245,10,0');
   if(q4 == 3)E_Window_1_Edit_box_1(T_COLOR,C'245,20,50');
   if(q4 == 4)E_Window_1_Edit_box_1(T_COLOR,C'245,130,0');
   if(q4 == 5)E_Window_1_Edit_box_1(T_COLOR,C'25,40,20');
   if(q4 == 6)E_Window_1_Edit_box_1(T_COLOR,C'245,170,0');
   if(q4 == 7)E_Window_1_Edit_box_1(T_COLOR,C'245,110,110');
   if(q4 == 8)E_Window_1_Edit_box_1(T_COLOR,C'245,255,0');
   if(q4 == 9)q4 = 0;
   //-----------------------------------------------------------------
   //Реализуем поочередное закрытие/открытие окон:
   //-----------------------------------------------------------------
   if(q5 == 1)W_Window_2(close);
   if(q5 == 5)W_Window_2();
   if(q5 == 10)q5 = 0;
   //-----------------------------------------------------------------
  }
//+------------------------------------------------------------------+

I file sono collegati qui sotto:

1. Prova il file EA (installa nella cartella EAs, apri, salva, compila, metti sul grafico).

2. Il file External Connection (installalo nella cartella di inclusione).

3. Connection Properties file (installato nella cartella inclusiva).

4. File di esempio 2 del forum con il codice della finestra (solo visualizzazione).

5. Engine (installalo nella cartella degli indicatori e mettilo sul grafico con l'EA di prova).

 
Spero che i miei avversari forniscano la loro soluzione al problema del collegamento di un modulo Windows tramite una DLL.
 
Реter Konow:
Spero che i miei avversari forniscano la loro soluzione al problema della connessione del modulo Windows tramite DLL.

Ho la sensazione che tu sia l'unico a partecipare a questa "olimpiade speciale" :-)

 

Per favore, nell'appendice. Quando si avvia Expert Advisor, si apre una finestra, nella quale ci sono due pulsanti, due caselle di testo e una casella di controllo. Il colore dei pulsanti e il testo nella prima casella di testo cambia una volta al secondo. Se viene inserito del testo nel secondo campo di testo, l'Expert Advisor aprirà un avviso con un messaggio di evento e questo testo. Premendo i pulsanti si apre anche l'avviso e il primo pulsante apre il modulo-2, il secondo pulsante chiude il modulo-2. Si può anche chiudere il modulo-2 con una croce. Il modulo principale (modulo 1) non può essere chiuso da una croce, scomparirà quando l'EA sarà disconnesso. La casella di controllo apre anche un avviso e ci sono due tipi di eventi da esso: 1 e 2 - deselezionare e spuntare la casella.

La maggior parte del mio tempo è stato speso per ricordare C# (se sapevo qualcosa lì:), non ho fatto nulla in esso per più di tre anni e anche per sviluppare una classe per passare eventi, ma è universale, può essere utilizzato in qualsiasi progetto. Così ora quando si crea una gui si contano i minuti ;).

Se vi state chiedendo quanto tempo richieda internamente, dovete chiamare un metodo di classe per passare un evento all'EA - una linea. Per poter controllare i controlli da un EA è necessario scrivere due metodi, uno nella classe del modulo e uno nella classe di trasferimento degli eventi, una linea di codice in ciascuno di essi.

Non ho fatto controlli di checkbox nella loro EA - mi sono annoiato con loro, hanno già impostato il colore e il testo - sia il parametro testo che gli ints. Il colore è trasmesso come RGB, ma probabilmente potrebbe essere fatto da una variabile, non l'ho approfondito.

E c'è il presupposto che qualcuno che conosce meglio C# e FindowsForms può farlo due volte più facilmente - senza due metodi per impostare le proprietà, ma con uno solo, e forse fare qualcosa di meglio.

Bene, le porte dell'infinito mondo di C# e FindowsForms sono aperte.


File:
Motivazione: