Domande da un "manichino" - pagina 155

 
input string Periods = "1 2 3 56 78 67";
 
TheXpert:
Interessante. Ma mi piacerebbe poter ottimizzare i periodi dal tester.
 
gpwr:
Interessante. Ma mi piacerebbe poter ottimizzare i periodi.
L'ottimizzazione sarebbe meglio farla su ogni strumento separatamente. Se è possibile, naturalmente.
 
gpwr:
Interessante. Ma sarebbe bello poter ottimizzare i periodi dal tester.

Allora dovete scrivere un enum, con tutte le opzioni possibili.

Gli enum possono essere commentati e i parametri mostreranno i commenti invece del valore dell'enum, come al solito.

enum ENUM_CUSTOM
{
 tf1_1_1,//1 1 1
 tf1_2_1,//1 2 1
 tf1_2_3,//1 2 3
 tf2_1_1,//2 1 1 
};

Per gli enum grandi, il corpo può essere riempito programmaticamente.

 
Urain:

Allora dovete scrivere un'enumerazione, con tutte le possibilità.

No, questo è goffo e ottuso.

Possiamo farlo allo stesso modo, con una stringa e solo il numero della corsa come parametro separato. Potremmo usare il numero della corsa e la stringa di ottimizzazione per ottenere i valori.

Ma in questo caso la genetica non funzionerà correttamente.

 
TheXpert:
L'ottimizzazione sarebbe più appropriata su ogni strumento separatamente. Se è possibile, naturalmente.
È comprensibile. Nel tester sceglierò solo i parametri con lo stesso indice (per esempio, MAPer[0], Trig[0], MaxPrice[0],MinPrice[0]) e ottimizzerò solo loro. Oh, gli sviluppatori avrebbero dovuto decidere di aggiungere questa caratteristica. Il compilatore non avrebbe trovato troppo difficile creare prima un array e poi scrivere i dati di input in esso. Qual è il problema qui? Perché gli array non sono ammessi come dati di input?
 
gpwr:
Questo è comprensibile. Nel tester sceglierò solo i parametri con lo stesso indice (per esempio, MAPer[0], Trig[0], MaxPrice[0],MinPrice[0]) e ottimizzerò solo loro. Oh, gli sviluppatori avrebbero dovuto decidere di aggiungere questa caratteristica. Il compilatore non avrebbe trovato troppo difficile creare prima un array e poi scrivere i dati di input in esso. Qual è il problema qui? Perché gli array non sono ammessi come dati di input?
Il problema è nella dimensione della ricerca del tester.
 

Ho iniziato a scrivere lo stesso MACD basato sulla fonte MACD ma basato sul LWMA (differenza tra LWMA corto e lungo e una linea di segnale basata sulla differenza).

L'ho sostituito a LinearWeightedMAOnBuffer ma ha un parametro formale "extra" weightsum. Sicuramente capisco che è una somma di pesi e capisco il significato, ma come posso generarlo programmaticamente?

Документация по MQL5: Основы языка / Переменные / Формальные параметры
Документация по MQL5: Основы языка / Переменные / Формальные параметры
  • www.mql5.com
Основы языка / Переменные / Формальные параметры - Документация по MQL5
 
progma137:

Ho iniziato a scrivere lo stesso MACD basato sulla fonte MACD ma basato sul LWMA (differenza tra LWMA corto e lungo e una linea di segnale basata sulla differenza).

L'ho sostituito con LinearWeightedMAOnBuffer ma ha un parametro formale "extra" weightsum. Dovrei certamente capire che è la somma dei pesi e capire il significato, ma come posso generarlo programmaticamente?

Non ha bisogno di essere generato. Dovete solo creare una variabile per la memorizzazione intermedia di questa somma di pesi, in modo da non dover ricalcolare i suoi valori ogni volta che la richiamate.

In questo modo, ad ogni chiamata il weightsum viene modificato, non completamente ricalcolato, il che velocizza notevolmente i calcoli

 
stringo:

Non ha bisogno di essere generato. Dovete solo creare una variabile per la memorizzazione intermedia di questa somma di pesi, in modo da non dover ricalcolare i suoi valori ogni volta che la richiamate.

In questo modo, alla prossima chiamata la somma dei pesi viene modificata, non completamente ricalcolata, il che accelera notevolmente i calcoli

Grazie. Ha funzionato, ho dichiarato questa variabile come una variabile globale.
Motivazione: