new-rena:
МТ4 или МТ5?
MT4?
if (a!=prev_a && b!=prev_b)
{... выполнить действие}
prev_a=a;
prev_b=b;
Возможно я не правильно написал, но то что после выполнения условия нужно дописать две строчки, как у меня и в условие добавить сравнение с предыдущим значением, это верно.
также нужно добавить в переменные
За предыдущее значение принимается значение прошлого тика
Вам так необходимо?
Можно немножко усложнить и принимать за предыдущее значение - значение, посчитанное на предыдущем баре.
double prev_a, prev_b;
int MIN;
//.................................
if (a!=prev_a || b!=prev_b)
{
//... выполнить действие
}
if (MIN!=TimeMinute(iTime(Symbol(),Period(),0)))
{
//запомним значения
prev_a=a;
prev_b=b;
}
MIN=TimeMinute(iTime(Symbol(),Period(),0));
if (a!=prev_a && b!=prev_b)
{... выполнить действие}
prev_a=a;
prev_b=b;
Возможно я не правильно написал, но то что после выполнения условия нужно дописать две строчки, как у меня и в условие добавить сравнение с предыдущим значением, это верно.
также нужно добавить в переменные
За предыдущее значение принимается значение прошлого тика
Можно немножко усложнить и принимать за предыдущее значение - значение, посчитанное на предыдущем баре.
Вам так необходимо?
в текущем варианте у меня выглядит вот так
int Cross (double a1, double a2)
{
int last= 0;
int current = 0;
if(a1>a2)current = 1; //up
if(a1<a2)current = 2; //down
if(current != last) //changed
{
last = current;
return (1);
}
else
{
return (0);
}
}
расположен в глобальной области и при использовании выскакивает (текущие переменные уже были объявлены в глобальной области) и выдает истину в любом значении, хотя на первый взгляд все правильно. Поэтому ищу ошибку. как привязать к барам пока еще не в курсе.
в текущем варианте у меня выглядит вот так
.............
расположен в глобальной области и при использовании выскакивает (текущие переменные уже были объявлены в глобальной области) и выдает истину в любом значении, хотя на первый взгляд все правильно. Поэтому ищу ошибку. как привязать к барам пока еще не в курсе.
Я дополнил свой пост, перечитайте выше
Как увязать сказанное Вами в первом посте и часть кода Вашей программы я не знаю.
Но ответ на первый Ваш пост у меня прозвучал.
В Вашем случае тест можно гонять "по ценам открытия", скорость тестирования будет выше.
Это же невозможно)
там только звуковой сигнал при изменении значений
Это же невозможно)
там только звуковой сигнал при изменении значений
Странно.
Анализируйте код советника.
Странно.
Анализируйте код советника.
я его еще не писал
взял алгоритм отсюда
https://www.mql5.com/ru/forum/58906
так как выше предоставленный выдает 0 в любом моделировании (не знаю почему)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
значение переменных внешнего индикатора a,b;
прошлое значение примем за 0
текущее значение (а=<b ||a>b);
на следующем тике (баре) текущее значение становится прошлым
если прошлое не равно текущему выполнить действие
3 проблемы
1) если данная операция будет внутри тика то сравниваться будут только текущие значения что приведет к истине в любом случае
2) если данная операция будет сравнивать 1 бар с 0 то как он будет уживаться с блоком потиковых операций где будут производится действия при истинном значении, или его стоит заменить на start();
3) как правильно записать сравнение?
Буду признателен за любые советы.