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

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

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

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

Память может из-за истории

вот тут уменьшить можно 2000 на меньшее

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

AddParameter("P", 2000, 1);


или убрать вообще строку.

а по поводу не столько, посчитайте может ошибаетесь :)

там ведь учитывается и переходящее значение с предыдущего дня.

т.е. разница между high и low считается даже если одно из них в было предыдущий торговый день. Разница будет зачтена в сегодняшний день.
никогда такого не было и вот опять

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

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

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

задачи как-то особенно считать на границе дней не было :)
никогда такого не было и вот опять

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

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

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

Den писал(а):Он показывает теперь одну сумму, но опять - же сумма выходит больше, чем на самом деле.


для роста \ падения отдельно нужно?

в данной реализации индикатора это сделать просто.
никогда такого не было и вот опять

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

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

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

Den писал(а):так все-таки как ему задать условие, при котором если число баров после сигнала > 1 , то Break до следующего сигнала? Как это можно прописать кодом?


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

я не понял, зачем нужен break до след сигнала?
никогда такого не было и вот опять

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

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

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

нет именно общую сумму рост + падение

гляньте вот даже с гэпом и незаконченным выходом вверх выходит 590, а он кажет 814
Вложения
26.png
26.png (11.13 КБ) 18326 просмотров

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

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

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

еще проще
H2 показывает 499, а там 303
Вложения
26.png

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

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

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

появляется сигнал новый разница между новым и предыдущим суммируется.

я не понял, зачем нужен break до след сигнала?


я просто подумал, что break может решит проблему суммирования уже суммированного.

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

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

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

или вот. Тут явно не 744
Вложения
27.png

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

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

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

Нашёл причину

поправил кое что, лишние суммы ушли.

и разделил up и down сумму

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

function Initialize()
{
IndicatorName = "A-DOWN_VIII";
AddInput("Input", Inputs.Candle);
AddSeries("D", DrawAs.Custom, Color.Green, false);
AddSeries("U", DrawAs.Custom, Color.Red, false);
AddShadowSeries("SUp", DrawAs.Custom, Color.Green);
AddShadowSeries("SDown", DrawAs.Custom, Color.Red);

AddGlobalVariable("SumUp", Types.Double, 0);
AddGlobalVariable("SumDown", Types.Double, 0);
AddGlobalVariable("LX", Types.Long, 0);
AddGlobalVariable("HX", Types.Long, 0);

PriceStudy = false;
AddParameter("P", 2000, 1);
}

function Evaluate()
{

if (BarDate(0) != BarDate(1)) { SumUp = 0; SumDown = 0; }

var I = MY.индикатор(Input);
var Lx = 0;
var Hx = 0;
var Ly = 0.0;
var Hy = 0.0;

for (var x = 0; x < 999; x++)
{
   if (I["L"][x] > 0) { Lx = CurrentIndex - x; Ly = I["L"][x]; }
   if (I["H"][x] > 0) { Hx = CurrentIndex - x; Hy = I["H"][x]; }
   if (Lx != 0 && Hx != 0) break;
}

if (Lx == 0 && Hx == 0 ) return;

if ( Lx > Hx )
   D[1] = Hy - Ly;
else
   U[1] = Hy - Ly;

if (HX != Hx || LX != Lx)
{
   HX = Hx;
   LX = Lx;
   if (Hx > Lx) SumUp += Hy - Ly;
   if (Hx < Lx) SumDown += Hy - Ly;
}

SUp[0] = SumUp;
SDown[0] = SumDown;

D.DrawHistogram(Color.Red, Line.Solid, 1, Color.Red, 50);
U.DrawHistogram(Color.Green, Line.Solid, 1, Color.Green, 50);
SUp.DrawHistogram();
SDown.DrawHistogram();

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

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

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

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

Выше код чуть поправил, там знак надо было наоборот

должно так

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

if (Hx > Lx) SumUp += Hy - Ly;
if (Hx < Lx) SumDown += Hy - Ly;


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


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

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

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