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
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Accetti la politica del sito e le condizioni d’uso
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