[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 705
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Так понятно, смотрю в книгу и не вижу, работает спасибо! Иду дальше) с вопросами. Все о тех же глобальных переменных. Вот добавил я в индикатор следующее условие:
Хочу определить какой глобальной переменной присваивать значение, в зависимости от того на какой валюте стоит индикатор.
я так понимаю в глоб перем GlobalVariableSet(valuta,param), имя (valuta) должно содержать значение присвоеное ему выше
в коде эксперта снова вызываю глобальную переменную
string valuta="valuta";
int i= GlobalVariableGet(valuta); // но значения не получаю,.... тоесть получаю 0. Может быть так нельзя менять имя глобальной переменной?
непонятно.. если в советнике производится проверка сохраненного индикатором значения, то логично было бы предположить, что в советнике же значение параметра valuta должно соответствовать названию инструмента, т.е. EURUSD или GBPUSD..
соответственно, если советник проверяет значение по текущем инструменту, то
string valuta= Symbol();
int i= GlobalVariableGet(valuta);Для начала из справки
Возвращает значение существующей глобальной переменной или 0 в случае ошибки. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().
Вы видите содержимое GV,но не можете его получить?
Ну в глобальных переменных отображается и имя и значение,.... Просто нельзя получается получить значение глобальной переменной в моем коде через (параметр-имя) глобальной переменной, приходится указывать имя стринговое, тогда проблемм нет все находит.
Ну в глобальных переменных отображается и имя и значение,.... Просто нельзя получается получить значение глобальной переменной в моем коде через (параметр-имя) глобальной переменной, приходится указывать имя стринговое, тогда проблемм нет все находит.
Замените
if (symb==EUR) {valuta=EUR;}
на
if (symb=="EURUSD") {valuta="EUR";}
непонятно.. если в советнике производится проверка сохраненного индикатором значения, то логично было бы предположить, что в советнике же значение параметра valuta должно соответствовать названию инструмента, т.е. EURUSD или GBPUSD..
соответственно, если советник проверяет значение по текущем инструменту, то
string valuta= Symbol();
int i= GlobalVariableGet(valuta);Да так работает)) Все проще чем оно кажется )
Всем огромное СПАСИБО кто сюда заходит и помогает!
Друзья, подскажите где напортачил... Понять не могу. Данные с индикатора считываются, а дальше не работает. Найти не могу. Может кто подскажет, чего я не понимаю:
В журнале всегда выводит данные массива значений индюкатора, а вот дальше - стоп...
... только одна нулевая ячеечка... и только ноль... Помогите пжлст...
ивиняюсь ошибочка вышла .....вот оригинал
Одисей, если их нет, так нужно добавить :))
Друзья, подскажите где напортачил... Понять не могу. Данные с индикатора считываются, а дальше не работает. Найти не могу. Может кто подскажет, чего я не понимаю:
В журнале всегда выводит данные массива значений индюкатора, а вот дальше - стоп...
... только одна нулевая ячеечка... и только ноль... Помогите пжлст...
Артём, пока нашел первую ошибку:
Массивы PeakUP[] и PeakDN[], объявлены без заданного количества элементов, то есть вы создали их вообще без ячеек, а далее в коде пытаетесь в них что то записать, но так как они не содержат в себе элементов, естественно в них ничего не записывается, и в принте постоянно ноль. Так как вы не знаете сколько точно будет пиков и впадин, то рекомендую поступить так, динамически увеличивать количества элементов в этих массивах при поступлении новых данных, исправленные участки выделены красным.
функция ArraySize() возвращает общее количество элементов массива, но так как индексация начинается с нуля то фактическое количество элементов равно ArraySize() - 1.
...как сделать, или хотябы что в нем должно быть указано, для того чтобы он открывал ордера на других парах. несколько советников запускать не хочется ((
Артём, пока нашел первую ошибку:
Массивы PeakUP[] и PeakDN[], объявлены без заданного количества элементов, то есть вы создали их вообще без ячеек, а далее в коде пытаетесь в них что то записать, но так как они не содержат в себе элементов, естественно в них ничего не записывается, и в принте постоянно ноль. Так как вы не знаете сколько точно будет пиков и впадин, то рекомендую поступить так, динамически увеличивать количества элементов в этих массивах при поступлении новых данных, исправленные участки выделены красным.
функция ArraySize() возвращает общее количество элементов массива, но так как индексация начинается с нуля то фактическое количество элементов равно ArraySize() - 1.