Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 43
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Помогите написать функцию, которая возвращает максимальное значение 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" или вам и так нормально?