Programmazione MQL4, neofita, strategia break volatilità

Sezione dedicata a metatrader (ed altre piattaforme) ed al suo linguaggio di programmazione per il trading automatico
Rannanato
Messaggi: 11
Iscritto il: 27/02/2020, 12:33
Contatta:

Programmazione MQL4, neofita, strategia break volatilità

Messaggio da Rannanato »

Ciao a tutti, voglio chiedervi un aiuto.

Sto codificando questo expert che dovrebbe funzionare in questo modo.

Faccio la differenza tra max e min della candela 1 il risultato viene moltiplicato per 1.2(fattore che ho trovato per le operazioni long)

il risultato di questa operazione lo aggiungo al valore di apertura della candela corrente trovando cosi il livello di entrata per la mia posizione long, sottraendolo invece trovo il livello di entrata short.

Se riuscite ad aiutarmi è una buona strategia di break della volatilità, ne ho molte altre da presentarvi.

Ecco come l' ho pensata

Dichiaro la variabile Range in questo modo

double Range = High[1]-Low[1]*1.2; Questa funzione ritorna la differenza tra Max e Min moltiplicata per 1.2.


Adesso vorrei dire alla macchina di aprire un ordine (BuyStop) quando il prezzo raggiunge il mio livello di ingresso dato dal risultato della funzione
Range + Open di 0

Spiegatemi per favore come si fa, altrimenti distruggo il pc perché sto impazzendo. :no:



Grazie a tutti :)
Rannanato
Messaggi: 11
Iscritto il: 27/02/2020, 12:33
Contatta:

Trading System, neofita, strategia break volatilità

Messaggio da Rannanato »

Ciao a tutti, voglio chiedervi un aiuto, riposto anche qui se può essere d' aiuto anche ad altre persone

Sto codificando questo expert che dovrebbe funzionare in questo modo.

Facciamo la differenza tra max e min della candela(1) il risultato viene moltiplicato per 1.2(fattore che ho trovato e profitta molto bene)

il risultato di questa operazione viene sommato al valore di apertura della candela corrente(0) trovando cosi il livello di entrata per la posizione long, sottraendolo invece, trovo il livello di entrata short.

Se riuscite ad aiutarmi è una buona strategia di break della volatilità, ne ho molte altre da presentarvi.

Ecco come l' ho codificata:

Dichiaro la variabile Range.

double Range = High[1]-Low[1]*1.2; (Questa funzione ritorna la differenza tra Max e Min moltiplicata per 1.2.)


Adesso vorrei dire alla macchina di aprire un ordine quando il prezzo corrente raggiunge il mio livello di ingresso, dato dal risultato della funzione (Range+Open di 0)

Ecco come ho codificato

if( Ask> Range){
int ticket=OrderSend(Symbol(),OP_BUY,0.01,price,3,stoploss,takeprofit,0,0,0,clrGreen);
}

Così facendo però mi apre operazioni all' open di ogni candela e non al prezzo dato dalla funzione RANGE.

Allora ho provato in altro modo, ovvero inserendo nel Price al posto di bid o ask, la mia funzione Range ma mi ritorna l' errore 130/138.

Ho provato altre 1000 soluzioni ma niente.

Riuscite a schiarirmi le idee??

Grazie a tutti :)
Avatar utente
m1player
Messaggi: 102
Iscritto il: 08/07/2014, 21:54

Re: Programmazione MQL4, neofita, strategia break volatilità

Messaggio da m1player »

Ciao Rannanato, così come hai scritto Ask sarà sempre maggiore di range, Ask è un prezzo, range è la differenza tra due prezzi, verosimilmente pochi pips...
Rannanato
Messaggi: 11
Iscritto il: 27/02/2020, 12:33
Contatta:

Re: Programmazione MQL4, neofita, strategia break volatilità

Messaggio da Rannanato »

Certo, però codificando in questo modo:

if( Ask> Range){
int ticket=OrderSend(Symbol(),OP_BUY,0.01,price,3,stoploss,takeprofit,0,0,0,clrGreen);
}
mi apre ordini ad ogni Open e non al valore che ritorna dalla funzione come mai?
Avatar utente
m1player
Messaggi: 102
Iscritto il: 08/07/2014, 21:54

Re: Programmazione MQL4, neofita, strategia break volatilità

Messaggio da m1player »

Questo dipende da che controllo gestisce l'apertura degli ordini, io volevo solo farti notare che la condizione if che hai scritto è sempre TRUE, mentre potrebbe essere if(Ask>iOpen(Symbol(),Timeframe,0)+range)...
Rannanato
Messaggi: 11
Iscritto il: 27/02/2020, 12:33
Contatta:

Re: Programmazione MQL4, neofita, strategia break volatilità

Messaggio da Rannanato »

Grazie mille, ho capito. Un' altra domanda, cosa intendi per controllo che gestisce l' apertura?
Avatar utente
m1player
Messaggi: 102
Iscritto il: 08/07/2014, 21:54

Re: Programmazione MQL4, neofita, strategia break volatilità

Messaggio da m1player »

Mi riferivo ad un controllo che impedisca all'expert di aprire più posizioni di quante tu non voglia. Se l'expert gira da solo si può utilizzare tranquillamente OrdersTotal(), se l'expert è pensato per girare assieme ad altri si può utilizzare una funzione che valuti gli ordini con il magic number, se ti fa comodo te la posso allegare.
Avatar utente
m1player
Messaggi: 102
Iscritto il: 08/07/2014, 21:54

Re: Programmazione MQL4, neofita, strategia break volatilità

Messaggio da m1player »

Codice: Seleziona tutto

int CheckOrders()
   { 
   int total;
   int conta=0;
   int i;
   if(OrdersTotal()>0)  
    { 
    total = OrdersTotal();
       for(i=total-1;i>=0;i--)
       {
      if(!OrderSelect(i, SELECT_BY_POS)) 
     Print("OrderSelect returned the error of ",GetLastError());
      if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
      conta++;
       }  
    }
    return(conta);  
  }
Rannanato
Messaggi: 11
Iscritto il: 27/02/2020, 12:33
Contatta:

Re: Programmazione MQL4, neofita, strategia break volatilità

Messaggio da Rannanato »

Ciao M1 player, Sto ancora codificando la strategia, sono riuscito ad ottenere profitti, in 6 mesi la strategia ha fatto un profitto netto di 684.10€

Adesso voglio testarla su 10 anni per vedere il risultato.

Colgo l' occasione per chiederti un' altra cosa.

Se io volessi aprire un ordine a mercato ogni volta che il prezzo corrente rompe il più alto massimo di 8 barre come devo codificarlo?
Quale è la logica per codificarlo?
Puoi aiutarmi?

Ti ringrazio
Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti