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

 

Ciao a tutti. Potete consigliarmi dove scrivere del bug in MT5 dopo l'aggiornamento di due settimane fa?


Il punto è questo. Quando ho una posizione aperta e passo il mouse su SL e TP, la finestra dei dati (la finestra che mostra il fatto di SL e TP) non viene visualizzata o si apre molto lentamente. Ho provato con diversi computer in diversi account. Sento che succede solo quando ho più di una finestra nel mio terminale. Non ho avuto questo problema prima.

Non sono sicuro di come usarlo e non sono sicuro di cosa farci.

File:
 
Artyom Trishkin:

Creare una nuova variabile globale. Impostare il valore del parametro di ingresso Inp_element_2542795 su di esso:

e sostituire l'intera voce della stringa Inp_element_2542795 con questa nuova variabile g_element_2542795 usando Ctrl + H

La domanda rimane sempre la stessa. L'EA sta lavorando per conto suo. Non sto capendo il punto in cui questa variabile globale aiuterà. Ho provato a cambiarlo ma il 400 rimane lo stesso. Ho provato a cambiare a 200, è costante a 200. Ma voglio che l'EA sia in grado di decidere quale punto deve essere applicato.

 
jaffer wilson :

La domanda rimane sempre la stessa. L'EA sta lavorando per conto suo. Non sto capendo il punto in cui questa variabile globale aiuterà. Ho provato a cambiarlo ma il 400 rimane lo stesso. Ho provato a cambiare a 200, è costante a 200. Ma voglio che l'EA sia in grado di decidere quale punto debba essere applicato.

Se volete che il consigliere cambi una variabile, allora dovrebbe cambiare la variabile g_element_2542795. Ottiene il valore della variabile Inp_element_2542795 all'inizializzazione, e poi nell'advisor potete cambiarlo come volete.

 

Perché non funziona così?

int massiv[OrdersTotal()];
 
igrok333:

Perché non funziona così?

Stroustrup e Ritchie hanno voluto così.
 
igrok333:

Perché non funziona?

Sarebbe sorprendente se fosse così.

 
igrok333:

Perché non funziona così?

L'uso di arrayresize funzionerà
 

Per favore aiutatemi, ho appena iniziato...
Come faccio a fare una determinazione della dimensione del lotto basata sulle condizioni? Ho scritto questo, ma non funziona.

double lot()
{
if((Ask <= L0a3) || (Ask <= L2a3) || (Ask <= L5a3) || (Ask <= L8a3) || (Bid >= L0b1) || (Bid > = L2b1) ||
(Bid >= L5b1) || (Bid >= L8b1))
lot=(NormalizeDouble(Lots, 2))

if((Ask <= L0a) || (Ask <= L2a) || (Ask <= L5a) || (Ask <= L8a) || (Bid >= L0b) || (Bid >= L2b) ||
(Bid >= L5b) || (Bid >= L8b))
lot=(NormalizeDouble((Lots*1.5), 2))

if((Ask <= L0a1) || (Ask <= L2a1) || (Ask <= L5a1) || (Ask <= L8a1) || (Bid >= L0b3) ||
(Offerta >= L2b3) || (Offerta >= L5b3) || (Offerta >= L8b3))
lot=(NormalizeDouble((Lots*2.5), 2));
return lot;
}

 
wolder1:

Per favore aiutatemi, ho appena iniziato...
Come faccio a fare una determinazione della dimensione del lotto basata sulle condizioni? Ho scritto questo ma qualcosa non funziona.

doppio lotto()
{
if((Ask <= L0a3) || (Ask <= L2a3) || (Ask <= L5a3) || (Ask <= L8a3) || (Bid >= L0b1) || (Bid >= L2b1) ||
(Offerta >= L5b1) || (Offerta >= L8b1))
lot=(NormalizeDouble(Lots, 2))

if((Ask <= L0a) || (Ask <= L2a) || (Ask <= L5a) || (Ask <= L8a) || (Bid >= L0b) || (Bid >= L2b) ||
(Offerta >= L5b) || (Offerta >= L8b))
lot=(NormalizeDouble((Lots*1.5), 2))

if((Ask <= L0a1) || (Ask <= L2a1) || (Ask <= L5a1) || (Ask <= L8a1) || (Bid >= L0b3) ||
(Offerta >= L2b3) || (Offerta >= L5b3) || (Offerta >= L8b3))
lot=(NormalizeDouble((Lots*2.5), 2))
lotto di ritorno;
}

hai una confusione su variabili e funzioni, se si tratta di una funzione, prova in questo modo:

inserire il codice con ALT + S

double _LOTS()
  {
   double lot=0;
   if((Ask <= L0a3) || (Ask <= L2a3) || (Ask <= L5a3) || (Ask <= L8a3) || (Bid >= L0b1) || (Bid > = L2b1) ||
      (Bid >= L5b1) || (Bid >= L8b1))
      {
       lot=(NormalizeDouble(Lots, 2));
       Print(" lot = ", lot); 
       return(lot);
      }
      
    if((Ask <= L0a) || (Ask <= L2a) || (Ask <= L5a) || (Ask <= L8a) || (Bid >= L0b) || (Bid >= L2b) ||
      (Bid >= L5b) || (Bid > = L8b))
      {
       lot=(NormalizeDouble((Lots*1.5), 2));
       Print(" lot = ", lot); 
       return(lot);
      }
     
    

   if((Ask <= L0a1) || (Ask <= L2a1) || (Ask <= L5a1) || (Ask <= L8a1) || (Bid >= L0b3) ||
      (Bid >= L2b3) || (Bid >= L5b3) || (Bid >= L8b3))      
      {
       lot=(NormalizeDouble((Lots*2.5), 2));
       Print(" lot = ", lot); 
       return(lot);
      }
  } 
 
Domanda semplice. Il gufo non si compila. C'è un errore alla fine del codice. + __FUNCSIG__
+ ": "+Market_Err_To_Str(errIndex)
+ "; biglietto d'ordine = " + (string)OrderTicket()
+ "; tipo di ordine = " + (string)OrderType()
+ "; ordine Stop Loss = " + DoubleToStr(OrderStopLoss(), Digits())
+ "; nuovo Stop Loss = " + DoubleToStr(newStopLoss, Digits())
+ "; Bid = " + DoubleToStr(Bid, Digits())
+ "; Ask = " + DoubleToStr(Ask, Digits())
);
}
}
lastSetNonlosTryTime = TimeLocal();
}


Lancia un errore di compilazione. Per favore aiutate se potete. Grazie!