Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2095

 
Alexey Smolyakov #:

Здравствуйте! Вопрос к специалистам.

Озадачился как сделать советник двуязычным: определил #define COUNTRY_LANG "Russian" и на этом построил функцию которая в зависимости от языка терминала возвращает строку либо на русском, либо на английском. Всё хорошо в теле советника - определения, комментарий, подсказки.

Но как сделать двуязычными названия параметров советника (extern bool param=true; //название параметра) - функцию отсюда не вызовешь. Подумал сделать два списка параметров - но как переключаться между списками в зависимости от языка терминала.

Что-то в голове шевельнулось когда перечитывал справку по #ifdef-#endif.

Может кто решил такую задачу, а то сейчас приходится компилировать два варианта советника с разными языками?

Как вы это представляете, первым пунктом стоит выбор языка, и по выбору языка, одному из пунктов вводных данных что то делается? Происходит выбор нужного коммента к инпут данным?

Так это точно не работает.

 
Alexey Smolyakov #:

В том то и дело, в этом запрете. Я тоже сразу такой вариант попробовал. Видимо надо колдовать с препроцессорами.

Я уже пытался это реализовать.

Единственный вариант - вызов меню настроек после запуска

 
Наверно есть ещё вариант. Более сложный, но теоретически это возможно. Мы можем настроечные переменные загнать в табличку на графике. Среди прочих ячеек можно сдлеать переключатель языков. Например, изначально стоит русский, если выбрать английский, то на следующем тике советник обновит данные таблицы в соответствии с парамтром языковой переменной.
 
Alexey Viktorov #:

Виталий, я не понял почему надо переключать график на D1. Чушь какая-то…

Простите, проморгал Ваш вопрос. Отвечаю. Неоднократно (да и вчера тоже) наблюдал ситуацию: работаешь несколько дней на М15, забылся. У меня есь такой же скрипт, который кидает 2 линии на хай/лоу предыдущегодня. И так же, как и выложенный, берёт цены хай/лоу с Д1 (знаю, что можно по другому). Ну так вот, забылся, кинул скрипт на график - линии встали не туда куда надо. Преключаешься на Д1 (хоть на секунду), затем снова на М15. Кидаешь скрипт на график повторно и вуаля - линии встали куда нужно.

Знаете, если бы не это, я бы не стал рекомендовать зайти на Д1 перед броском скрипта на график на любом таймфрейме. Увы, но это реальность. Раз на раз, почему-то не приходится.

 
Vitaly Murlenko #:

Простите, проморгал Ваш вопрос. Отвечаю. Неоднократно (да и вчера тоже) наблюдал ситуацию: работаешь несколько дней на М15, забылся. У меня есь такой же скрипт, который кидает 2 линии на хай/лоу предыдущегодня. И так же, как и выложенный, берёт цены хай/лоу с Д1 (знаю, что можно по другому). Ну так вот, забылся, кинул скрипт на график - линии всали не туда куда надо. Преключаешься на Д1 (хоть на секунду), затем снова на М15. Кидаешь скрипт на график повторно и вуаля - линии встали куда нужно.

Знаете, если бы не это, я бы не стал рекомендовать зайти на Д1 перед броском скрипта на график на любом таймфрейме. Увы, но это реальность. Раз на раз, почему-то не приходится.

А график обновить может? По сути вы обновляете данные м15.

 
Valeriy Yastremskiy #:

А график обновить может? По сути вы обновляете данные м15.

Нет. Кинул на М15. Встали не верно. Переключился на Д1. Вернулся на М15. Бросил скрипт по-новой. Запрос в коде идёт к таймфрейму Д1

 
Tretyakov Rostyslav #:

Пользуйтесь

Добрый день, Ростислав!

Судя по всему –

·         индикатор запрограммирован, возможно, на число месяца, а не на число дневных свечей.

·         Или индикатор не учитывает выходные дни

 

Сегодня, в понедельник, обнаружил, что:

·         Индикатор правильно просчитывает максимум за 3 прошедших дневных свечи и рисует вполне себе правильный уровень.

·         НО! Отрезок «рисует» только за одну предшествующую свечу, что, как мне представляется, стало следствием 2-х выходных дней.

·         А может быть причина в другом? Я, увы, полный «чайник» в этом вопросе

Вертикальная линия на скрине – это третья предшествующая свеча на D1

Подправьте, пожалуйста, индикатор.

И простите меня за доставленные Вам хлопоты. Но я так радовался вчера, а сегодня что-то стало грустно!

Спасибо!

Файлы:
 
Kedrov #:


Сегодня, в понедельник, обнаружил, что:


Я смотрю замучили вас уже…

Файлы:
 
Alexey Viktorov #:

Я смотрю замучили вас уже…

Это Вас замучили, Ростислав!

Простите за хлопоты!

Спасибо за отзывчивость!

И за индикатор!

Удачи Вам!

С уважением!

 
Alexey Viktorov #:

Я смотрю замучили вас уже…

Алексей!

Я явный перфекционист!

Точно замучил всех Вас уже, но хочется уж доделать до конца.

Поставил отображение на D1 и ниже, но индикатор отображается и на W1

Поставил отображение на М15 и ниже, но индикатор отображается на всех ТФ, в т.ч. и на W1

Залез в  индик предыдущей версии от Ростислава, т.к. эта версия нормально отображается в соответствии с регулировками.  Нашел в нем блок с Delete

 

//--- indicator buffers mapping

   ObjectsDeleteAll(0,"3_days_level_");

   limit=PERIOD_D1*4/_Period;

//---

и попытался воткнуть его в последнюю версию. Увы! Не все так просто. Не компилируется. Пишет, что «limit» - это явно лишнее.

Вот и пришлось опять идти к Вам.

Ещё чуть-чуть доделать осталось.

Пожалуйста!

Спасибо!

P.S. И простите, сразу не обратил внимание, что изменения внесли Вы, а не Ростислав! Спасибо Вам и всей дружной команде!
Файлы:
Причина обращения: