Список форумов AmiSite.ru AmiSite.ru
Форум по Ами
 FAQ  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Войти и проверить личные сообщения  •  Вход
 ATR через цикл Следующая тема
Предыдущая тема
Начать новую тему  Ответить на тему
Автор Сообщение
Fastin



Зарегистрирован: 09.07.2010
Сообщения: 9

СообщениеДобавлено: Чт Май 12, 2011 7:01 pm Ответить с цитатой Вернуться к началу

Здравствуйте!
Написал ATR через цикл, работает коряво. Если передвигать график, то значения меняются. Помогите, пожалуйста разобраться и исправить этот косяк.
Код:

Per = Param("Период ATR", 22,1,60, 1);

WiMA_[0]=C[0];
TR[0]=Max(Max(High[0] - Low[0], High[0] - Close[0]), Close[0]-Low[0]);
ATR_[0]=TR[0];

for(i = 1; i < BarCount; i++)
{
       if(i<Per)
         {
          ATR_[i] = Null;
          continue;
          }

       TR[i]=Max(Max(High[i] - Low[i], High[i] - Close[i-1]), Close[i-1]-Low[i]);
       WiMA_[i] = ( TR[i] + (per - 1) * WiMA_[i-1] ) / per;
       ATR_[i]=WiMA_[i];

}
Plot(ATR_, "ATR_", colorBlack, styleLine + styleThick+styleOwnScale);
_SECTION_END();

_SECTION_BEGIN("ATR1");
periods = Param( "Periods", 22, 1, 200, 1 );
Plot( ATR(periods), _DEFAULT_NAME(), ParamColor( "Color", colorCycle ), ParamStyle("Style") );
_SECTION_END();
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Чт Май 12, 2011 10:00 pm Ответить с цитатой Вернуться к началу

В начало кода добавь
Код:

SetBarsRequired(sbrAll, sbrAll);

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Fastin



Зарегистрирован: 09.07.2010
Сообщения: 9

СообщениеДобавлено: Пт Май 13, 2011 4:10 pm Ответить с цитатой Вернуться к началу

Спасибо!
Посмотреть профиль Отправить личное сообщение
Nero Wolfe



Зарегистрирован: 17.03.2010
Сообщения: 174

СообщениеДобавлено: Чт Авг 30, 2012 12:02 pm Ответить с цитатой Вернуться к началу

Подниму старую тему...
Тут понадобилось мне написать расчет АТР, нашел эту тему, но не понимаю зачем тут цикл нужен?
Вроде должно быть вот так:
Код:
Per = Param( "Period", 10, 1, 10, 1 );
TR = Max( Max( High - Low, abs( High - Ref( Close, -1 ))), abs( Low - Ref( Close, -1 ) ) );
MyATR = MA( TR, Per );
Plot( ATR( Per ) , "ATR", colorRed );
Plot( MyATR , "MyATR", colorBlue );

Но почему то не совпадают линии...
Какой алгоритм расчета АТР заложен в АМИ?

_________________
Если вас грызет совесть, выбейте ей зубы, и пусть она вас нежно обсасывает.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Чт Авг 30, 2012 8:47 pm Ответить с цитатой Вернуться к началу

Код:

Per = Param( "Period", 10, 1, 10, 1 );
TR = Max( Max( High - Low, abs( High - Ref( Close, -1 ))), abs( Low - Ref( Close, -1 ) ) );
MyATR = EMA( TR, Per*2 - 1 );
Plot( ATR( Per ) , "ATR", colorRed );
Plot( MyATR , "MyATR", colorBlue );

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



Следующая тема
Предыдущая тема
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы


Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Часовой пояс: GMT + 3

File Attachment © by Meik Sievertsen