Ecco un'altra idea: eliminare i tre tipi di programma: "advisor", "indicatore", "script", e invece spuntate le seguenti caselle nelle impostazioni: "allow program to trade", "allow program to draw", "allow one-time run". E in questo modo, questo programma universale si trasformerà in un consigliere, o indicatore, o script.
Ecco il problema. IndicatorCreate(), l'indicatore può avere un parametro di tipo enum, è chiaro che dovremmo specificare il tipo int e il valore numerico, ma alcuni ENUM hanno valori così fantastici... Vorrei che MqlParam avesse il tipo - "EnumName", il suo valore è una stringa con un nome di variante, o semplicemente, se la variabile è enum, specificare il tipo TYPE_STRING, e il valore indica il nome della variante.
A proposito, l'indicatore può essere un indicatore acquistato, senza codice sorgente, con un enum personalizzato, non c'è modo di conoscere i valori numerici.
Integer: Un tale sconcerto. IndicatorCreate(), l'indicatore può avere un parametro di tipo enum, è chiaro che è necessario specificare il tipo int e il valore numerico, ma alcuni ENUM hanno valori così fantastici... Qui, in MqlParam sarebbe un tipo - "EnumName", il suo valore sarebbe una stringa con il nome della variante, o semplicemente, se la variabile è enum, specificare il tipo TYPE_STRING, e il valore sarebbe il nome della variante.
Dima, questo è impossibile: il nome della variante ENUM esiste solo prima della compilazione. È proprio come un nome di variabile. Solo il nome della variabile in runtime corrisponde all'indirizzo, mentre il nome della variabile enum corrisponde al valore int.
In altre parole: se non mappate voi stessi un valore ENUM (o int, qualunque cosa) in una stringa, il compilatore non lo farà automaticamente per voi.
// Anche se potessi, è molto sbagliato dal punto di vista razziale. ;)
Dima. Ho fatto delle ricerche... Perché non scrivi un reclamo al Service Desk? Hai tutte le ragioni per farlo. Il problema è puramente pratico, reale e - soprattutto - risolvibile da parte dello sviluppatore.
Base ideologica: l'indicatore che ha enum-type nelle istanti, ovviamente memorizza i nomi delle stringhe dei valori enum (per l'output nella finestra delle opzioni). Questo dà qualche speranza che Stringo si discosti dalle regole della "scrittura rigorosa" e faccia quello che vuoi, perché la meta-informazione necessaria (i possibili valori enum) nell'indicatore collegato esiste già e non stai chiedendo di aggiungere nulla di pericoloso al codice.
Un tale sconcerto. IndicatorCreate(), l'indicatore può avere un parametro di tipo enum, è chiaro che è necessario specificare il tipo int e il valore numerico, ma alcuni ENUM hanno valori così fantastici... Qui, in MqlParam sarebbe un tipo - "EnumName", il suo valore sarebbe una stringa con il nome della variante, o semplicemente, se la variabile è enum, specificare il tipo TYPE_STRING, e il valore sarebbe il nome della variante.
Dima, questo è impossibile: il nome della variante ENUM esiste solo prima della compilazione. È proprio come un nome di variabile. Solo il nome della variabile in runtime corrisponde all'indirizzo, mentre il nome della variabile enum corrisponde al valore int.
In altre parole: se non mappate voi stessi un valore ENUM (o int, qualunque cosa) in una stringa, il compilatore non lo farà automaticamente per voi.
// Anche se potessi, è molto sbagliato dal punto di vista razziale. ;)
A proposito, l'indicatore può essere acquistato, senza fonti, con enum personalizzati, non c'è modo di scoprire i valori numerici.
A proposito, l'indicatore può essere acquistato, senza fonti, con enum personalizzato, non c'è modo di scoprire i valori numerici.
Potete ottenere i valori dell'enum attraverso IndicatorParametrs().
Temo che questa funzione non restituisca la descrizione del tipo con una lista di tutti i possibili valori ENUM (nomi).
:)
Err... temo che la descrizione del tipo insieme a una lista di tutti i possibili valori ENUM (nomi) non saranno restituiti da questa funzione.
:)
Ho capito il succo dell'ideologia :)
Dima. Ho fatto delle ricerche... Perché non scrivi un reclamo al Service Desk? Hai tutte le ragioni per farlo. Il problema è puramente pratico, reale e - soprattutto - risolvibile da parte dello sviluppatore.
Base ideologica: l'indicatore che ha enum-type nelle istanti, ovviamente memorizza i nomi delle stringhe dei valori enum (per l'output nella finestra delle opzioni). Questo dà qualche speranza che Stringo si discosti dalle regole della "scrittura rigorosa" e faccia quello che vuoi, perché la meta-informazione necessaria (i possibili valori enum) nell'indicatore collegato esiste già e non stai chiedendo di aggiungere nulla di pericoloso al codice.
Beh, provateci.
// Non dimenticate di riferire sui risultati. :)