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



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

СообщениеДобавлено: Сб Июл 26, 2008 1:38 pm Ответить с цитатой Вернуться к началу

Здравствуйте!

Решил протестировать торговую систему, основанную на динамических скользящих средних. Описание системы и реализация для Метасток находится здесь:
http://www.may.nnov.ru/mak/MT/7_74_79.pdf (485 кБайт).

Основа системы - EMA с переменным коэффициентом сглаживания.
Но я так и не смог запрограммировать EMA Sad

На просторах интернета нашёл описание EMA.
http://www.may.nnov.ru/mak/DSP/chEMA.shtml

Y[i] = Y[i-1] + (X[i] – Y[i-1]) * Alpha
где:
Y[i] - это значение EMA для бара i;
X[i] - это значение цены для бара i;
Alpha - это коэффициент сглаживания, обычно он равен 2/(N+1);
N - это период сглаживания.

Для начала попытался запрограммировать вычисление EMA, но результат никуда не годится. Sad
Код:

function FEMA( aPrc, Per )      // вычисление способом 1
{
   Alpha= 2/(Per+1);
   aEMA[0]=aPrc[0];
   for(i = Per; i<BarCount; i++) {
      aEMA[i]=aEMA[i-1] + ( aPrc[i] + aEMA[i-1] ) * Alpha;
   }
   return aEMA;
}

// порядок сглаживания
n=10;

// вычисление EMA способом 1
lEMA_1=FEMA( C, n );   

// вычисление EMA способом 2
lEMA_2=C;               
Alpha= 2/(n+1);
lEMA_2 = Ref(lEMA_2,-1) + ( C + Ref(lEMA_2,-1) ) * Alpha;

// настоящее EMA
lEMA = EMA( C, n );


Plot( lEMA_1, "EMA_1", ParamColor( "EMA_1_Color", colorCycle ), ParamStyle("EMA_1_Style") );
Plot( lEMA_2, "EMA_2", ParamColor( "EMA_2_Color", colorCycle ), ParamStyle("EMA_2_Style") );
Plot( lEMA, "EMA", ParamColor( "EMA_Color", colorCycle ), ParamStyle("EMA_Style") );


Подскажите, где моя ошибка.
Посмотреть профиль Отправить личное сообщение
DStar



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

СообщениеДобавлено: Сб Июл 26, 2008 1:59 pm Ответить с цитатой Вернуться к началу

Вопрос снят!
Оказывается, что адаптивная скользящая средняя - это встроенная функция! Называется AMA().
Embarassed
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen