Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Да, просто добавьте 2 x ATR
Привет, Младен,
Как вы думаете, возможно ли сделать Adaptive Hull Moving Average V2 ????
Десятичный период, кажется, работает.
С уважением,Hull основан на LWMA, а так как LWMA основан строго на барах, он не будет таким плавным в изменениях, как, например, EMA (подпериоды 3 LWMA, рассчитанные для получения HULL, должны быть целыми значениями). Если мы заменим LWMA в HULL на EMA, возможно, стоит попробовать (и если мы избежим округлениявычисленных подпериодов). Правда, тогда это будет уже не HULL, но, возможно, это будет хороший вариант, и тогда он будет идеально подходить для адаптации.
Hull основан на LWMA, а так как LWMA основан строго на барах, он не будет так плавно меняться, как, например, EMA (подпериоды 3 LWMA, рассчитанные для получения HULL, должны быть целыми значениями). Если мы заменим LWMA в HULL на EMA, возможно, стоит попробовать (и если мы избежим округления вычисленных подпериодов). Правда, тогда это будет уже не HULL, но, возможно, это будет хороший вариант, и тогда он будет идеально подходить для адаптации
Спасибо, я попробую сделать с Ema.
Спасибо, я попробую сделать с Ema.
Только не используйте для этого встроенную функцию iMA(), поскольку она округляет периоды до целочисленных значений.
Используйте эту функцию (или что-то подобное) :
//
//------------------------------------------------------------------
//
//
//
//
//
double workEma[][3];
double iEma(double price, double period, int r, int instanceNo=0)
{
if (ArrayRange(workEma,0)!= Bars) ArrayResize(workEma,Bars); r = Bars-r-1;
//
//
//
//
//
double alpha = 2.0 / (1.0+period);
workEma[r] = workEma[r-1]+alpha*(price-workEma[r-1]);
return(workEma[r]);
}
в 3 разных экземплярах расчета. Параметры просты: цена, период, индекс и номер экземпляра.
Только не используйте для этого встроенную функцию iMA(), поскольку она округляет периоды до целочисленных значений.
Используйте эту функцию (или что-то подобное) :
//
//------------------------------------------------------------------
//
//
//
//
//
double workEma[][3];
double iEma(double price, double period, int r, int instanceNo=0)
{
if (ArrayRange(workEma,0)!= Bars) ArrayResize(workEma,Bars); r = Bars-r-1;
//
//
//
//
//
double alpha = 2.0 / (1.0+period);
workEma[r] = workEma[r-1]+alpha*(price-workEma[r-1]);
return(workEma[r]);
}
Я должен удалить и вставить здесь ?
double iT3(double price, double period, double hot, bool clean, int i, int instanceNo=0)
{
if (ArrayRange(workT3,0) !=Bars) ArrayResize(workT3,Bars);
if (ArrayRange(workT3Coeffs,0) < (instanceNo+1)) ArrayResize(workT3Coeffs,instanceNo+1);
if (workT3Coeffs[_period] != period)
{
workT3Coeffs[_period] = period;
double a = hot;
workT3Coeffs[_c1] = -a*a*a;
workT3Coeffs[_c2] = 3*a*a+3*a*a*a;
workT3Coeffs[_c3] = -6*a*a-3*a-3*a*a*a;
workT3Coeffs[_c4] = 1+3*a+a*a*a+3*a*a;
если (чисто)
workT3Coeffs[_alpha] = 2.0/(2.0 + (период-1.0)/2.0);
else workT3Coeffs[_alpha] = (MathCos(2*Pi/period)+MathSin(2*Pi/period)-1)/MathCos(2*Pi/period);
}
Я должен удалить и вставить здесь ???
double iT3(double price, double period, double hot, bool clean, int i, int instanceNo=0)
{
if (ArrayRange(workT3,0) !=Bars) ArrayResize(workT3,Bars);
if (ArrayRange(workT3Coeffs,0) < (instanceNo+1)) ArrayResize(workT3Coeffs,instanceNo+1);
if (workT3Coeffs[_period] != period)
{
workT3Coeffs[_period] = period;
double a = hot;
workT3Coeffs[_c1] = -a*a*a;
workT3Coeffs[_c2] = 3*a*a+3*a*a*a;
workT3Coeffs[_c3] = -6*a*a-3*a-3*a*a*a;
workT3Coeffs[_c4] = 1+3*a+a*a*a+3*a*a;
если (чисто)
workT3Coeffs[_alpha] = 2.0/(2.0 + (период-1.0)/2.0);
else workT3Coeffs[_alpha] = (MathCos(2*Pi/period)+MathSin(2*Pi/period)-1)/MathCos(2*Pi/period);
}sohocool
Один вариант того, как это можно сделать (который все еще не является адаптивной версией), опубликован здесь: https: //www.mql5.com/en/forum/174961/page10.
Теперь вы должны сделать его адаптивным (в конце концов, это была ваша идея).
Привет Младен,
Адаптивная функция очень интересна.
Я сделал адаптивный T3 с "Swiss Army" Alpha.
Мы можем выбрать 2 альфы: чистую или швейцарскую армию.
С уважением.
PS: Если вы хотите нормальный период альфы, вы можете использовать чистую альфу: 2 x период.
Привет всем,
Я только что добавил канал ATR.
Индикатор T3, использующий стандартное отклонение для адаптации (T3 очень хорош для адаптации, так как его расчетная длина не обязательно должна быть целым числом - например, вы можете рассчитать nnn.5 T3 - и это дает идеально гладкое значение T3, даже когда к нему применяется адаптация, чего нельзя сказать о некоторых других типах адаптации средних).
PS: прикрепляю ex4 для тех, у кого могут возникнуть проблемы с компиляцией исходников. Несмотря на то, что индикатор от первой до последней буквы написан мной, моя сборка некоторое время отказывалась его компилировать. Теперь, ни с того ни с сего, он компилируется без проблем, поэтому я не уверен, что у кого-то другого не возникнет та же проблема, что и у меня. Для этого случая скачайте ex4 (он собран с билдом 500).
PS: при сравнении с "обычными" индикаторами T3 установите T3Original в false (поскольку большинство индикаторов T3 используют расчеты Фулкса/Матулича, а не оригинальный расчет Тима Тиллсона).Уважаемый Младен
Не могли бы вы конвертировать прикрепленный индикатор с 'Adaptive T3 calculations'!
Спасибо за любую помощь
secretcode
Уважаемый Младен
Не могли бы вы преобразовать прикрепленный индикатор с 'Adaptive T3 calculations'!
Спасибо за любую помощь
secretcodesecretcode
Вот, пожалуйста Используйте те же параметры по умолчанию, что и оригинальный индикатор (чтобы их можно было легко сравнить - как и ожидалось, этот намного быстрее).
Привет, Младен,
Вы когда-нибудь думали о том, чтобы сделать библиотечный файл, собирающий ваши красивые кодирующие методы сглаживания цены, или адаптации к рыночным циклам, и т.д. ? Я думаю, что такой файл был бы очень полезен во многих отношениях, по крайней мере, сделал бы структуру кодирования во многих ваших индикаторах чище и яснее (они и так очень чистые и ясные, я знаю , но всегда хочется лучшего и искать более совершенное).
Мне лично очень хотелось бы иметь такой lib файл от вас, такой же как ваш знаменитый DynamicZone.dll . Все они делают мир кодинга все более и более интересным и удобным, по крайней мере для меня.