Автор |
Сообщение |
Fastin
Зарегистрирован: 09.07.2010
Сообщения: 9
|
Здравствуйте!
Написал 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
|
В начало кода добавь
Код: |
SetBarsRequired(sbrAll, sbrAll);
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Fastin
Зарегистрирован: 09.07.2010
Сообщения: 9
|
|
Посмотреть профиль Отправить личное сообщение |
|
Nero Wolfe
Зарегистрирован: 17.03.2010
Сообщения: 174
|
Подниму старую тему...
Тут понадобилось мне написать расчет АТР, нашел эту тему, но не понимаю зачем тут цикл нужен?
Вроде должно быть вот так:
Код: |
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
|
Код: |
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
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|