Announcement

Collapse
No announcement yet.

Bottone per attivare EA

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Bottone per attivare EA

    Mi piacerebbe attivare comodamente un EA solo quando lo voglio con un semplice bottone sul grafico.
    Consosco abbastanza bene l'MQL ma non mi pare si possa fare senza dll esterne.
    Avete qualche esempio ?

    Grazie

    #2
    Ne è già stato parlato (su questo forum) in questa discussione: Bottoni/pulsanti interattivi.
    Ci sono anche esempi di codice.

    Praticamente io controllerei lo stato del bottone.
    Se è cliccato, allora dai ad una variabile (chiamata ad esempio Attivazione) valore true, altrimenti false.
    Poi fai un controllo nella OnTick() prima di qualsiasi altra istruzione.
    A seconda del valore della variabile esegui le istruzioni successive (quindi tutta la strategia dell'EA) oppure no.
    Skype: cadddami

    Comment


      #3
      OK grazie. Nel precedente post parli di diversi bugs non ancora risolti ....di che gravità ?

      Comment


        #4
        Diciamo che riesci comunque a lavorarci.
        Il problema sono essenzialmente alcune proprietà dei bottoni, visto che alcune non funzionano o funzionano male.

        Per esempio, mi sembra di ricordare che nei bottoni non funziona OBJPROP_HIDDEN e OBJPROP_BORDER_COLOR.
        Poi c'era un altro parametro sempre sui colori che quando lo modificavi ti cambiava il colore del testo anche se non volevi (mi sembra OBJPROP_BGCOLOR).
        Ed infine, il peggiore di tutti, alcune volte i bottoni fanno interferenza con il colore della griglia e i bordi delle candele sul grafico.
        Per i bottoni ce ne sono anche altri che ora non ricordo...
        Skype: cadddami

        Comment


          #5
          Ciao caddami scusami ma non sono riuscito ad usare il codice che hai postato. Non capisco bene.... all'interno del mio EA io non ho la sezione OnInit ma solo la Init. Lo stesso per la la OnTick ho una sezione start che viene eseguita ad ogni tick.
          Poi non capisco quali sono i parametri che devo passargli e perchè.
          Insomma sicuramente sono io una capra perchè non ho mai utilizzato questi eventi per cui per farla breve e cercare di non romperti le balle troppo spesso, avresti un EA semplice completo in modo che io possa capire bene come usare queste funzioni ? ho anche guardato su MQL4 ma francamente gli esempi sono troppo complessi per me.

          Grazie

          Comment


            #6
            Le funzioni init() e start() sono nella sintassi del vecchio MQL4 (prima della build 600 del 2014, per intendersi).
            Ora sono state sostituite rispettivamente dalla OnInit() e OnTick().
            Leggi qui: MQL4 NEW differenze vs Mql4 Old.

            Quali sono le funzioni delle quali non capisci i parametri? E soprattutto, quali sono i parametri che non capisci?
            Posso farti degli esempi se mi dici quali sono le funzioni e i parametri.

            Non ho sotto mano un EA con i bottoni in questo momento, ma ne trovi diversi anche proprio sul sito ufficiale di MQL4.
            Skype: cadddami

            Comment


              #7
              Originally posted by alextrade View Post
              Mi piacerebbe attivare comodamente un EA solo quando lo voglio con un semplice bottone sul grafico.
              Consosco abbastanza bene l'MQL ma non mi pare si possa fare senza dll esterne.
              Avete qualche esempio ?

              Grazie
              con mt4gui è banalissimo

              Comment


                #8
                Originally posted by andy60rm View Post

                con mt4gui è banalissimo
                Non lo conosco cos'è ?

                Comment


                  #9
                  http://www.mt4gui.com

                  è una libreria che carichi con #include <mt4gui2.mqh> e hai a disposizione un completo set di comandi per posizionare ogni tipo di bottone e associare eventi all'interfaccia.

                  Comment


                    #10
                    Ci sono anche esempi ?

                    Comment


                      #11
                      va e vedi da te, Andy ti ha messo anche il link!
                      La vita non è un giro di prova, cogli l’attimo..
                      Realizzazione per Metatrader4 di trading system, indicatori, pattern grafici, Ottimizzazioni IS-OOS su Forex e CFD, Analisi di Portafoglio .

                      Comment


                        #12
                        Da dove sono connesso ora il proxy mi blocca....comunque grazie per il suggerimento.

                        Comment


                          #13
                          Originally posted by alextrade View Post
                          Da dove sono connesso ora il proxy mi blocca....comunque grazie per il suggerimento.
                          Ciao Alex, ti consiglio , come ha scritto il buon Umberto, di fare un salto sul sito web. E' fatto molto bene e ci sono moltissimi esempi. Inutile riportarli tutti qua sopra.
                          In ogni caso a testimonianza della semplicità della libreria ne riporto uno:

                          Code:
                          // HelloWorld for MT4GUI 
                          // Lets include the imports file mt4gui.mqh
                          #include <mt4gui2.mqh>
                            
                          // global Variable
                          int hwnd = 0;
                          int button1 = 0;
                            
                          int OnInit()
                            {
                              hwnd = WindowHandle(Symbol(),Period()); 
                              // Version shall be displayed as comment
                              Comment("MT4GUI Version : "+guiVersion());          
                              // mark your clients with your apikey - optional - available from version 2.6
                              guiVendor("259495BDD3F940996B5FF5475EB0BFFE");
                              // In case there have GUI Items on chart, lets remove them all
                              guiRemoveAll(hwnd); 
                              // Add a button to Chart by 100,100 Coordinate, Width 100 and Height 30
                              // Button caption "Click Me"
                              button1 = guiAdd(hwnd,"button",100,100,100,30,"Click Me");
                              // Every GUI Item returns a handle
                            return(0);
                            }
                            
                            
                            
                            
                          int OnDeinit()
                            {
                             // Very important to cleanup and remove all gui items from chart
                             if (hwnd>0) { guiRemoveAll(hwnd);    guiCleanup(hwnd);}
                             return(0);
                            }
                            
                            
                          void OnTick()
                          {
                            // Button GUI Item has Clicked Event to capture
                            // You can use "guiIsClicked" command to capture the event
                            if (guiIsClicked(hwnd,button1)) PlaySound("ok.wav"); 
                          }

                          Comment


                            #14
                            Grazie. Molto utile e meno incasinata della gestione nativa con MQL4.

                            Comment


                              #15
                              Buonasera e buona pasqua a tutti,
                              riprendo questa vecchia discussione senza aprirne una nuova....
                              finalmente sono riuscito a scrivere il codice per creare un bottone che, al click del mouse su di esso, cambia da attivato a disattivato. adesso vorrei che questo pulsante oltre ad essere presente sul grafico facesse realmente quello per cui è stato creato cioè attivare/disattivare l'esecuzione dell'ea senza dover cliccare sul bottone "AutoTrading" della piattaforma. Immagino di dover aggiungere una condizione all' if che autorizza l'OrderSend ma non capisco qual'è il parametro che cambia lo stato del bottone da attivato a disattivato.... ne sarei grato se qualcuno sicuramente più esperto di me mi dasse qualche dritta....
                              Allego il codice che sono riuscito a scrivere...
                              Grazie per il momento
                              Attached Files

                              Comment

                              Working...
                              X