Пользовательские индикаторы > SuperTrendEMA - трендовый индикатор, созданный на основе ATR и EMA
-
- Сообщения: 9
- Зарегистрирован: 13 мар 2019, 20:17
- Благодарил (а): 7 раз
- Поблагодарили: 1 раз
Re: SuperTrendEMA - трендовый индикатор, созданный на основе ATR и EMA
Evge, удобнее когда запаздывание.
Что бы текущий час отображался как конец прошлого часа.
Я как рассуждаю - мне нравится как индикатор показывает направления тренда и периоды боковиков на часовых данных. Но покупать или продавать удобнее на минутках. Я пробовал на графике из минуток, там где для часовика период 20, на минутках делать период 1200 . Но увы, выходит не такой же график.
Что бы текущий час отображался как конец прошлого часа.
Я как рассуждаю - мне нравится как индикатор показывает направления тренда и периоды боковиков на часовых данных. Но покупать или продавать удобнее на минутках. Я пробовал на графике из минуток, там где для часовика период 20, на минутках делать период 1200 . Но увы, выходит не такой же график.
-
- Сообщения: 535
- Зарегистрирован: 11 ноя 2018, 17:11
- Благодарил (а): 21 раз
- Поблагодарили: 92 раза
Re: SuperTrendEMA - трендовый индикатор, созданный на основе ATR и EMA
Да, оно, спасибо.
Похоже, изобретаю велосипед.
Похоже, изобретаю велосипед.
- evge
- Администратор
- Сообщения: 1811
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 366 раз
- Контактная информация:
Re: SuperTrendEMA - трендовый индикатор, созданный на основе ATR и EMA
Petr.Kutyrev писал(а):Evge, удобнее когда запаздывание.
Что бы текущий час отображался как конец прошлого часа.
для себя вижу, что можно решить двумя способами:
1. Создать 2 индикатора ATRHour и EMAHour, отображающие ATR и EMA от часа на текущем ТФ. Тогда индикатор SuperTrendEMA был бы незначительно изменен. EMA(...) заменить на MY.EMAHour(...), ATR(...) на MY.ATRHour(...)
2. Считать и EMA и ATR для часа внутри индикатора SuperTrendEMA.
Попробую реализовать вариант первый, возможно и второй.
никогда такого не было и вот опять
- evge
- Администратор
- Сообщения: 1811
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 366 раз
- Контактная информация:
Re: SuperTrendEMA - трендовый индикатор, созданный на основе ATR и EMA
Идём по первому варианту
Пока готов индикатор EMAH - EMA от H1 для нижестоящих таймфреймов, с запаздыванием до 1 часа
На подходе ATRH
далее SuperTrendEMAH
Пока готов индикатор EMAH - EMA от H1 для нижестоящих таймфреймов, с запаздыванием до 1 часа
На подходе ATRH
далее SuperTrendEMAH
никогда такого не было и вот опять
- evge
- Администратор
- Сообщения: 1811
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 366 раз
- Контактная информация:
Re: SuperTrendEMA - трендовый индикатор, созданный на основе ATR и EMA
ATRH ниже в коде (тоже с запаздыванием до 1 часа), не оформил его пока отдельным постом
Компилируем EMAH, ATRH,
а далее компилируем модифицированный SuperTrendEMAH, который использует в работе пользовательские индикаторы EMAH и ATRH
что получим на выходе:
Код: Выделить всё
function Initialize()
{
IndicatorName = "ATRH";
PriceStudy = false;
AddInput("Input", Inputs.Candle);
AddSeries("ATRDay", DrawAs.Line, Color.Red);
AddParameter("Period", 14, 60);
// для сохранения списков значений OHLC
AddGlobalVariable("O", Types.DoubleList);
AddGlobalVariable("H", Types.DoubleList);
AddGlobalVariable("L", Types.DoubleList);
AddGlobalVariable("C", Types.DoubleList);
AddGlobalVariable("A", Types.DoubleList); //ATR
}
function Evaluate()
{
// evge 22.04.2020 http://alfadirect4.ru
ATRDay[0] = ATRDay[1];
// новый час
if (BarTime(0).Hours != BarTime(1).Hours)
{
// новый бар дня
O.Insert(0, Input.Open[0]); H.Insert(0, Input.High[0]); L.Insert(0, Input.Low[0]); C.Insert(0, Input.Close[0]);
if (O.Count > 1)
{
A.Insert(0, H[1] - L[1]);
}
// лишнее удаляем
var CN = O.Count;
if (CN > Period * 2) { O.RemoveAt(CN - 1); H.RemoveAt(CN - 1); L.RemoveAt(CN - 1); C.RemoveAt(CN - 1); }
}
if (O.Count > 0)
{
if (Input.Low[0] < L[0]) L[0] = Input.Low[0];
if (Input.High[0] > H[0]) H[0] = Input.High[0];
C[0] = Input.Close[0];
}
if (A.Count > 1)
{
if (C.Count > 2)
{
var TR = Math.Max(H[1] , C[2]) - Math.Min(L[1], C[2]);
A[0] = ((Period - 1.0) * A[1] + TR) / Period;
}
}
if (A.Count > 0) ATRDay[0] = A[0];
}
Компилируем EMAH, ATRH,
а далее компилируем модифицированный SuperTrendEMAH, который использует в работе пользовательские индикаторы EMAH и ATRH
Код: Выделить всё
function Initialize()
{
IndicatorName = "SuperTrendEMAH";
PriceStudy = true;
AddInput("Input", Inputs.Candle);
AddSeries("Trend", DrawAs.Line, Color.Black, false);
AddSeries("U", DrawAs.Custom, Color.Green, true);
AddSeries("D", DrawAs.Custom, Color.Red, true);
AddParameter("EmaPer", 4);
AddParameter("TrPer", 7);
AddParameter("factor", 1.7);
}
function Evaluate()
{
// evge 22.04.2020 https://alfadirect4.ru
var I = Input;
var E = MY.EMAH(I, EmaPer);
var A = MY.ATRH(I, TrPer);
var up = E[0] - (factor * A[0]);
var down = E[0] + (factor * A[0]);
U = E[1] > U[1] ? Math.Max(up, U[1]) : up;
D = E[1] < D[1] ? Math.Min(down, D[1]) : down;
Trend = E[0] > D[1] ? 1 : E[0] <U[1] ? -1 : Trend[1];
if (Trend == 1) U.DrawLine(); else D.DrawLine();
}
что получим на выходе:
никогда такого не было и вот опять
- evge
- Администратор
- Сообщения: 1811
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 366 раз
- Контактная информация:
Re: SuperTrendEMA - трендовый индикатор, созданный на основе ATR и EMA
Оформил отдельными постами:
ATRH (Average True Range Hour) – средний истинный диапазон от часа
EMAH (Exponential Moving Average Hour) – экспоненциальная скользящая средняя от часа
SuperTrendEMAH - трендовый индикатор, созданный на основе пользовательских индикаторов ATRH и EMAH
ATRH (Average True Range Hour) – средний истинный диапазон от часа
EMAH (Exponential Moving Average Hour) – экспоненциальная скользящая средняя от часа
SuperTrendEMAH - трендовый индикатор, созданный на основе пользовательских индикаторов ATRH и EMAH
никогда такого не было и вот опять
-
- Сообщения: 9
- Зарегистрирован: 13 мар 2019, 20:17
- Благодарил (а): 7 раз
- Поблагодарили: 1 раз
Re: SuperTrendEMA - трендовый индикатор, созданный на основе ATR и EMA
Евгений, спасибо!
Корректно отображает данные.
Корректно отображает данные.
-
- Сообщения: 9
- Зарегистрирован: 13 мар 2019, 20:17
- Благодарил (а): 7 раз
- Поблагодарили: 1 раз
Re: SuperTrendEMA - трендовый индикатор, созданный на основе ATR и EMA
Здравствуйте! Евгений, еще раз спасибо! Второй день наблюдаю за индикатором, очень удобно реализовано.
Можно вас попросить сделать такой же на основе SMA. Как я понимаю надо сделать SMAH индикатор и далее в коде SuperTrendEMAH заменить EMAH на SMAH. Я пробовал переписать EMAH в SMAH, но не смог.
Можно вас попросить сделать такой же на основе SMA. Как я понимаю надо сделать SMAH индикатор и далее в коде SuperTrendEMAH заменить EMAH на SMAH. Я пробовал переписать EMAH в SMAH, но не смог.
- evge
- Администратор
- Сообщения: 1811
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 366 раз
- Контактная информация:
Re: SuperTrendEMA - трендовый индикатор, созданный на основе ATR и EMA
никогда такого не было и вот опять
-
- Сообщения: 9
- Зарегистрирован: 13 мар 2019, 20:17
- Благодарил (а): 7 раз
- Поблагодарили: 1 раз
Re: SuperTrendEMA - трендовый индикатор, созданный на основе ATR и EMA
Сделал. Спасибо за информацию!
Вернуться в «Пользовательские индикаторы»
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость