Domande di base ... - pagina 2

 

Cercherò di spiegarmi:

Supponiamo che io abbia 3 sistemi diversi:

il sistema 1 funziona meglio sul grafico EUR/USD 1M.

il sistema 2 funziona meglio sul grafico EUR/USD 5M.

il sistema 3 funziona meglio sul grafico EUR/USD 1H.

Ora voglio che il mio expert advisor apra 1 posizione per grafico e non di più. In altre parole, voglio aprire 1 posizione solo per il sistema 1, 1 posizione per il sistema 2 e 1 per il sistema 3.

La soluzione precedente che hai scritto limita 1 posizione per simbolo, e ora voglio limitare 1 posizione per tipo di grafico...

 

. In altre parole, voglio aprire 1 posizione solo per il sistema 1, 1 posizione per il sistema 2 e 1 per il sistema 3.

OK

allora lavorate con MAGIC Number per sistema

#property copyright "system 1"

#property link ""

#define MAGIC 01901

.

.

.

if ( ExistPosition() == False) {

OrderSend(Symbol(),op,Lots,pp,SLIPPAGE,ldStop,ldTake,lsComm,MAGIC,0,clOpen); // MAGIC = system 1

}

// if open 1 position only for system 1 MAGIC ?

bool ExistPosition() {

bool Exist=False;

for (int i=0; i<OrdersTotal(); i++) {

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {

if (OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC) Exist=True;

}

}

return(Exist);

}

puoi postare i tuoi sistemi?

 

10x!

Non ho un sistema specifico. Era solo un esempio.

Sono nuovo di metaTrader e questa era una domanda di base che avevo ...

Appena scriverò qualcosa di buono lo caricherò qui per i commenti...

 

Come fare in modo che l'ea faccia trading una volta per candela?

Mi stavo chiedendo se c'è un pezzo di codice che posso aggiungere a un EA in modo che scambi solo una volta per candela.

Grazie in anticipo

 
basza:
Mi stavo chiedendo se c'è un pezzo di codice che posso aggiungere a un EA in modo che scambi solo una volta per candela. Grazie in anticipo

statico datetime timeprev;

if(timeprev==Time[0]) {

return(0); //eseguire solo sulla nuova barra

} else if (timeprev==0) {

timeprev=Time[0]; //non fare nulla se appena aggiunto al grafico

return(0);

} else {

timeprev=Time[0];

// elabora la barra qui

}

 
ra300z:
statico datetime timeprev;

if(timeprev==Time[0]) {

return(0); //eseguire solo sulla nuova barra

} else if (timeprev==0) {

timeprev=Time[0]; //non fare nulla se appena aggiunto al grafico

return(0);

} else {

timeprev=Time[0];

// elaborazione della barra qui

}

Grazie ra300z

 

Visualizzare l'obiettivo percentuale?

Ciao

Sto cercando di visualizzare un obiettivo percentuale sotto forma di commento all'interno di un ea.

Ho questo pezzo di codice che visualizza il saldo corrente come commento:

"Obiettivo percentuale: " + Saldo del conto()"\n

All'inizio dell'ea ho il seguente:

extern int ProfitPercentage=25;

Ora quello che voglio fare è : AccountBalance * ProfitPercentage e visualizzare i risultati. es. $5675.69 * 25% = $1418.92 e visualizzare solo $1418.69.

Grazie in anticipo

 

ciao ragazzi....

1:come fare l'EA per scambiare solo un segnale a tempo...(quello che intendo è il codice)

per esempio ma cross EA... quando il ma cross up e con target 20 pip verrà chiuso ma quando il trend continuerà cercherà di aprire un altro trade dato che il fast ma è ancora sopra lo slow ma.it deve solo aprire un altro trade quando il ma cross down.

fast ma > slow ma = bisogno di un solo segnale di trading

fast ma < slow ma = anche bisogno di un solo segnale commerciale

2:c'è comunque la possibilità di mettere un ritardo sull'incrocio? So solo che pip seperation (qualunque cosa lo chiamino) significa che aspetterà forse 10-15 pip dopo l'incrocio per aprire solo un trade.

sono solo un principiante che cerca di imparare il linguaggio di mq4:)

 

Un modo sarebbe quello di fare in modo che l'EA guardi le letture storiche delle MA piuttosto che quelle attuali. In linea di principio sarebbe così:

// Recognise past crossing (up or down)

if ( fast( past+1 ) slow( past ) )

then cmd = OP_BUY;

else if ( fast( past+1 ) >= slow( past+1 ) && fast( past ) < slow( past ) )

then cmd = OP_SELL;

else return;

// If processing reaches this point, then a trade decision of either OP_BUY

// or OP_SELL has been made, due to recognising a supporting MA crossing

// at "past" number of bars in history.

// Limit to only one trade in a direction

static int last_trade = -1;

if ( last_trade == cmd ) return;

last_trade = cmd;

// If processing reaches this point, then this processing is the first time

// that the supporting MA crossing is recognised.

Che prenderebbe una decisione al numero "passato" di barre successive alla barra in cui si verifica l'incrocio, e permetterebbe un trade solo la prima volta che l'incrocio viene rilevato.

 

grazie fratello per il codice...