Страница 1 из 1

EMAx - EMA вышестоящего таймфрейма на нижестоящем

Добавлено: 27 июн 2016, 10:39
evge
EMAx формирует линию экспоненциальной скользящей средней EMA по периоду вышестоящего таймфрейма на нижестоящих таймфреймах.

Автор
evge

Входящие параметры

Period - период вышестоящего таймфрейма EMA
TFd - нижестоящий таймфрейм в секундах (M5 = 5*60 = 300)
TFu - вышестоящий таймфрейм в секундах (M15 = 15*60 = 900, H1 = 1*60*60 = 3600 и т.д.)

Примеры работы

EMAx-01.png


Исходный код

Код: Выделить всё

function Initialize()
{
IndicatorName = "EMAx";
AddInput("Input", Inputs.Candle);
AddParameter("Period", 50, 300); // Период EMA для вышестоящего таймфрейма
AddParameter("TFd", 300); // Нижестоящий таймфрейм в секундах (M5 = 5*60 = 300)
AddParameter("TFu", 900); // Вышестоящий таймфрейм в секундах (M15 = 15*60 = 900, H1 = 1*60*60 = 3600 и т.д.)
PriceStudy = true;
AddSeries("EMAx", DrawAs.Line, Color.Blue);
}

function Evaluate()
{
// evge 27.06.2016 http://alfadirect4.ru

if (CurrentIndex == 0)
{
EMAx = Input.Close[0];
}
else
{
EMAx = EMAx[-1];
if ( BarTime().Hours != BarTime(-1).Hours )
{
EMAx = EMA(Input.Close, TFu / TFd * Period)[1];
}
}
}


Скачать исходный текст

EMAx.zip
(919 байт) 1282 скачивания

Re: EMAx - EMA вышестоящего таймфрейма на нижестоящем

Добавлено: 27 июн 2016, 12:06
evge
тут есть слабое звено

AddParameter("Period", 50, 300); // Период EMA для вышестоящего таймфрейма

т.е. тут подгружается история = 50 * 300, а это 15000 баров.

можно конечно уменьшать это значение (300 на более меньшее) в исходном коде, но тогда для далеко стоящих ТФ друг от друга в секундах, не будет загружена вся необходимая история для построения.

для загрузки большой истории потребуется много ресурсов и АД4 может начать плохо себя вести :)

Re: EMAx - EMA вышестоящего таймфрейма на нижестоящем

Добавлено: 27 июн 2016, 13:46
evge
Проще просто построить скользящую на нижестоящем периоде с периодом пересчитанным для вышестоящего ТФ

Re: EMAx - EMA вышестоящего таймфрейма на нижестоящем

Добавлено: 27 июл 2016, 14:15
naum
С EHMA можете так же помочь