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

 

Buona giornata!

Il problema è sorto dal nulla, l'Expert Advisor funzionava, senza problemi, ma non appena ho inserito una nuova funzione (trailing stop), OrderSelect non ha funzionato in tutto il mio EA e l'errore 4051 ERR_INVALID_FUNCTION_PARAMVALUE - Valore non valido dei parametri della funzione. All'inizio non lo capivo, pensavo di aver cambiato qualcosa da qualche parte, ho rimosso il trailing stop e restituito tutto com'era, ma OrderSelect genera ancora un errore.

Ecco il codice, nel caso:

         for(int i = OrdersTotal(); i > 0; i--)
           {
            if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == true)
              {
               if(OrderType() == OP_SELL)
                 {
                  if(!OrderClose(OrderTicket(), Lots, Ask, slippage, clrRed))
                    {Print("Error Order Close SELL = ", GetLastError());}
                 }
              }
            else
              {Print("Error order select, try order close SELL = ", GetLastError());}
           }


 
Vitaliy Sendyaev:

Buona giornata!

Il problema è sorto dal nulla, l'Expert Advisor funzionava, senza problemi, ma non appena ho inserito una nuova funzione (trailing stop), OrderSelect non ha funzionato in tutto il mio EA e l'errore 4051 ERR_INVALID_FUNCTION_PARAMVALUE - Valore non valido dei parametri della funzione. All'inizio non lo capivo, pensavo di aver cambiato qualcosa da qualche parte, ho rimosso il trailing stop e restituito tutto com'era, ma OrderSelect genera ancora un errore.

Ecco il codice, nel caso:



Questo non è il codice completo. Molto probabilmente una parentesi è stata rimossa da qualche parte.
 
Vitaliy Sendyaev: OrderSelect genera l'errore 4051 ERR_INVALID_FUNCTION_PARAMVALUE - Valore non valido di un parametro di funzione

Ecco il codice nel caso: for(int i = OrdersTotal(); i > 0; i--)

abbiamo bisogno di for (int i = OrdersTotal() -1; i>=0; i--) gli ordini sono numerati partendo da zero, quindi il numero più grande è 1 meno del numero

 
STARIJ:

abbiamo bisogno di for (int i = OrdersTotal() -1; i>=0; i--) gli ordini sono numerati da zero e quindi il numero più alto è 1 meno del numero

Esattamente! Non avevo notato che... Ho bisogno di dormire di più


 
STARIJ:

Abbiamo bisogno che per (int i = OrdersTotal() -1; i>=0; i--) gli ordini sono numerati da zero e quindi il numero più alto è 1 meno del numero


Grazie!

 
Valerius:

Questo non è serio... Che cosa sono (input ed extern) per allora....

Cosa c'è di non serio? Hai fatto una domanda nel ramo del codice e hai ottenuto una risposta appropriata.
Bene, se non avete pensato di riavviare il terminale, vi è già stata data una risposta - servicedesk.

 
Valerius: Cosa devo fare se, per esempio, ho impostato le impostazioni nell'EA oggi, poi il giorno successivo alcune delle impostazioni sono vuote?

È difficile indovinare come hai fatto. Non voglio mostrarvi il codice dell'Expert Advisor, e sono troppo pigro per guardarlo tutto. Fate una copia con un nome diverso, cancellate tutto tranne i parametri e la funzione vuota OnTick (o Start ???). L'effetto è ancora presente? Mostra il codice risultante

 
Vitaliy Sendyaev: Grazie!

È stato utile? Come funzionava prima?

 

Mi dispiace, ma non capisco perché oncalculate dovrebbe passare i valori delle variabili predefinite se sono globali e anche disponibili

 
ijonhson:

Ciao, voglio fare un EA basato su un indicatore, ho copiato il codice dell'indicatore in ontick, mi mancano le variabili della funzione onCalculate, ho bisogno di ottenere tutto attraverso copytime copyhigh copylow, ecc. o c'è un modo più semplice e veloce?

iCustom al salvataggio

iCustom - Технические индикаторы - Справочник MQL4
iCustom - Технические индикаторы - Справочник MQL4
  • docs.mql4.com
[in] input-параметры пользовательского индикатора, разделенные запятыми. Тип и порядок следования параметров должен соответствовать. Если параметры не указаны, то будут использованы значения по умолчанию.