[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 414

 
inoy:

Il consulente non chiuderà un ordine in tempo se c'è un altro ordine sul simbolo aperto in un momento precedente all'ordine del consulente stesso.
ordine. Se l'ordine di qualcun altro è aperto più tardi o se non ci sono altri ordini, la funzione OrderClose funziona correttamente. Si prega di avvisare dove si trova l'errore


L'errore è che si prende solo l'ordine con indice 0 e non lo si cerca tra gli ordini aperti.
 
Roger:

l'errore è che si prende semplicemente un ordine con indice 0 invece di cercarlo tra gli ordini aperti.

Chiedo scusa, ma la situazione è simile in quella variante.
//---- закрытие позиции
if(OrdersTotal() > 0)
for(int i=OrdersTotal();i>=0;i--)
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol()==Symbol()&& OrderMagicNumber() == MagicNumber)
if ( iTime(Symbol(),0,0) >= OrderOpenTime()+SecondsClose )
if (OrderType() == OP_BUY)
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),NormalizeDouble((Ask - Bid) * Point,Digits), DodgerBlue);
Sarebbe così gentile da fornire la soluzione corretta al problema?
 
Avelox:

Come emettere un segnale acustico in un indicatore dalla seguente espressione:

se (num1 == 9) {
ObjectCreate(""+i, OBJ_TEXT, 0, Time[i+1],High[i+1]+10*Point );
ObjectSetText(""+i, ""+DoubleToStr(num1,0), 16, "Arial", RoyalBlue);

}

Se puoi essere più dettagliato di "Puoi usare OBJ_SICICOCI e guardare i dettagli nella documentazione di MQL4, ha tutto!

Sono riuscito a risolvere questo problema da solo:


ObjectCreate(""+i, OBJ_TEXT, 0, Time[i+1],High[i+1]+10*Point );
ObjectSetText(""+i, ""+DoubleToStr(num1,0), 18, "Arial", RoyalBlue);
PlaySound("havecall.wav"); }
 
inoy:

Chiedo scusa, ma in QUESTO scenario la situazione è simile. Sarebbe così gentile da fornire una soluzione adeguata al problema?

//---- закрытие позиции
if(OrdersTotal() > 0) 
{
  for(int i=OrdersTotal();i>=0;i--) 
  {
    OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
    if (OrderSymbol()==Symbol()&& OrderMagicNumber() == MagicNumber) 
    {
      if ( iTime(Symbol(),0,0) >= OrderOpenTime()+SecondsClose ) 
      {
         if (OrderType() == OP_BUY)
         {
            OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),NormalizeDouble((Ask - Bid) * Point,Digits), DodgerBlue);
         }
      }
   }
}
 

Bene, inoltre, sostituire

for(int i=OrdersTotal();i>=0;i--) 

a

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


И еще, не понял, что за элемент в функции (подчеркнуто красным)?

OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),NormalizeDouble((Ask - Bid) * Point,Digits), DodgerBlue);

 
 for ( Expression_1; ; Expression_2) // Nessuna condizione { // Parentesi graffa di apertura Blocco di operatori, // Il corpo del ciclo può consistere in ... che costituisce il corpo del ciclo //... di diversi operatori } // Parentesi graffa di chiusura

Puoi dirmi qual è una condizione per uscire da un ciclo come questo? O un ciclo come questo

 Per ( ; ; ) // Assente. Espressione e condizione { // Parentesi graffa di apertura Un blocco di operatori, // Il corpo di un ciclo può consistere di // ... diversi operatori che costituiscono il corpo del ciclo } // Parentesi graffa di chiusura
 
VladimirR:

Potete dirmi qual è la condizione per uscire da un tale ciclo? O uno di questi


break
 

Vinin, Roger - grazie, mi ha aiutato.

NormalizeDouble((Ask - Bid) * Point,Digits) è Slippage per i simboli con grandi spread, per esempio XAUUSD.

 
inoy:

Vinin, Roger - grazie, mi ha aiutato.

NormalizeDouble((Ask - Bid) * Point,Digits) è Slippage per i simboli con grandi spread, per esempio XAUUSD.


Quindi, potete immaginare che sia 0? In primo luogo, lo slittamento dovrebbe essere un numero intero positivo, in secondo luogo, la differenza dovrebbe essere divisa per Punto, non moltiplicata.
 
Signori, come "allenare" un EA a non fare trading di notte? Cioè il tempo terminale tra le 23 e le 02 ore (GMT)... Hour()>=2&Hour()<=23 non ha aiutato...