Всем привет. Прошу подсказки, можно ли сделать ограниченный перечень параметров для внешнего параметра string в mql4.
Например, как в в индикаторе Moving Average метод МА можно выбирать из ограниченного набора: simple, exponential, smoothed...
Как такого же типа настройки сделать для пользовательских индикаторов и экспертов?
Используйте enum с комментариями.
Примеры есть
Теперь не могу найти доступных примеров для списка типа int...
Как в список значений подставить периоды графиков?
на код
enum Timeframe { a=30, // PERIOD_M30 b=60, // PERIOD_H1 c=240, // PERIOD_H4 d=1440 // PERIOD_D1 }; input Timeframe ltf=60; // Старший таймфрейм
компилятор матерится, и на
enum Timeframe { PERIOD_M30, PERIOD_H1, PERIOD_H4, PERIOD_D1 }; input Timeframe ltf=1; // Старший таймфрейм
тоже.
Если использовать
enum Timeframe {ENUM_TIMEFRAMES}; input Timeframe ltf=0; // Старший таймфрейм
во всплывающем списке появляется только одно значение
ENUM_TIMEFRAMES
компилятор матерится, и на
Какими словами-то ругается?
Этот код добавил в стандартный советник МА, все нормально и комилится и в окне параметров отображается.
enum Timeframe { a=30, // PERIOD_M30 b=60, // PERIOD_H1 c=240, // PERIOD_H4 d=1440 // PERIOD_D1 }; input Timeframe ltf=60; // Старший таймфрейм
Теперь не могу найти доступных примеров для списка типа int...
Как в список значений подставить периоды графиков?
на код
компилятор матерится, и на
тоже.
Если использовать
во всплывающем списке появляется только одно значение
Можно по разному сделать. Не торопитесь, пожалуйста. Тогда различные варианты сами составлять сможете.
Вот ещё из вариантов, помимо того, что выше у pu6ka. Это код тестового скрипта. При выводе на печать переведено в текстовый формат, чтоб при выводе на печать не цифрами период отобразился во вкладке "Эксперты" терминала. В общем, разберётесь сами:
#property version "1.00" #property strict #property script_show_inputs //--- #define TEST_PRINT_ONE(x) Print(__LINE__,", ",__FUNCTION__,", ",(#x)," = ",(x)) //--- input ENUM_TIMEFRAMES time_frames=PERIOD_CURRENT; //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { TEST_PRINT_ONE(EnumToString(time_frames)); } //+------------------------------------------------------------------+
Ещё наберите, например, в Справочнике к MetaEditor, во вкладке Указатель, слово enum - узнаете много-много интересного:
Ну и поиск по сайту вам поможет во многом.
Повторюсь - не торопитесь, пожалуйста.
Повторюсь - не торопитесь, пожалуйста.
Вот уж, действительно, Вы правы. Оказалось, объявил переменную ltf сначала как внешнюю, но простым числом, а потом ее же через список enum, а отсюда и ошибка компилятора "переменная уже определена", и паника с вопросом, "почему ничего не получается?"
Наверное, это самый важный совет! Спасибо!!
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Всем привет. Прошу подсказки, можно ли сделать ограниченный перечень параметров для внешнего параметра string в mql4.
Например, как в в индикаторе Moving Average метод МА можно выбирать из ограниченного набора: simple, exponential, smoothed...
Как такого же типа настройки сделать для пользовательских индикаторов и экспертов?