Domande di base ...

 

Ciao

Voglio fare il seguente nel codice

'Non fare trading per 30 minuti dal mio ultimo trade'

Così se i miei indicatori indicano che dovrei aggiungere ancora al mio attuale trade, allora piazzo il trade nella stessa direzione solo se sono passati 30 minuti

Sto facendo quanto segue - questo codice non funziona ancora - è solo in fase di progettazione - non so come aggiungere 30 minuti al mio ultimo ordine

Questo è per un EA che lavora solo sulla coppia corrente

int start()

{

int cnt, ticket, total, stop1;

static datetime lasttime

total=OrdersTotal();

for(cnt=0;cnt<totale;cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

//Determina il tempo dell'ultimo OrderClose

if (OrderCloseTime > lasttime + 30)

{

lasttime = orderclosetime

}//if (OrderCloseTime)

}

Ora voglio dire

se (Curtime() > lasttime + 30 minuti)

{

Continua la negoziazione

}

aiuto pls

 

Mi sembra che vada bene, ma nel controllo dell'OrderCloseTime,

non vedo perché hai bisogno dei 30 minuti extra.

Se l'ultimo OrderCloseTime è più recente del precedente, allora dovrebbe essere lasttime.

 

se (Curtime() > lasttime + 30*60)

 

Domanda di base ...

Salve,

Sono nuovo di MetaTrader e ho una domanda di base:

Voglio limitare le posizioni aperte nel mio expert-advisor a solo 1 posizione alla volta - ma voglio questa limitazione per simbolo, quindi se eseguo un altro expert-advisor su un altro simbolo, si aprirà una nuova posizione su quel simbolo.

In altre parole, voglio essere in grado di aprire 1 posizione per tutti i simboli, ma non più di 1 posizione per un simbolo (e sto parlando di molti expert-advisor su molti simboli...)

Come posso farlo?

Ho visto la funzione"totaltrades", ma dalla documentazione ho capito che questa funzione si applica al conto e non al simbolo corrente,

quindi "if totaltrades=1 then exit;" causerà 1 posizione alla volta per tutti i simboli...

10X !

 

1 posizione per tutti i simboli

int total=OrdersTotal();

if(total<1)

{

.

.

.

}

 

Ma una posizione per un simbolo o per un grafico aperto?

 

beh, uno per grafico è il migliore...

Ma se non si può fare, allora va bene anche 1 per simbolo...

 

1 per simbolo

...

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

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

if (OrderSymbol()==Symbol() )

return(0);

....
 

Grande!

10 volte tanto!

 

E ti disturberò di nuovo... (:

Posso farlo anche per grafico?

Perché ho diversi sistemi per diversi intervalli di tempo grafici ...

 

Mi dispiace, non capisco