Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Если в этом смысле, то я сам руками его задаю в коде индюка, например,
double myValue = 1;
и меняю это значение на другое. Считайте что это флаг на бай и селл :-))
Зачем в дебри лезть.
а так намного интереснее жить. чтоб не скучно себе и другим. покой нам только снится
Так если индюк Ваш, добавьте в него шестую линию (со значениями -1, 0 или 1), а в советнике проверяйте значение iCustom(....,5,0). Зачем в дебри лезть.
Если правильно понял вашу идею, надо добавить в индюке SetIndexBuffer(5, myValue); и это myValue уже в Советнике считать через iCustom() ?Например, так выглядит код Советника:
double myValue = iCustom( ..., mode, 0); где mode = 5 ? Правильно понял ?
С уважением, Алексей
Привет...
1. Мне надо чтобы при возникновении сигнала в индюке, одно значение передавалось из индюка в советник и тот уже работал с ордерами.
2. На форумах почему-то обсуждается ситуация, когда советник вызывает индюк. А мне надо наоборот - при возникновении события в индюке передать значение в советник.
1. Сигналы индикатора, они же значения, они же - линии индикатора, хранятся в индикаторных буферах. Есть еще графические объекты, но их мы трогать не будем, это уже следующий уровень понимания. Индикатор ничего никуда не передает, он считает, заносит результаты в буферы и рисует линии по значениям буферов. Торговать индикатор не может.
Советник может торговать в паре с индикатором, используя его данные. Для этого советник может получить значения из любого индикаторного буфера с помощью функции iCustom и занести это значение в переменную советника соответствующего типа. Например: в переменной Var1 мы получим значение первого буфера индикатора Oracle.mq4 на нулевом баре.
Таким образом мы можем иметь в советнике "копии" всех восьми (0...7) буферов индикатора в соответствующих переменных.
2. Индикатор не вызывает советник. Это советник на каждом тике обновляет данные iCustom и значения переменных. То есть, в советнике всегда есть текущие данные буферов индикатора, и что-то специально вызывать или передавать нет необходимости.
Таким образом, мы имеем все данные индикатора в советнике и можем формировать из них торговые сигналы: пересечения линий, вход в зоны перекупленности, перепроданности и прочие идеи, возникшие в воспаленном воображении автора, и открывать по ним торговые ордера.
P.S.
Извините за занудство, болею, скучно мне...
Пробовал использовать:
1. Глобальные переменные. Не работает. Не передают. Может спец. настройки какие-то нужно сделать ?
Никаких проблем с их использованием нет, если правильно использовать.
Что именно у тебя не получилось? Давай выкладывай кусок кода. Разберём. И всё получится.
Чего-то ты неправильно делал с глобальными переменными. Они для того и существуют, чтоб между программами информацию передавать.
Никаких проблем с их использованием нет, если правильно использовать.
Что именно у тебя не получилось? Давай выкладывай кусок кода. Разберём. И всё получится.
Код был очень и очень простой:
в индюке пишу: GlobalVariableSet("myValue", 1);
в Советнике пишу:
double myValue = GlobalVariableGet("myValue");
MessageBox("myValue="+myValue); //вывод для проверки
И тишина.....никаких месаг нету :))
Код был очень и очень простой:
в индюке пишу: GlobalVariableSet("myValue", 1);
в Советнике пишу:
double myValue = GlobalVariableGet("myValue");
MessageBox("myValue="+myValue); //вывод для проверки
И тишина.....никаких месаг нету :))
Без контекста трудно понять загвоздку.
Пока сходу понятно, что проблема не в глобальных переменных (если конечно последовательность вызовов правильная).
Если МессаджБокс не вызывается - значит этот кусок кода вообще не выполняется.
А поширше кусок кода вырезать не слишком секретно будет? ;)