Автор |
Сообщение |
MrDrJOKER
Зарегистрирован: 22.06.2009
Сообщения: 489
|
ищу сабж.
скажем, есть фьючерс и я хочу посмотреть как в процентном соотношении цена на него в среднем менялась в течении определённого периода(например осени или года) за последние 5 лет.
может кто-то подсказать софнинки срециализированные, чтоб построить такое чудо? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Посмотри это. Там почти готовый код того, что надо. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
MrDrJOKER
Зарегистрирован: 22.06.2009
Сообщения: 489
|
000 писал(а): |
Посмотри это. Там почти готовый код того, что надо. |
только сейчас руки дошли, снова размяться в AFL и сразу такая задача.
спасибо за линк, но там не то усреднение, мне нужно сначала преобразовать в график изменения цены в процентах за каждый год в отдельности, а потом вывести среднее по всем результатам.
сейчас буду мучаться, так что не расслабляйтесь. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
MrDrJOKER
Зарегистрирован: 22.06.2009
Сообщения: 489
|
вот нарыл довольно неплохую реализацию в yahoo groups ами от чела под ником Mike.
Код: |
baseColor = colorDarkRed;
boundaryColor = colorLightGrey;
years = Param( "Years", 3, 1, 15, 1 );
newYear = Year() != Ref( Year(), -1 );
avgROC = 0;
// Create dynamic variables for each year (excluding current)
for ( y = 1; y <= years; y++ )
{
initialValue = ValueWhen( newYear, Close, y + 1 );
barValue = Ref( Close, -252 * y );
runningROC = ( ( barValue / initialValue ) - 1 ) * 100;
VarSet( "Year" + y, runningROC );
avgROC += runningROC;
}
avgROC /= years;
// Plot zero line
Plot( 0, "", boundaryColor, styleLine | StyleThick | StyleNoLabel );
// Plot vertical lines for new year markers
Plot( newYear, "", boundaryColor, styleHistogram | styleThick |
styleOwnScale | styleNoLabel );
// Plot current year with thick emphasis
initialValue = ValueWhen( newYear, Close, 1 );
barValue = Close;
runningROC = ( ( barValue / initialValue ) - 1 ) * 100;
Plot( runningROC, "ROC", baseColor, styleThick );
// Plot previous years with incrementing colors
titleStr = StrFormat( ", Bar %g, Current: %g, Initial: %g", BarIndex(),
barValue, initialValue );
titleStr += StrFormat( "\n" + EncodeColor( baseColor ) + "This year:
%2.1f%%", runningROC );
for ( y = 1; y <= years; y++ )
{
value = VarGet( "Year" + y );
titleStr += StrFormat( "\n" + EncodeColor( baseColor + y ) + y + "
year" + WriteIf( y > 1, "s", "" ) + " ago: %2.1f%%", value );
Plot( value, "" + y + " years ago", baseColor + y );
}
// Plot average as solid area
Plot( avgROC, "Avg.", baseColor + y, styleArea | styleNoLabel );
Title = NumToStr( DateTime(), formatDateTime ) + titleStr + StrFormat(
"\n" + EncodeColor( baseColor + y ) + "Average: %2.1f%%", avgROC );
|
p.s.: тут есть несколько иной, не такой гибкий вариант. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|