Пользовательские индикаторы > DeltaCumPeriod - кумулятивная Дельта за период

Дополнительные индикаторы от пользователей Альфа-Директ 4. Готовые решения от пользователей.
Аватара пользователя
evge
Администратор
Сообщения: 1807
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 83 раза
Поблагодарили: 361 раз
Контактная информация:

DeltaCumPeriod - кумулятивная Дельта за период

Непрочитанное сообщение evge » 11 май 2016, 19:26

Индикатор кумулятивная Дельта за период рассчитывается как сумма разниц объемов сделок, совершенных по Bid и Ask и показывает агрессивность покупателей или продавцов. Отличие от индикатора кумулятивная дельта за день (DeltaCumOfDay) в том, что в индикаторе DeltaCumPeriod задается параметр периода расчета. В обычной ситуации при падении рынка больше агрессивных продавцов, а при росте – покупателей.

Delta > 0 больше агрессивных покупателей (зеленый цвет)
Delta < 0 больше агрессивных покупателей (красный цвет)

Параметры

Period - период, количество баров

Сигналы

Индикатор является вспомогательным. Обращать внимание на переходы через 0 и статистически большие значения при боковом движении.

Автор

AlfaDirect 2016. OX

Пример:

DeltaCumPeriod-01.png
DeltaCumPeriod-01.png (38.4 КБ) 31445 просмотров


Исходный текст:

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

function Initialize()
{
IndicatorName = "DeltaCumPeriod";
AddInput("Input", Inputs.Candle);
PriceStudy = false;
AddParameter("Period", 100, 1);
AddSeries("DeltaCum", DrawAs.Custom, Color.Gray);
AddSeries("DeltaOpen", DrawAs.Custom, Color.Gray);
AddGlobalVariable("s", Types.DoubleList);
AddLevel(0, Color.Gray, "DeltaCum");
}

function Evaluate()
{
// AlfaDirect 2016. OX
// Кумулятивная Дельта за период
// Добавляем новую дельту в лист
var Delta = Input.VolumeAsk[0] - Input.VolumeBid[0];
s.Add(Delta);
// Если точек больше периода убираем первую дельту из листа
if ( CurrentIndex >= Period )
s.RemoveAt(0);
// Считаем сумму
DeltaCum = s.Sum();

// Рисование
if ( CurrentIndex > 0 )
{
DeltaOpen = DeltaCum[-1];
if ( DeltaCum > DeltaCum[-1] )
DeltaCum.DrawHistogram(DeltaOpen, Color.Green, Line.Solid, 1, Color.Green, 50);
else
DeltaCum.DrawHistogram(DeltaOpen, Color.Red, Line.Solid, 1, Color.Red, 50);
}

}


Скачать индикатор

DeltaCumPeriod.zip
(1.04 КБ) 1875 скачиваний
никогда такого не было и вот опять

JASON
Сообщения: 27
Зарегистрирован: 31 янв 2017, 21:50
Благодарил (а): 3 раза

Re: DeltaCumPeriod - кумулятивная Дельта за период

Непрочитанное сообщение JASON » 31 янв 2017, 22:26

Добрый день.
Не могли бы прописать построение средней (ЕМА или СМА-не важно) для DeltaCumPeriod?
Через функцию вызова средней для построения не получается.
Спасибо

Аватара пользователя
evge
Администратор
Сообщения: 1807
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 83 раза
Поблагодарили: 361 раз
Контактная информация:

Re: DeltaCumPeriod - кумулятивная Дельта за период

Непрочитанное сообщение evge » 01 фев 2017, 07:24

Почему не получается?

Ничего дописывать не нужно, это умеет сам АД4.
Построение индикатора от серий другого индикатора.

Пример:

DelataCumPeriod-EMA-01.png
DelataCumPeriod-EMA-01.png (27.51 КБ) 30853 просмотра

DelataCumPeriod-EMA-02.png
DelataCumPeriod-EMA-02.png (27.58 КБ) 30853 просмотра
никогда такого не было и вот опять

Аватара пользователя
evge
Администратор
Сообщения: 1807
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 83 раза
Поблагодарили: 361 раз
Контактная информация:

Re: DeltaCumPeriod - кумулятивная Дельта за период

Непрочитанное сообщение evge » 01 фев 2017, 07:49

Дописывать понадобится только если Вы решили на основе этой MA строить мех. стратегию \ робота.
никогда такого не было и вот опять

JASON
Сообщения: 27
Зарегистрирован: 31 янв 2017, 21:50
Благодарил (а): 3 раза

Re: DeltaCumPeriod - кумулятивная Дельта за период

Непрочитанное сообщение JASON » 01 фев 2017, 12:30

Да с построением в АД4 и наложением индикатора на индикатор разобрался.
Хотел скрипт средней как подтверждающий сигнал для стратегии.

Аватара пользователя
evge
Администратор
Сообщения: 1807
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 83 раза
Поблагодарили: 361 раз
Контактная информация:

Re: DeltaCumPeriod - кумулятивная Дельта за период

Непрочитанное сообщение evge » 01 фев 2017, 13:58

JASON писал(а):Да с построением в АД4 и наложением индикатора на индикатор разобрался.
Хотел скрипт средней как подтверждающий сигнал для стратегии.


вот DeltaCumPeriod с SMA

DelataCumPeriod-SMA-01.png
DelataCumPeriod-SMA-01.png (26.86 КБ) 30833 просмотра


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

function Initialize()
{
IndicatorName = "DeltaCumPeriodSMA";
AddInput("Input", Inputs.Candle);
PriceStudy = false;
AddParameter("Period", 100, 1);
AddParameter("PeriodMA", 20, 1);
AddSeries("DeltaCum", DrawAs.Custom, Color.Gray);
AddSeries("DeltaOpen", DrawAs.Custom, Color.Gray);
AddSeries("MA", DrawAs.Line, Color.Blue);
AddGlobalVariable("s", Types.DoubleList);
AddGlobalVariable("SUM", Types.Double, 0.0);         
AddLevel(0, Color.Gray, "DeltaCum");
}

function Evaluate()
{
// AlfaDirect 2016. OX
// Кумулятивная Дельта за период

// evge 01.02.2017 http://alfadirect4.ru
// добавлена SMA

// Добавляем новую дельту в лист
var Delta = Input.VolumeAsk[0] - Input.VolumeBid[0];
s.Add(Delta);

// Если точек больше периода убираем первую дельту из листа
if ( CurrentIndex >= Period )
s.RemoveAt(0);

// Считаем сумму
DeltaCum = s.Sum();

// Рисование
if ( CurrentIndex > 0 )
{
DeltaOpen = DeltaCum[-1];
if ( DeltaCum > DeltaCum[-1] )
DeltaCum.DrawHistogram(DeltaOpen, Color.Green, Line.Solid, 1, Color.Green, 50);
else
DeltaCum.DrawHistogram(DeltaOpen, Color.Red, Line.Solid, 1, Color.Red, 50);

if ( CurrentIndex < PeriodMA )
{
   SUM = SUM + DeltaCum[0];     
   MA = SUM / (CurrentIndex + 1);     
}
else
{
   SUM = SUM + DeltaCum[0] - DeltaCum[(int)PeriodMA] ;     
   MA = SUM / PeriodMA;   
}

} //CI > 0

}
никогда такого не было и вот опять

JASON
Сообщения: 27
Зарегистрирован: 31 янв 2017, 21:50
Благодарил (а): 3 раза

Re: DeltaCumPeriod - кумулятивная Дельта за период

Непрочитанное сообщение JASON » 01 фев 2017, 14:36

Большое спасибо!

JASON
Сообщения: 27
Зарегистрирован: 31 янв 2017, 21:50
Благодарил (а): 3 раза

Re: DeltaCumPeriod - кумулятивная Дельта за период

Непрочитанное сообщение JASON » 01 фев 2017, 18:30

Еще вопрос:
возможно ли , чтобы по стратегии (роботу) сигнал генерировался на одном инструменте, а исполнение шло по другому или сразу по нескольким, в том числе сделки разной направленности?

Аватара пользователя
evge
Администратор
Сообщения: 1807
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 83 раза
Поблагодарили: 361 раз
Контактная информация:

Re: DeltaCumPeriod - кумулятивная Дельта за период

Непрочитанное сообщение evge » 01 фев 2017, 18:32

JASON писал(а):Еще вопрос:
возможно ли , чтобы по стратегии (роботу) сигнал генерировался на одном инструменте, а исполнение шло по другому или сразу по нескольким, в том числе сделки разной направленности?


На сегодня нет, разве что "обходными маневрами".
Например сохраняя команды в файл в одном роботе и читая их в другом исполняя.
Возможно в будущем АД4 доработают, зачатки там есть (неработающие) про множественные входные ряды.
никогда такого не было и вот опять

JASON
Сообщения: 27
Зарегистрирован: 31 янв 2017, 21:50
Благодарил (а): 3 раза

Re: DeltaCumPeriod - кумулятивная Дельта за период

Непрочитанное сообщение JASON » 01 фев 2017, 18:39

Эх, жаль.


Вернуться в «Пользовательские индикаторы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 8 гостей