Общие вопросы по разработке > Как суммировать показания за день?

Общие вопросы по разработке в Альфа-Директ 4. Обсуждение разработки пользовательских индикаторов, стратегий.
Аватара пользователя
Den
Сообщения: 352
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 14 раз
Поблагодарили: 4 раза

Re: Как суммировать показания за день?

Непрочитанное сообщение Den » 19 окт 2017, 17:23

а вниз сумма 374 пункта, то есть меньше чем на самом деле
Вложения
890.png
890.png (27.7 КБ) 17872 просмотра

Аватара пользователя
Den
Сообщения: 352
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 14 раз
Поблагодарили: 4 раза

Re: Как суммировать показания за день?

Непрочитанное сообщение Den » 19 окт 2017, 17:37

а следующий бар уже разница, но сумма все равно чёто не та
Вложения
899.png
899.png (26.99 КБ) 17864 просмотра

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

Re: Как суммировать показания за день?

Непрочитанное сообщение evge » 19 окт 2017, 17:47

ну теперь дело за малым доделать как вам надо :) пример то есть
никогда такого не было и вот опять

Аватара пользователя
Den
Сообщения: 352
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 14 раз
Поблагодарили: 4 раза

Re: Как суммировать показания за день?

Непрочитанное сообщение Den » 19 окт 2017, 19:42

Он суммирует предыдущее значение КАЖДЫЙ новый бар, а должен суммировать только один раз.
То есть если рост идет 4 бара подряд, он просуммирует 4 раза предыдущее значение падения как на скрине.
Поэтому получаются такие большие цифры.
и суммирует он ОТДЕЛЬНО падение и рост, выдавая два суммарных значения.
Евгений , это решается?
Вложения
2w.png
2w.png (6.08 КБ) 17855 просмотров
3w.png
3w.png (5.9 КБ) 17855 просмотров

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

Re: Как суммировать показания за день?

Непрочитанное сообщение evge » 19 окт 2017, 20:46

Den писал(а):Евгений , это решается?


Возможно решается, но т.к. я не понимаю что делает MY.индикатор и вообще идею зачем всё это нужно, то и решения предложить не могу.
никогда такого не было и вот опять

Аватара пользователя
Den
Сообщения: 352
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 14 раз
Поблагодарили: 4 раза

Re: Как суммировать показания за день?

Непрочитанное сообщение Den » 19 окт 2017, 21:04

индикатор тут любой , выставляющий вершины.

Идея простая - узнать сумму за день.

я вот не пойму как его заставить суммировать предыдущее значение не каждый новый бар

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

function Initialize()
{
IndicatorName = "1";
AddInput("Input1", Inputs.Candle);   
AddParameter("Period", 5, 0);   
PriceStudy = true;   
AddSeries("H", DrawAs.Custom, Color.Coral);   
AddSeries("L", DrawAs.Custom, Color.LightGreen);   

AddGlobalVariable("CountUp", Types.Int, 0);
AddGlobalVariable("CountDn", Types.Int, 0);

AddGlobalVariable("HH", Types.Double, 0.0);
AddGlobalVariable("LL", Types.Double, 100000000.0);

}

function Evaluate()
{

if (CurrentIndex > 2)
{

if ( Input1.Close[0] < Input1.Close[1] && Input1.Close[1] >= Input1.Close[2] )
{
     if ( Input1.Close[1] > HH )
     {
          CountUp++;
          HH = Input1.Close[1];

          if ( CountUp >= 1 )
          {   
               H[-1] = HH;
               CountDn = 0;
               LL = 1000000000.0;
           }
     }
           
}     

if ( Input1.Close[0] > Input1.Close[1] && Input1.Close[1] <= Input1.Close[2] )
{
     if ( Input1.Close[1] < LL )
     {
          CountDn++;
          LL = Input1.Close[1];

          if ( CountDn >= 1 )
          {   
               L[-1] = LL;
               CountUp = 0;
               HH = 0.0;
          }
      }

       
}     

               H.DrawArrowDown(Color.Red, LineStyles.Solid, 5, Color.Red, 100);
               L.DrawArrowUp(Color.Green, LineStyles.Solid, 5, Color.Green, 100);


}
}



Аватара пользователя
Den
Сообщения: 352
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 14 раз
Поблагодарили: 4 раза

Re: Как суммировать показания за день?

Непрочитанное сообщение Den » 20 окт 2017, 11:18

Евгений, в дополнение он и в таком виде выдает две разные суммы - сумму падения и сумму роста.

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

function Initialize()
{
IndicatorName = "A_DOWN_X";
AddInput("Input", Inputs.Candle);
AddShadowSeries("D", DrawAs.Custom, Color.Lime);
AddShadowSeries("U", DrawAs.Custom, Color.Violet);
AddShadowSeries("S", DrawAs.Custom, Color.Magenta);
AddGlobalVariable("Summa", Types.Double, 0);


PriceStudy = true;
AddParameter("P", 2, 1);
}

function Evaluate()
{

if (BarDate(1) != BarDate(0))

Summa = 0;

var lastLVal = MY.индикатор(Input).GetLastValues ("L", 1)[0];
var lastHVal = MY.индикатор(Input).GetLastValues ("H", 1)[0];


if (( (lastHVal.X > lastLVal.X ? lastHVal.Y : lastLVal.Y) == (MY.индикатор(Input).GetLastValues ("H", 1)[0].Y) ) || ( (lastHVal.X > lastLVal.X ? lastHVal.Y : lastLVal.Y) == (MY.индикатор(Input).GetLastValues ("L", 1)[0].Y) ))

{

D = (MY.индикатор(Input).GetLastValues ("H", 1)[0].Y) - (MY.индикатор(Input).GetLastValues ("L", 1)[0].Y);

Summa += D[0];
}

D.DrawHistogram(Input.Open, Color.Blue, Line.Solid, 1, Color.Blue, 3);

S = Summa;


}



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

Re: Как суммировать показания за день?

Непрочитанное сообщение evge » 20 окт 2017, 11:59

Как суммировать за день (с 10-00 до 23-50) показания индикатора , который рассчитывает разницу между ПОСЛЕДНИМИ сигналами (High и Low) ?


Задача: просуммировать значения индикатора от начала до конца дня.

Решение: именно это оно и делает, на каждом баре дня имеется значение вашего индикатора, оно попадает в общую сумму. В следующий день сумма сбрасывается в 0. Если ваш индикатор считает не то что вы описали, то это проблема уже индикатора.
никогда такого не было и вот опять

Аватара пользователя
Den
Сообщения: 352
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 14 раз
Поблагодарили: 4 раза

Re: Как суммировать показания за день?

Непрочитанное сообщение Den » 20 окт 2017, 12:25

Какая же это проблема индикатора, если он показывает экстремумы не на каждом баре???

Требуется просуммировать разницу между экстремумами, которые ЕСТЕСТВЕННО будут не на каждом баре.

Где вы видели экстремумы на каждом баре ?

Это проблема прежде всего моя , или ваша, так как ни я ни вы не можем понять элементарную вещь - заставить индикатор

НЕ СУММИРОВАТЬ УЖЕ ПРОСУММИРОВАННОЕ.

А он упорно это делает каждый новый бар.
Хотя НОВОГО значения разницы экстремумов еще нет,А ОН ВСЕ РАВНО СУММИРУЕТ УЖЕ ПРОСУММИРОВАНОЕ
Вроде простая вещь

Такие дела, малята. :)

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

Re: Как суммировать показания за день?

Непрочитанное сообщение evge » 20 окт 2017, 12:56

Ваш индикатор рисует гистограмму, его значения суммируются так как вы просили с 10 до 23:50 т.е. за сутки сумма всей гистограммы считается в Summa и выводится в серию S. Что не так???

Т.е. какой вопрос, такое и решение :)

Кстати, решение нормальное! Все значения гистограммы просуммировались, как вы и просили.

Но конечно я понимаю желание просуммировать именно значения не этого индикатора, а того которого он вызывает, но задачи вы такой не ставили.

Тяжело решать задачу додумывая за вас, или пытаться прочитать ваши мысли, телепатия это хорошо, но пока не развил.

Правильная постановка задачи уже пол дела!

Повторю, как поставили задачу так и получили помощь :)
никогда такого не было и вот опять


Вернуться в «Общие вопросы по разработке»

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

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