Страница 1 из 6
Как суммировать показания за день?
Добавлено: 19 окт 2017, 15:06
Den
Добрый день ,друзья !
Вопрос к Евгению.
Как суммировать за день (с 10-00 до 23-50) показания индикатора , который рассчитывает разницу между ПОСЛЕДНИМИ сигналами (High и Low) ?
Re: Как суммировать показания за день?
Добавлено: 19 окт 2017, 15:16
evge
Код: Выделить всё
Function Inicialize()
{
// ...
AddGlobalVariable("Summa", Types.Double, 0);
// ...
}
Код: Выделить всё
function Evaluate()
{
// ...
if (BarDate(1) != BarDate(0)) Summa = 0;
Summa += ZnachenieIndicatora;
// ...
}
другой информации о вашем коде и условиях из вопроса у меня нет, поэтому так.
Re: Как суммировать показания за день?
Добавлено: 19 окт 2017, 15:33
Den
Евгений спасибо за ответ, вот код .
H и L это стрелки на рисунке.
Как в этом случае сумму за день получить?
Код: Выделить всё
function Initialize()
{
IndicatorName = "A-DOWN_VIII";
AddInput("Input", Inputs.Candle);
AddShadowSeries("D", DrawAs.Custom, Color.Violet);
AddShadowSeries("U", DrawAs.Custom, Color.Lime);
AddSeries("S", DrawAs.Custom, Color.Magenta);
AddGlobalVariable("Summa", Types.Double, 0);
PriceStudy = true;
AddParameter("P", 2, 1);
}
function Evaluate()
{
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) )
D = (MY.индикатор(Input).GetLastValues ("H", 1)[0].Y) - (MY.индикатор(Input).GetLastValues ("L", 1)[0].Y);
D.DrawHistogram(Input.Open, Color.Blue, Line.Solid, 1, Color.Blue, 3);
{
if ( (lastHVal.X > lastLVal.X ? lastHVal.Y : lastLVal.Y) == (MY.индикатор(Input).GetLastValues ("L", 1)[0].Y) )
U = (MY.индикатор(Input).GetLastValues ("H", 1)[0].Y) - (MY.индикатор(Input).GetLastValues ("L", 1)[0].Y) ;
U.DrawHistogram(Input.Open, Color.Blue, Line.Solid, 1, Color.Blue, 3);
}
}
}
}
Re: Как суммировать показания за день?
Добавлено: 19 окт 2017, 15:40
Den
ну грубо говоря так он выводит
Re: Как суммировать показания за день?
Добавлено: 19 окт 2017, 15:42
Den
.
Re: Как суммировать показания за день?
Добавлено: 19 окт 2017, 16:03
evge
всё так же как выше и написал,
только так как у индикатора 2 гистограммы U и D, то добавляем обе
Summa += U[0] + D[0];
я конечно не знаю зачем так, но если надо именно сумму значений U,D индикатора, то так.
Re: Как суммировать показания за день?
Добавлено: 19 окт 2017, 16:14
Den
я конечно не знаю зачем так
просто до другого способа суммирования показаний я не додумался.
А как выводить-то итоговое значение Summa?
У меня при условии Summa += U[0] + D[0];
показывает последнее значение , а не сумму за день.
А надо с открытия 10-00 до сейчас (и в конце до 23-50)
Re: Как суммировать показания за день?
Добавлено: 19 окт 2017, 16:38
Den
Код: Выделить всё
function Initialize()
{
AddSeries("S", DrawAs.Custom, Color.Magenta);
Код: Выделить всё
if (BarDate(1) != BarDate(0)) Summa = 0;
Summa += U[0] + D[0];
Summa = S;
}
так он показывает сумму последних двух значений
Re: Как суммировать показания за день?
Добавлено: 19 окт 2017, 16:38
evge
эх... код конечно жестокий, зачем нужно в коде столько лишних { и } непонятно
Код: Выделить всё
function Initialize()
{
IndicatorName = "A-DOWN_VIII";
AddInput("Input", Inputs.Candle);
AddShadowSeries("D", DrawAs.Custom, Color.Violet);
AddShadowSeries("U", DrawAs.Custom, Color.Lime);
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) )
{
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);
if ( (lastHVal.X > lastLVal.X ? lastHVal.Y : lastLVal.Y) == (MY.индикатор(Input).GetLastValues ("L", 1)[0].Y) )
{
U = (MY.индикатор(Input).GetLastValues ("H", 1)[0].Y) - (MY.индикатор(Input).GetLastValues ("L", 1)[0].Y) ;
Summa += U[0];
}
U.DrawHistogram(Input.Open, Color.Blue, Line.Solid, 1, Color.Blue, 3);
S = Summa;
S.DrawHistogram();
}
Re: Как суммировать показания за день?
Добавлено: 19 окт 2017, 16:57
Den
Пляшем как могём
как-то странновато он рассчитывает, если последняя метка вверх , то он показывает 2.352
по меткам сумма за день 750 пунктов.
Это как так?