Boeing747 Благодарю. Надо было сразу сюда написать.
Таким образом конечный вариант функции в моей редакции выглядит так
double ATR_Max() { int i; double m; while( i < WindowBarsPerChart() - p ) { double a = iATR( NULL, 0, p, i ); if ( m < a ) { m = a; } i++; } Alert( " Максимальное значение ATR для видимого количества баров равно - ", m ); return(m); }
Boeing747 Благодарю. Надо было сразу сюда написать.
Таким образом конечный вариант функции в моей редакции выглядит так
double ATR_Max() { int i; double m; while( i < WindowBarsPerChart() - p ) { double a = iATR( NULL, 0, p, i ); if ( m < a ) { m = a; } i++; } Alert( " Максимальное значение ATR для видимого количества баров равно - ", m ); return(m); }
я ошибся видать в записи while( i < WindowBarsChart() - p )
скорей всего функция iATR( NULL, 0, p, i ); вычисляет значения для всех баров на чарте и можно а возможно и нужно
исправить на while( i < WindowBarsChart() ). Никогда не работал с функцией iATR(); нужно поэксперементировать как нибудь.
В принципе можно написать вашу функцию без использования функции iATR() так сказать в чистом виде .
я ошибся видать в записи while( i < WindowBarsChart() - p )
скорей всего функция iATR( NULL, 0, p, i ); вычисляет значения для всех баров на чарте и можно а возможно и нужно
исправить на while( i < WindowBarsChart() ). Никогда не работал с функцией iATR(); нужно поэксперементировать как нибудь.
В принципе можно написать вашу функцию без использования функции iATR() так сказать в чистом виде .
Я сейчас тоже подумал, что период кажись тут не причем. Его наверное лучше убрать.
А через массив нельзя это сделать? Собрать в массив значения всех АТР в окне а потом найти максимум через вот такую функцию - ArrayMaximum Только боюсь моих знаний на это не хватит.
Я сейчас тоже подумал, что период кажись тут не причем. Его наверное лучше убрать.
А через массив нельзя это сделать? Собрать в массив значения всех АТР в окне а потом найти максимум через вот такую функцию - ArrayMaximum Только боюсь моих знаний на это не хватит.
Да можно прокрутить iATR(); в цикле забив ею масивы а потом при помощи ArrayMaximum извлечь максимальное значение ATR. но все равно получается масло масляного так как все равно специально для этого нужно использовать цикл для набивки массивов как и в первом варианте . но в первом варианте максимум вычислялся в процессе прокрутки цикла что значительно экономнее чем с вариантом ArrayMaximum. Тут и знаний то особых не нужно. в учебнике или в справочнике подробно рассписано про ArrayMaximum/
Boeing747 : Да можно прокрутить iATR(); в цикле забив ею масивы а потом при помощи ArrayMaximum извлечь максимальное значение ATR. но все равно получается масло масляного так как все равно специально для этого нужно использовать цикл для набивки массивов как и в первом варианте . но в первом варианте максимум вычислялся в процессе прокрутки цикла что значительно экономнее чем с вариантом ArrayMaximum. Тут и знаний то особых не нужно. в учебнике или в справочнике подробно рассписано про ArrayMaximum/
Спасибо завтра попробую проверить работу. Еще один вопрос, как можно в этой функции сэкономить ресурсы тестера, чтобы максимальное значение вычислялось после появления нового бара а не с каждым тиком?
Спасибо завтра попробую проверить работу. Еще один вопрос, как можно в этой функции сэкономить ресурсы тестера, чтобы максимальное значение вычислялось после появления нового бара а не с каждым тиком?
можно поробовать для начала так
на глобальном уровне объявляем t
и поверх цикла пишем так;
if ( t != Time[0] )
{
t = Time[0];
// цикл где вычисляется ATRmax
}
таким образом вычисления в цикле будут производится единожды на открытии нового бара. возможно есть и другие более хитрые варианты..
Boeing747, dr.Vasgenich, ребята, слабо воспользоваться кнопкой "SRC" или вам и так нормально?
Все время забываю пользоваться кнопкой "SRC". видать в привычку уже вошло. в 60 лет трудно переучиваться . завтра поробую воспользоваться вашей кнопкой
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Помогите написать функцию, которая возвращает максимальное значение ATR среди баров видимых в окне. Перерыл весь инет, не мог найти похожее.
Спасибо,
Помогите написать функцию, которая получает максимальное значение ATR среди баров видимых в окне. Перерыл весь инет, не мог найти похожее.
Спасибо,
/
extern int p = 4; // период ATR
//------
int start()
{
int i;
double m;
while( i < WindowBarsPerChart() - p )
{
double a = iATR( NULL, 0, p, i );
if ( m < a )
{
m = a;
}
i++;
}
Alert( " Максимальное значение ATR в пипсах для видимого количества баров равно ", m / Point ); //
/////
return(0);
}
Boeing747 Благодарю. Надо было сразу сюда написать.
Таким образом конечный вариант функции в моей редакции выглядит так
double ATR_Max() {
int i;
double m;
while( i < WindowBarsPerChart() - p ) {
double a = iATR( NULL, 0, p, i );
if ( m < a ) {
m = a;
}
i++;
}
Alert( " Максимальное значение ATR для видимого количества баров равно - ", m );
return(m);
}
Boeing747 Благодарю. Надо было сразу сюда написать.
Таким образом конечный вариант функции в моей редакции выглядит так
double ATR_Max() {
int i;
double m;
while( i < WindowBarsPerChart() - p ) {
double a = iATR( NULL, 0, p, i );
if ( m < a ) {
m = a;
}
i++;
}
Alert( " Максимальное значение ATR для видимого количества баров равно - ", m );
return(m);
}
я ошибся видать в записи while( i < WindowBarsChart() - p )
скорей всего функция iATR( NULL, 0, p, i ); вычисляет значения для всех баров на чарте и можно а возможно и нужно
исправить на while( i < WindowBarsChart() ). Никогда не работал с функцией iATR(); нужно поэксперементировать как нибудь.
В принципе можно написать вашу функцию без использования функции iATR() так сказать в чистом виде .
я ошибся видать в записи while( i < WindowBarsChart() - p )
скорей всего функция iATR( NULL, 0, p, i ); вычисляет значения для всех баров на чарте и можно а возможно и нужно
исправить на while( i < WindowBarsChart() ). Никогда не работал с функцией iATR(); нужно поэксперементировать как нибудь.
В принципе можно написать вашу функцию без использования функции iATR() так сказать в чистом виде .
Я сейчас тоже подумал, что период кажись тут не причем. Его наверное лучше убрать.
А через массив нельзя это сделать? Собрать в массив значения всех АТР в окне а потом найти максимум через вот такую функцию - ArrayMaximum Только боюсь моих знаний на это не хватит.
Я сейчас тоже подумал, что период кажись тут не причем. Его наверное лучше убрать.
А через массив нельзя это сделать? Собрать в массив значения всех АТР в окне а потом найти максимум через вот такую функцию - ArrayMaximum Только боюсь моих знаний на это не хватит.
Да можно прокрутить iATR(); в цикле забив ею масивы а потом при помощи ArrayMaximum извлечь максимальное значение ATR. но все равно получается масло масляного так как все равно специально для этого нужно использовать цикл для набивки массивов как и в первом варианте . но в первом варианте максимум вычислялся в процессе прокрутки цикла что значительно экономнее чем с вариантом ArrayMaximum. Тут и знаний то особых не нужно. в учебнике или в справочнике подробно рассписано про ArrayMaximum/
Спасибо завтра попробую проверить работу. Еще один вопрос, как можно в этой функции сэкономить ресурсы тестера, чтобы максимальное значение вычислялось после появления нового бара а не с каждым тиком?
Спасибо завтра попробую проверить работу. Еще один вопрос, как можно в этой функции сэкономить ресурсы тестера, чтобы максимальное значение вычислялось после появления нового бара а не с каждым тиком?
можно поробовать для начала так
на глобальном уровне объявляем t
и поверх цикла пишем так;
if ( t != Time[0] )
{
t = Time[0];
// цикл где вычисляется ATRmax
}
таким образом вычисления в цикле будут производится единожды на открытии нового бара. возможно есть и другие более хитрые варианты..
Boeing747, dr.Vasgenich, ребята, слабо воспользоваться кнопкой "SRC" или вам и так нормально?
Boeing747, dr.Vasgenich, ребята, слабо воспользоваться кнопкой "SRC" или вам и так нормально?