Scrivo EA gratis

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.
 

waterloo

" "
Registrato
28/5/00
Messaggi
9.430
Punti reazioni
297
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.
 

Robin84

Nuovo Utente
Registrato
27/5/08
Messaggi
1.990
Punti reazioni
51
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.
 

syson

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

ScemoPagliaccio

#anzicheno
Registrato
30/9/10
Messaggi
4.994
Punti reazioni
106
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.
 

sky1

any questions please
Registrato
14/1/11
Messaggi
5.069
Punti reazioni
1
conosci lo "smart order" di activtrades? riesci a replicarlo?
 

syson

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

looping

Nuovo Utente
Registrato
23/12/00
Messaggi
321
Punti reazioni
34
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?)
 

sky1

any questions please
Registrato
14/1/11
Messaggi
5.069
Punti reazioni
1
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:)
 

Roger3

Deciso e preciso...
Registrato
26/12/10
Messaggi
11.440
Punti reazioni
151
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..... :(
 

tetsuo

Nuovo Utente
Registrato
22/3/08
Messaggi
993
Punti reazioni
72
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
 

gasta

si sgomma a 3000!!!
Registrato
1/5/07
Messaggi
8.023
Punti reazioni
158
IO AVREI QCOSA DA FARTI SCRIVERE gentile scrivano!! solo che servirebbe un pò di privacyy sai com'è!!
 

Chevron

Nuovo Utente
Registrato
14/1/11
Messaggi
5
Punti reazioni
0
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!
 

syson

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

Chevron

Nuovo Utente
Registrato
14/1/11
Messaggi
5
Punti reazioni
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

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

civt

Nuovo Utente
Registrato
5/9/07
Messaggi
1.005
Punti reazioni
53
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:

syson

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

syson

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