Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 455

 

Ciao!


Il robot apre e chiude gli ordini in base a determinati segnali, ma c'è bisogno di un ordine pendente da piazzare nella stessa direzione, ma solo uno, dopo che l'ordine è stato chiuso.

Cioè, dopo che l'ordine pendente è stato piazzato, attivato e chiuso, non deve succedere altro e il robot aspetta un segnale per aprire un ordine regolare.


Puoi dirmi come implementare questo?

 
Snower: Buona giornata!

Il robot apre e chiude gli ordini in base a certi segnali, quindi ho bisogno che il robot piazzi un ordine pendente nella stessa direzione, ma solo uno.

Cioè, dopo che l'ordine pendente è stato piazzato, attivato e chiuso, non deve succedere nient'altro, il robot sta aspettando un segnale per aprire un ordine normale.

Puoi dirmi come questo può essere implementato?

È molto semplice. In due cicli for si analizza 1) la storia degli ordini e 2) gli ordini in corso. In base all'analisi si capisce la situazione e si usano le dichiarazioni if condizionali per eseguire l'azione desiderata. o hai bisogno di più dettagli?

 
STARIJ:

È così semplice. In due cicli for, si analizza 1) la storia degli ordini e 2) gli ordini in corso. In base all'analisi, capisci la situazione e usi le istruzioni condizionali if per eseguire l'azione richiesta. o hai bisogno di più dettagli?

Vi sarei molto grato se poteste approfondire.

 
Snower: Vi sarei molto grato se poteste approfondire.

Quale parte vuoi che scriva, o tutta?

 
LRA:

Quale parte vuoi che scriva, o tutte?

i cicli stessi, gli if, posso impostare

 
Vladislav Andruschenko:
))) Lavoro da 10 anni e non ho mai avuto questi pensieri. Ti piacciono le situazioni difficili.

ora saranno

 

Qual è il problema con questo codice? A volte apre 1 trade, a volte 2?

Dovrei avere al massimo 1 trade per coppia, ma devo aver fatto casino da qualche parte


...
if(!Orderex(_Symbol))
{
   OrderSend(NULL,OP_SELL,lot,Bid,30,Bid+stop*Point,Bid-take*Point,NULL,magicf,0,clrRed);
}
...
bool Orderex(string symbol)
{
   for(int i=OrdersTotal(); i>0; i--)
      {
         OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
         if(OrderSymbol()==symbol && OrderMagicNumber()==magicf) return true;
      
      
      
      }


   return false;
}
 
Roman Sharanov:

Qual è il problema con questo codice? A volte apre 1 trade, a volte 2?

Dovrei avere al massimo 1 trade per coppia, ma devo aver fatto casino da qualche parte


for(int i=OrdersTotal()-1; i>=0; i--)
 
Konstantin Nikitin:

E ancora più interessante è questo

for(int i = OrdersTotal(); i-- >=0;)
 
Ahhhh, sì, l'account è da zero :)