Errori, bug, domande - pagina 814

 
paladin800:

Nei parametri esterni EA uso solo il parametro R = 1 o 2 o 12 o 13 (esempio semplice generale). È possibile controllare questo parametro in OnInit() e segnalare un errore se un cittadino inserisce un numero diverso per errore. Tuttavia, ci sono tipi ENUM_... per l'input. (es. ENUM_MA_METHOD), quando si può semplicemente selezionare un valore dalla finestra espansa.

Domanda. C'è un'opzione dove posso fare un tale costrutto, in modo che nei parametri esterni per analogia con l'ENUM_... appaiono solo ciò che il programmatore intendeva, senza bisogno di controllare OnInit(). Non l'ho trovato nella documentazione. In caso contrario, il desiderio è quello di fare una cosa del genere.

Anche ENUM.

enum MyLimitedType
  {  
   Адын = 1,
   Дыва = 2,
   Трынацать = 13,
   Читырныцыть = 14,
  };
Ho anche fatto uno sporco trucco usando doppi array ENUM con passi limitati (esempio qui), ma qui non posso fare a meno della conversione in OnInit(), ovviamente.
 
MetaDriver:

Anche ENUM.

Ho anche deciso di usare ENUM per creare array doppi con passi limitati (esempio qui), ma non si può fare a meno della conversione in OnInit(), ovviamente.
Qualcosa del genere! Grazie per il link, lo scoprirò da solo.
 
paladin800:
Come questo! Grazie per il link, lo scoprirò da solo.

Questo funziona anche per l'input:

enum MyLimitedType
  {  
   Адын = 1,// почти Адын 
   Дыва = 2,// совсем Дыва
   Трынацать = 13,// ++ Трынацать
   Читырныцыть = 14,// Читырныцыть.--
  };

Digitate il codice e richiamate la finestra, vedete come appaiono le opzioni enum.

Il codice userà le varianti enum e la finestra di input userà i commenti.

 

Ho un enum come questo:

enum ENUM_FIBO_LEVEL
  {
   O_0,  //0.0
   O_236,//0.236
   O_382,//0.382
   O_5,  //0.5
   O_618 //0.618
  };

ZY se alle opzioni di enumerazione non sono assegnati valori come MetaDriver allora i valori predefiniti saranno assegnati consecutivamente a partire da 0.

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

Questo funziona anche per l'input:

Digitate il codice e richiamate la finestra, vedete come appaiono le opzioni enum.

Il codice userà le varianti enum e la finestra di input userà i commenti.

Sì, confermate, funziona tutto. :)

paladino800:
Qualcosa del genere! Grazie per il link, lo cercherò io stesso.
Buona fortuna. Gli enum grandi (se necessario) cerco di generarli automaticamente, perché in primo luogo sono pigro, e in secondo luogo ci sono meno errori/tipi. In particolare, quegli enum, che sono stati generati da questi script (vedi trailer).
File:
 
Come sapere in OnTesterPass quali parametri sono stati usati per l'ottimizzazione? Vedo solo che questi parametri vengono restituiti all'inizio dei parametri dell' array della funzione FrameInputs, ma a che punto finiscono i parametri ottimizzati e iniziano i parametri costanti?
 
marketeer:
Come sapere in OnTesterPass quali parametri sono stati usati per l'ottimizzazione? Vedo solo che questi parametri vengono restituiti all'inizio dei parametri dell'array della funzione FrameInputs, ma a che punto finiscono i parametri ottimizzati e iniziano i parametri costanti?
Non capisco bene la domanda, ma posso suggerire una funzione utile - ParameterGetRange
 
Rosh:
Non capisco bene la domanda, ma posso suggerire una funzione utile - ParameterGetRange
Sì, va bene. Non ancora disponibile nella guida locale.
 
Come ho scoperto, gli stessi risultati di ottimizzazione troncati sono passati a OnTesterPass come alla scheda dei risultati di ottimizzazione. Speravo che almeno in questo modo sarebbe stato possibile ottenere la serie completa di dati. Quindi l'applicazione #459431 che giace nella SD è l'unica via d'uscita, se mai verrà fatta (e se lo farà, sarà probabilmente dopo il campionato, ahimè).
 

Potete dirmi perché si verifica un errore quando si ottiene l'handle di un indicatore, se il nome dell'indicatore da chiamare è contenuto in una variabile?

Cioè, non c'è nessun errore come questo:

handle=iCustom(_Symbol,tf_ind,"Name_Indicator",param_ind);

È così che otteniamo l'errore 4802 (l'indicatore non può essere creato):

string lnm_ind="Name_Indicator";
//---
handle=iCustom(_Symbol,tf_ind,lnm_ind,param_ind);
Motivazione: