Scrivo EA gratis - Pagina 2
Space X, la nuova era dell’economia dello spazio ed Elon Musk aspirante dominatore del 21° secolo
SpaceX  di Elon Musk ci riprova questa questa sera per il secondo tentativo del lancio storico. Rimane l’incognita meteo che potrebbe far slittare ulteriormente il via all’era dei voli privati …
Multipli da bolla per Wall Street e azionario UE, il confronto con i precedenti grandi recuperi e i timori per giugno
E’ andato in archivio anche il mese di maggio sui mercati con Piazza Affari risalita ai livelli pre-lockdown, ossia si è riportata sui massimi dal 9 marzo. A ben vedere …
Investire nel green: l?emergenza coronavirus apre a prospettive migliori
Investire nel clima e nelle tecnologie green potrebbe avere prospettive interessanti, in grado di superare l’emergenza coronavirus grazie a basi più solide rispetto alla crisi finanziaria del 2008. Ne sono …
Tutti gli articoli
Tutti gli articoli Tutte le notizie

  1. #11
    L'avatar di tetsuo
    Data Registrazione
    Mar 2008
    Messaggi
    990
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)
    Potenza rep
    42949685
    Citazione Originariamente Scritto da syson Visualizza Messaggio
    Ma quella è un applicazione esterna alla MT4, non un EA... potrei replicare le singole funzioni con degli script, se ti interessa


    da come lo presentano sembra un EA un po' più complesso del solito ma sempre un EA

    http://www.activtrades.it/documents/...umentation.pdf

    Scrivo EA gratis-24-08-2011-10.31.png

    Su Metatrader4, per come è strutturata, se si vuole un esecuzione continua dei programmi (ad ogni tick per intenderci) questi devono girare come EA (o come indicatore). Gli script sono programmi che la piatta fa girare una sola volta.

    Complimenti comunque per l'iniziativa seguirò con piacere il 3d


    Ciao

  2. #12
    L'avatar di gasta
    Data Registrazione
    May 2007
    Messaggi
    7,986
    Mentioned
    0 Post(s)
    Quoted
    37 Post(s)
    Potenza rep
    42949686
    IO AVREI QCOSA DA FARTI SCRIVERE gentile scrivano!! solo che servirebbe un pò di privacyy sai com'è!!

  3. #13

    Data Registrazione
    Jan 2011
    Messaggi
    4
    Mentioned
    1 Post(s)
    Quoted
    0 Post(s)
    Potenza rep
    0
    Citazione Originariamente Scritto da syson Visualizza Messaggio
    cercherò almeno di rendermi utile in quest'altra maniera, scrivendo cioè codice mql4 per chi non ne fosse in grado.
    Ciao Syson, sei l'uomo giusto al momento giusto. In questi giorni stavo cercando, qua e la sul web, questo tipo di aiuto. Il mio bisogno è molto semplice e di rapida soluzione. Vorrei capire come cambiare fonte agli indicatori di metatrader. In sostanza, tutti gli indicatori hanno come fonte il grafico principale. Io vorrei che gli indicatori avessero come fonte un altro indicatore. Ecco un esempio grafico, che ho emulato da Netdania.


    Esempio

    indicatore di base
    eur/usd -> macd

    indicatore concatenato
    eur/usd -> ewo -> macd




    Nell'esempio si possono vedere due grafici. Il primo è un MACD standard. Il secondo è un MACD calcolato partendo da un grafico EWO, che a sua volta è calcolato dal grafico di base.

    Grazie in anticipo... Syson!

  4. #14

    Data Registrazione
    Aug 2011
    Messaggi
    19
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)
    Potenza rep
    0
    Citazione Originariamente Scritto da gasta Visualizza Messaggio
    IO AVREI QCOSA DA FARTI SCRIVERE gentile scrivano!! solo che servirebbe un pò di privacyy sai com'è!!
    Ciao, Gasta
    Comprendo perfettamente le tue esigfenze di riservatezza, ma io non posso soddisfarel, spiacente.
    sempre pronto a dare una mano se un giorno decidessi di rendere pubbliche le tue idee.
    Citazione Originariamente Scritto da Chevron Visualizza Messaggio
    Ciao Syson, sei l'uomo giusto al momento giusto. In questi giorni stavo cercando, qua e la sul web, questo tipo di aiuto. Il mio bisogno è molto semplice e di rapida soluzione. Vorrei capire come cambiare fonte agli indicatori di metatrader.
    Ciao, Chevron

    Ho cercato in giro l'indicatore EWO, in pratica si tratta dello 'Awesome Indicator' presente nella MT4, o almeno credo.
    Eccoti il codice che calcola il MACD dell'EWO del simbolo visualizzato.
    Fammi sapere se è quello che cercavi e se è tutto chiaro.

    Codice:
    //+------------------------------------------------------------------+
    //|                                          Chevron MACD on EWO.mq4 |
    //|                                                            Syson |
    //+------------------------------------------------------------------+
    #property copyright "Chevron"
    #property link      ""
    #property indicator_separate_window
    #property indicator_buffers 3
    #property indicator_color1 Red
    #property indicator_color2 Green
    #property indicator_color3 Blue
    #property indicator_level1 0
    extern int EWO_Fast_MA_Period = 5;
    extern int EWO_Slow_MA_Period = 34;
    extern int MACD_Fast_MA_Period = 12;
    extern int MACD_Slow_MA_Period = 24;
    extern int MACD_Signal_period = 9;
    double EWO_Buffer[], MACD_Buffer[],SIGNAL_Buffer[];
    int init()
      {
       SetIndexBuffer (0,EWO_Buffer);
       SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2);
       SetIndexLabel  (0,"EWO");
       
       SetIndexStyle  (1,DRAW_LINE,STYLE_DASHDOT,1);
       SetIndexBuffer (1,MACD_Buffer);
       SetIndexLabel  (1,"MACD");
       
       SetIndexBuffer (2,SIGNAL_Buffer);
       SetIndexStyle(2,DRAW_HISTOGRAM,STYLE_DASHDOT,2);
       SetIndexLabel  (2,"SIGNAL");
       
       IndicatorShortName("Chevron MACD on EWO");
       return(0);
      }
    int start()
      {
       int    counted_bars=IndicatorCounted();
       double MA5,MA34;
       int limit=Bars-counted_bars;
       if(counted_bars>0) limit++;
       for(int i=0; i<limit; i++)
       {
          MA5=iMA(NULL,0,EWO_Fast_MA_Period,0,MODE_SMA,PRICE_MEDIAN,i);
          MA34=iMA(NULL,0,EWO_Slow_MA_Period,0,MODE_SMA,PRICE_MEDIAN,i);
          EWO_Buffer[i]=MA5-MA34;    
       }
       for(i=0; i<limit; i++)
       {
         MACD_Buffer[i]=iMAOnArray(EWO_Buffer,Bars,MACD_Fast_MA_Period,0,MODE_LWMA,i) - iMAOnArray(EWO_Buffer,Bars,MACD_Slow_MA_Period,0,MODE_LWMA,i);
         SIGNAL_Buffer[i]=iMAOnArray(MACD_Buffer,Bars,MACD_Signal_period,0,MODE_EMA,i);
       }
       return(0);
      }

  5. #15

    Data Registrazione
    Jan 2011
    Messaggi
    4
    Mentioned
    1 Post(s)
    Quoted
    0 Post(s)
    Potenza rep
    0
    Syson, ho provato il codice. Purtroppo mi da un grafico blu. Per vedere qualcosa, devo alzare il timeframe e scorrere indietro nel tempo fino a trovare il grafico. Cliccando sotto nella thumb, si può vedere il difetto.


  6. #16

    Data Registrazione
    Jan 2011
    Messaggi
    4
    Mentioned
    1 Post(s)
    Quoted
    0 Post(s)
    Potenza rep
    0
    Syson............. niente?

  7. #17

    Data Registrazione
    Aug 2011
    Messaggi
    19
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)
    Potenza rep
    0
    Citazione Originariamente Scritto da Chevron Visualizza Messaggio
    Syson............. niente?
    Chevron, scusa... vedo solo ora,
    ad ogni modo adesso non riesco ad aiutarti, ho messo l'indicatore su un grafico e si è delineato subito (allego uno screenshot).
    Devo guardare meglio il codice, cosa che farò al più presto (pensa che sono quasi le 20:00 e ancora non si vede l'ora in cui potremo tornare a casa da questa schifosa azienda), ma non ora.

    scusa di nuovo



    p.s: una volta allegato l'indicatore al grafico, prova a ricompilarlo.... fammi sapere
    Anteprime Allegate Anteprime Allegate Scrivo EA gratis-chevron_ewo.gif  

  8. #18

    Data Registrazione
    Sep 2007
    Messaggi
    1,005
    Mentioned
    0 Post(s)
    Quoted
    13 Post(s)
    Potenza rep
    24554907
    Citazione Originariamente Scritto da syson Visualizza Messaggio
    Salve.

    Ho appena appurato che non posso propormi come money manager.
    Avrei fatto tutto gestendo i conti tramite un EA, ma visto che in Italia tale pratica è considerata illegale, non avendo soldi miei da gestire, né soldi di terzi da poter gestire, cercherò almeno di rendermi utile in quest'altra maniera, scrivendo cioè codice mql4 per chi non ne fosse in grado.
    Ogni riga di codice eventualmente scritta sarà resa pubblica, perciò invito chiunque non volesse rendere note le proprie strategie a non proporle qua, né a contattarmi in privato.

    Dite pure.
    Ciao, se ti copio il codice di un EA che trovo molto carino riesci a dirmi come far funzionare gli stop loss?? Quando li imposto il ts non esegue piu' trade e non capisco il motivo..
    Ultima modifica di civt; 31-08-11 alle 09:38

  9. #19

    Data Registrazione
    Aug 2011
    Messaggi
    19
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)
    Potenza rep
    0
    Citazione Originariamente Scritto da civt Visualizza Messaggio
    Ciao, se ti copio il codice di un EA che trovo molto carino riesci a dirmi come far funzionare gli stop loss?? Quando li imposto il ts non esegue piu' trade e non capisco il motivo..
    Ciao, civit.

    Posta pure e vediamo che si riesce a fare.

  10. #20

    Data Registrazione
    Aug 2011
    Messaggi
    19
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)
    Potenza rep
    0
    Dal momento che ho ricevuto molte richieste in merito all'evergreen 'Martingala' posto il codice che, secondo me, meglio risponde alle esigenze di chi desidera appllicare questo metodo alle proprie strategie.
    Il modo più sicuro per ottenere l'id dell'ultimo ordine chiuso è senz'altro quello di andare a conservare questo valore da qualche parte. Io ho scelto la strada delle variabili globali, spero sia d'aiuto e che sia spunto per una discussione proficua per tutti.

    Ciao
    Codice:
    bool allow_trade, indicator_long_signal;
    int ticket, i;
    double tp = 10;
    double sl = 10;
    //qui si suppone che il vostro indicatore abbia dato un segnale d'acquisto, per cui:
    indicator_long_signal = true;
    //da questo punto in poi, comincia la verifica sugli ordini esistenti
    //(aperti o chiusi) e il conseguente calcolo dei lotti
    if(GlobalVariablesTotal() == 0)
    {
       allow_trade = true;
    }
    else
    {
       int sym_len = StringLen(Symbol());
       for(i=0;i<GlobalVariablesTotal();i++)
       {
          string gv = GlobalVariableName(i);
          if(StringSubstr(gv,4,sym_len) == Symbol())
          {
             int gv_len = StringLen(gv);
             int tkt_len = gv_len - sym_len;
             ticket = StrToInteger(StringSubstr(gv, sym_len+4, tkt_len));
             if(OrderSelect(ticket,SELECT_BY_TICKET, MODE_DESCEND)==true)
             {
                if(OrderCloseTime() == 0)  // se esiste un ordine relativo al simbolo su cui gira l'ea
                {                          // la verifica si arresta.
                   allow_trade = false;
                   break;
                }
                else
                {
                   allow_trade = true;
                   if(OrderProfit() < 0)
                   {
                     lotti = (OrderLots() * 2);
                   }
                   else
                   {
                      lotti = 0.01;
                   }
                   break;
                }
             }
             else
             {
                allow_trade = true;
                lotti = 0.01;
             }                    
          }
          else
          {
             allow_trade = true;
             lotti = 0.01;
          }
       }
    }
    //Invio dell'ordine, creazione della nuova variable globale ed eliminazione di quella precedente.
    if(allow_trade == true && indicator_long_signal == true)
    {
       while(true) //Questo metodo di invio ordini consente di evitare il requote;
       {           
          double price = MarketInfo(Symbol(), MODE_ASK);
          int ticket = OrderSend(Symbol(), OP_BUY, lotti, price, 3, price - sl * Point, price + tp * Point);
          if(ticket > 0 && OrderSelect(ticket, SELECT_BY_TICKET) == true)
          {
             GlobalVariableSet("xxxx" + Symbol() + ticket, 0); 
             GlobalVariableDel(gv);
             break;
          }
          Sleep(200);
          RefreshRates();
       }
    }
    Ultima modifica di syson; 02-09-11 alle 16:36

Accedi