Discussione sull’articolo "Guida Step-By-Step alla scrittura di un Expert Advisor in MQL5 per Principianti" - pagina 10

[Eliminato]  
pisenysh:

in fase di compilazione dà un errore

il valore di ritorno di 'OrderSend' deve essere controllato my_first_ea.mq5 211 10

cosa potrebbe essere sbagliato?

Si tratta sicuramente di un errore?
 
pisenysh:

in fase di compilazione dà un errore

il valore di ritorno di 'OrderSend' deve essere controllato my_first_ea.mq5 211 10

cosa può essere sbagliato?

Il compilatore dice che è necessario elaborare il risultato dell'esecuzione della funzione di trading.
 

Salve, posso farle una domanda? L'Expert Advisor opera con una precisione fino ai secondi? Cioè, se ho bisogno di aprire e chiudere operazioni non solo in una certa ora e minuto, ma anche in un certo secondo?

 
Grenjohn:

Salve, posso farle una domanda? L'Expert Advisor opera con una precisione fino ai secondi? Cioè, se ho bisogno di aprire e chiudere operazioni non solo in una certa ora e minuto, ma anche in un certo secondo?

Un minuto è composto da cento secondi - quale vuoi?
 
server:
Un minuto è composto da cento secondi: quale vuoi?
E' negli annali ;)
 

Non capisco!? Un minuto è composto da 60 secondi. Ho programmato l'Expert Advisor per aprire una posizione ad esempio alle 12:30 e ho bisogno che si attivi a 45 secondi. Quando imposto 12:30 tutto funziona, l'operazione viene aperta, ma quando provo ad aggiungere secondi non funziona!!!?

 

Ecco il codice vero e proprio:

extern int tp = 1000;

extern int sl = 1000;
extern double Lotti = 0,01;
biglietto int;
int start()
{
if(OrdersTotal( )==0 && Hour ( )==23 && Minute ( )==02 && Seconds ( )==30)
{

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,0,Bid-sl*Point,Bid+tp*Point,"",123,0,Red);
}
if (OrdersTotal( )==1 && Hour( )==23 && Minute( )==03 && Seconds ( )==30))
{
OrderSelect(ticket ,SELECT_BY_TICKET,MODE_TRADES);
OrderClose(ticket,Lots,Bid,20,Green);
}
}
 
Grenjohn:

Ecco il codice vero e proprio:

extern int tp = 1000;

extern int sl = 1000;
extern double Lotti = 0,01;
biglietto int;
int start()
{
if(OrdersTotal( )==0 && Hour ( )==23 && Minute ( )==02 && Seconds ( )==30)
{

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,0,Bid-sl*Point,Bid+tp*Point,"",123,0,Red);
}
if (OrdersTotal( )==1 && Hour( )==23 && Minute( )==03 && Seconds ( )==30))
{
OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
OrderClose(ticket,Lots,Bid,20,Green);
}
}
Gy. Impostate il controllo Seconds() >= 30, perché un secondo può scivolare velocemente e durante questo non arriverà nemmeno un tick. PS È auspicabile che il codice venga stilizzato con lo stile del codice (pulsante SRC).
 
Sì, ora funziona, grazie mille! Il vero problema era la velocità del secondo, la spunta non aveva il tempo di passare attraverso di esso.
 

Potete dirmi di più per favore! È possibile aprire e chiudere posizioni in Expert Advisor, chiaramente in base al tempo in secondi, indipendentemente dai tick, come un normale timer. Cioè, se l'orologio segna 12:52:25, allora la posizione si apre e non aspetta un nuovo tick, così come la chiusura?