Perché non mettere i parametri di input nella struttura? - pagina 4

 

Alexey Volchanskiy

A proposito, MQL5 ha un limite al numero di parametri di funzione?

Sembra che ci siano 64 parametri per funzione.

 
Alexey Volchanskiy:

Come si ottimizza? Non è la prima volta che lo chiedo e nessuno dice niente.


Questo è il punto - non lo fai. Significa che qualsiasi finestra personalizzata (DLL, GUI in MQL) distruggerà completamente l'ottimizzazione nativa. In casi estremi, dobbiamo aggiungere la nostra ottimizzazione all'interno dell'EA, che è un'altra bicicletta.

Il file ini è lo stesso. Come sia conveniente qui non è affatto chiaro. Almeno, non ho visto utenti semplici che modificano il file ini per cambiare i valori dei parametri di tuning.

 
Alexey Volchanskiy:

Mi sembra di aver scritto abbastanza chiaramente, ma lo ripeterò con un esempio. C'è un Expert Advisor, ha 100 parametri di input, tutti devono essere passati a un'istanza della classe dell'algoritmo, dove si svolge tutto il lavoro. Ci sono due modi:

  1. Rendere la funzione (o le funzioni) di parametrizzazione nella classe. Ora immaginate una funzione con 100 parametri. A proposito, c'è un limite al numero di parametri di funzione in MQL5?
  2. La classe è definita dopo le variabili di input, cioè sono visibili dall'EA. Lo svantaggio - meno flessibilità in caso di istanze multiple della classe. Il plus è la quantità minima di scrittura.

Quindi il problema è come passare le variabili di input all'istanza della classe dell'algoritmo

Allora hai capito bene.

// Begin: mqh-файл
class CLASS_EXPERT
{
public:  
  template <typename T>
  void Set( void );
};
// End: mqh-файл

input int inNum = 0;

struct INPUTS
{
  const int Num;
  
  INPUTS( void ) : Num(inNum)
  {
  }
};

CLASS_EXPERT Experts[10];

void OnInit()
{
  for (int i = ArraySize(Experts) - 1; i >= 0; i--)
    Experts[i].Set<INPUTS>();
}
 
Ihor Herasko:

Com'è possibile? Non capisco davvero come sia possibile. Conosco un trucco simile per gli script, ma non per gli Expert Advisor e gli indicatori.

ExpertLoader_Example.mq5 da qui.

Ihor Herasko:

Questo è il punto, non lo fa. Significa che qualsiasi finestra personalizzata (DLL, GUI in MQL) distruggerà completamente l'ottimizzazione standard. In casi estremi, dobbiamo aggiungere la nostra ottimizzazione all'interno dell'EA, che è un'altra bicicletta.

Il file ini è lo stesso. Come sia conveniente qui non è affatto chiaro. Almeno, non ho visto nessun utente semplice che modifica il file ini per cambiare i valori dei parametri di tuning.

https://www.mql5.com/ru/docs/optimization_frames/parametersetrange

Expert
Expert
  • voti: 16
  • 2017.08.28
  • fxsaber
  • www.mql5.com
Все остальные файлы на данной странице описания библиотеки являются ее примерами/сценариями применения и не нужны для работы самой библиотеки. Возможности Примеры К описанию прикреплены примеры/сценарии ее использования. ExpertsRemove.mq5 ExpertsReopen.mq5 ChartsClose.mq5 ExpertLoader_Example.mq5 ExpertsChange_Example.mq5 Это...
 

Puoi scrivere le variabili esterne in un file mqh e inserirlo.

 

Devo essere indietro con i tempi o andare nella direzione sbagliata,

Ho pensato che meno parametri di input ha un EA, meglio è.

Idealmente, secondo me, un EA non dovrebbe avere parametri di input(variabili di input).

Spiegatemi, cosa significa 100 parametri?

 
Sergey Chalyshev:

Devo essere indietro con i tempi o andare nella direzione sbagliata,

Ho pensato che meno parametri di input ha un EA, meglio è.

Idealmente, secondo me, un EA non dovrebbe avere parametri di input(variabili di input).

Per favore, spiegate qual è il senso di 100 parametri?


Solo per sperimentare.

 
Sergey Chalyshev:

Devo essere indietro con i tempi o andare nella direzione sbagliata,

Ho pensato che meno parametri di input ha un EA, meglio è.

Idealmente, secondo me, un EA non dovrebbe avere parametri di input(variabili di input).

Si prega di chiarire il significato di 100 parametri.


Questa domanda non viene discussa qui. Stiamo discutendo gli aspetti tecnici del passaggio dei parametri.

 
Dmitry Fedoseev:

È possibile scrivere variabili esterne in un file mqh e inserirlo.


Sto perdendo la testa, la gente mi ignora ostinatamente. Puoi anche scriverli in .mqh, che differenza facome passarli alla classe dell'algoritmo?

 
Alexey Volchanskiy:

Sto perdendo la testa, continuo a non essere ascoltato. Puoi anche usare .mqh, che differenza facome passarli alla classe dell'algoritmo?


Non è necessario passarle, le variabili globali sono disponibili così come sono.

Motivazione: