Scrivo EA gratis

  • Ecco la 59° Edizione del settimanale "Le opportunità di Borsa" dedicato ai consulenti finanziari ed esperti di borsa.

    Settimana a doppia velocità per le principali piazze internazionali. In Europa gli indici Euro Stoxx 50 e Dax hanno aggiornato oggi i record assoluti, mentre negli Stati Uniti gli indici di Wall Street S&P 500 e Nasdaq 100 hanno ritracciato dai recenti massimi storici. Martedì scorso è stato diffuso il rapporto di febbraio sui prezzi al consumo degli Usa, che ha evidenziato una lieve accelerazione dell’inflazione. L’indice mostra una crescita del 3,2% su base annua, rispetto al 3,1% di gennaio, mentre il dato core ha rallentato meno del previsto, da 3,9% a 3,8%. Nel complesso, i dati confermano la tesi prudente della Fed sui tagli dei tassi, togliendo qualche certezza a chi spera in una prima mossa nel meeting di giugno. Per continuare a leggere visita il link

syson

Nuovo Utente
Registrato
18/8/11
Messaggi
21
Punti reazioni
5
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.
 
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.

puoi sempre progettare per conto tuo uno di quei robot dove partendo con 1000,00 euro nel giro di qualche mese ti fa diventare milionario. Credo che ci sia un sito dove fanno le gare con questi ea.
 
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 mi sai dare il codice che mi incrementa/decrementa la posizione in base all'operazione precedente? partendo da un quantitativo di lotto prescelto.
 
puoi sempre progettare per conto tuo uno di quei robot dove partendo con 1000,00 euro nel giro di qualche mese ti fa diventare milionario. Credo che ci sia un sito dove fanno le gare con questi ea.
Ciao, waterloo. Grazie per il suggerimento, ma purtroppo, sommando il mio stipendio a quello di mia moglie a stento si riesce ad arrivare a fine mese, inoltre per mia indole non metterei mai neanche un centesimo in un sistema del genere perché sarebbe un centesimo perso, sicuramente.
ciao mi sai dare il codice che mi incrementa/decrementa la posizione in base all'operazione precedente? partendo da un quantitativo di lotto prescelto.
Ciao, Robin84, a dire la verità non ho ben capito quale è la tua richiesta, intendi forse un metodo che calcoli il peso dei lotti in base alla tua equity? es: 1 lotto ogni cento mila euro presenti sul conto, così se arrivi a centouno mila euro il peso del lotto sarà 1,01 etc... ?
 
Prova a cercare xvol ed aggiungere le medie mobili ( settabili) nello spazio separato e riservato all' indicatore Poi magari fai aprire la posizione in automatico al cross bullish o bearish che sia.
 
conosci lo "smart order" di activtrades? riesci a replicarlo?
 
Prova a cercare xvol ed aggiungere le medie mobili ( settabili) nello spazio separato e riservato all' indicatore Poi magari fai aprire la posizione in automatico al cross bullish o bearish che sia.
OK
conosci lo "smart order" di activtrades? riesci a replicarlo?

Ma quella è un applicazione esterna alla MT4, non un EA... potrei replicare le singole funzioni con degli script, se ti interessa
 
Programmare Metatrader è alquanto difficile per i non addetti ai lavori( C++?) che magari sanno utilizzare Excel.
Un EA che va a leggere in determinate celle di Excel e trasferisce il relativo ordine di acquisto o vendita a Metatrader pensi sia fattibile?
Grazie comunque! (clap clap, dove è l'iconcina degli applausi?)
 
OK


Ma quella è un applicazione esterna alla MT4, non un EA... potrei replicare le singole funzioni con degli script, se ti interessa

quindi per ogni funzione di smart order dovresti lanciare un EA. anche cosi' non sarebbe male.............se ti va di perderci del tempo per farlo fallo pure:)
 
Prova a cercare xvol ed aggiungere le medie mobili ( settabili) nello spazio separato e riservato all' indicatore Poi magari fai aprire la posizione in automatico al cross bullish o bearish che sia.

xvol sulla mt4? Non è proprio la stessa cosa che usa one..... :(
 
Ma quella è un applicazione esterna alla MT4, non un EA... potrei replicare le singole funzioni con degli script, se ti interessa

:mmmm:

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

http://www.activtrades.it/documents/it_IT/SmartOrderDocumentation.pdf

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
 
IO AVREI QCOSA DA FARTI SCRIVERE gentile scrivano!! solo che servirebbe un pò di privacyy sai com'è!!
 
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!
 
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.
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);
  }
 
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.

 
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
 

Allegati

  • chevron_ewo.gif
    chevron_ewo.gif
    15,3 KB · Visite: 95
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:
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.
 
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:
Indietro