Значит что в буфере есть какая то цена, иначе цены в буфере нет.
Значение EMPTY_VALUE - "пустое" значение буфера, которое по умолчанию используют многие индикаторы, имеет значение DBL_MAX - а это очень больше нуля. Потому и спрашиваю.
Значение EMPTY_VALUE - "пустое" значение буфера, которое по умолчанию используют многие индикаторы, имеет значение DBL_MAX - а это очень больше нуля. Потому и спрашиваю.
так все уже готово, нужно только добавить запись/чтение
Этот код работает или должен работать? У меня расходится после извлечения из глобальной переменной с реальным ID. И если можно пример в виде индикатора. Спасибо.
inter78: Этот код работает или должен работать? У меня расходится после извлечения из глобальной переменной с реальным ID. И если можно пример в виде индикатора. Спасибо.
мой код, у меня работает, ваш код не вижу. пожалуйста)
ну, с глобальными переменными ничего сложного: - имя переменной будет префикс+символ+период, значение = айди чарта - при старте перебираем переменные со своим префиксом и сравниваем айди - если чарт не наш, проверяем наличие такого чарта, если чарта уже нет - удаляем переменную - если чарт наш - берем символ и период из имени, и тоже удаляем переменную (или перезаписываем заново)
В справке ничего не нашел что такое префикс переменной и зачем он нужен. Приведите пожалуйста пример как создать такую глобальную переменную.
Написано что ГПТ хранятся 4 недели, это даже если терминал выключать?
В справке ничего не нашел что такое префикс переменной и зачем он нужен. Приведите пожалуйста пример как создать такую глобальную переменную.
Написано что ГПТ хранятся 4 недели, это даже если терминал выключать?
про префикс, имел ввиду префикс в имени, чтобы можно было определить где своя переменная, где чужая, и по префиксу можно удалить сразу все переменные:
intGlobalVariablesDeleteAll(
string prefix_name=NULL, // все глобальные переменные, чьи имена начинаются с префикса datetime limit_data=0// все глобальные переменные, которые изменялись ранее ранее указанной даты
);
например:
string GV_prefix="ZZ_"; //префикс имени для всех своихstring prefix_gv=GV_prefix+_Symbol+"_"+TFtoStr(ind_period)+"_"; //префикс имени для конкретного символа и периодаGlobalVariablesDeleteAll(prefix_gv); //удалить все переменные со своим префиксом //создание и запись глобальных переменных в циклеint num=0;
for(int i=lines_all-1;i>=end;i--)
{
string name=prefix_gv+"Price_"+IntegerToString(num,4,'0');
if (GlobalVariableCheck(name) || GlobalVariableTemp(name))
GlobalVariableSet(name, Line_ALL[i].price);
name=prefix_gv+"TimeBeg_"+IntegerToString(num,4,'0');
if (GlobalVariableCheck(name) || GlobalVariableTemp(name))
GlobalVariableSet(name, Line_ALL[i].time_start);
name=prefix_gv+"TimeEnd_"+IntegerToString(num,4,'0');
if (GlobalVariableCheck(name) || GlobalVariableTemp(name))
GlobalVariableSet(name, Line_ALL[i].time_end);
name=prefix_gv+"Visible_"+IntegerToString(num,4,'0');
if (GlobalVariableCheck(name) || GlobalVariableTemp(name))
GlobalVariableSet(name, Line_ALL[i].visible);
name=prefix_gv+"Direction_"+IntegerToString(num,4,'0');
if (GlobalVariableCheck(name) || GlobalVariableTemp(name))
GlobalVariableSet(name, Line_ALL[i].direct);
num++;
}
пс. в имени тоже можно хранить/извлекать информацию
2. Что значит "больше нуля"?
Значит что в буфере есть какая то цена, иначе цены в буфере нет.
Что отображается в значениях буфера этого индикатора в окне данных?
Значит что в буфере есть какая то цена, иначе цены в буфере нет.
Значение EMPTY_VALUE - "пустое" значение буфера, которое по умолчанию используют многие индикаторы, имеет значение DBL_MAX - а это очень больше нуля. Потому и спрашиваю.
Попробуйте проверять if(M_A > 0 && M_A < EMPTY_VALUE)
Значение EMPTY_VALUE - "пустое" значение буфера, которое по умолчанию используют многие индикаторы, имеет значение DBL_MAX - а это очень больше нуля. Потому и спрашиваю.
Попробуйте проверять if(M_A > 0 && M_A < EMPTY_VALUE)
Сигналы так есть. Это и всё?
Так не будет алерта при старте но будет при появлении сигнала на баре во время которого присоединили индикатор?
Сомневаюсь, при инициализации, time уже равно времени открытия бара.
Как решать?
Сигналы так есть. Это и всё?
Так не будет алерта при старте но будет при появлении сигнала на баре во время которого присоединили индикатор?
Сомневаюсь, при инициализации, time уже равно времени открытия бара.
Как решать?
Убрать инициализацию time временем в OnInit()
так все уже готово, нужно только добавить запись/чтение
Этот код работает или должен работать? У меня расходится после извлечения из глобальной переменной с реальным ID. И если можно пример в виде индикатора. Спасибо.
мой код, у меня работает, ваш код не вижу.
пожалуйста)
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Любые вопросы новичков по MQL4, помощь и обсуждение по алгоритмам и кодам
Taras Slobodyanik, 2018.10.05 11:01
ну, с глобальными переменными ничего сложного:
- имя переменной будет префикс+символ+период, значение = айди чарта
- при старте перебираем переменные со своим префиксом и сравниваем айди
- если чарт не наш, проверяем наличие такого чарта, если чарта уже нет - удаляем переменную
- если чарт наш - берем символ и период из имени, и тоже удаляем переменную (или перезаписываем заново)
В справке ничего не нашел что такое префикс переменной и зачем он нужен. Приведите пожалуйста пример как создать такую глобальную переменную.
Написано что ГПТ хранятся 4 недели, это даже если терминал выключать?
В справке ничего не нашел что такое префикс переменной и зачем он нужен. Приведите пожалуйста пример как создать такую глобальную переменную.
Написано что ГПТ хранятся 4 недели, это даже если терминал выключать?
про префикс, имел ввиду префикс в имени, чтобы можно было определить где своя переменная, где чужая, и по префиксу можно удалить сразу все переменные:
например:
пс. в имени тоже можно хранить/извлекать информацию
Теперь понятно про что речь.
=имя переменной будет префикс+символ+период, значение = айди чарта
А зачем так сложно? Если требуется хранить только период, можно именем сделать айди чарта.
Теперь понятно про что речь.
=имя переменной будет префикс+символ+период, значение = айди чарта
А зачем так сложно? Если требуется хранить только период, можно именем сделать айди чарта.
я жеж для примера пишу)
если помнить символ ненужно, то да можно его не запоминать
если имя будет только айди чарта, то как удалять ненужные переменные?
(при частом использовании наберется куча переменных)
если без префикса - тоже самое, как удалять ненужные переменные?