Общие вопросы по разработке > Как суммировать показания за день?
Как суммировать показания за день?
Добрый день ,друзья !
Вопрос к Евгению.
Как суммировать за день (с 10-00 до 23-50) показания индикатора , который рассчитывает разницу между ПОСЛЕДНИМИ сигналами (High и Low) ?
Вопрос к Евгению.
Как суммировать за день (с 10-00 до 23-50) показания индикатора , который рассчитывает разницу между ПОСЛЕДНИМИ сигналами (High и Low) ?
- Вложения
-
- sdc.png (11.35 КБ) 24465 просмотров
- evge
- Администратор
- Сообщения: 1813
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 367 раз
- Контактная информация:
Re: Как суммировать показания за день?
Код: Выделить всё
Function Inicialize()
{
// ...
AddGlobalVariable("Summa", Types.Double, 0);
// ...
}
Код: Выделить всё
function Evaluate()
{
// ...
if (BarDate(1) != BarDate(0)) Summa = 0;
Summa += ZnachenieIndicatora;
// ...
}
другой информации о вашем коде и условиях из вопроса у меня нет, поэтому так.
никогда такого не было и вот опять
Re: Как суммировать показания за день?
Евгений спасибо за ответ, вот код .
H и L это стрелки на рисунке.
Как в этом случае сумму за день получить?
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: Как суммировать показания за день?
ну грубо говоря так он выводит
- Вложения
-
- 8.png (15.66 КБ) 24451 просмотр
- evge
- Администратор
- Сообщения: 1813
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 367 раз
- Контактная информация:
Re: Как суммировать показания за день?
всё так же как выше и написал,
только так как у индикатора 2 гистограммы U и D, то добавляем обе
Summa += U[0] + D[0];
я конечно не знаю зачем так, но если надо именно сумму значений U,D индикатора, то так.
только так как у индикатора 2 гистограммы U и D, то добавляем обе
Summa += U[0] + D[0];
я конечно не знаю зачем так, но если надо именно сумму значений U,D индикатора, то так.
никогда такого не было и вот опять
Re: Как суммировать показания за день?
я конечно не знаю зачем так
просто до другого способа суммирования показаний я не додумался.
А как выводить-то итоговое значение Summa?
У меня при условии Summa += U[0] + D[0];
показывает последнее значение , а не сумму за день.
А надо с открытия 10-00 до сейчас (и в конце до 23-50)
Re: Как суммировать показания за день?
Код: Выделить всё
function Initialize()
{
AddSeries("S", DrawAs.Custom, Color.Magenta);
Код: Выделить всё
if (BarDate(1) != BarDate(0)) Summa = 0;
Summa += U[0] + D[0];
Summa = S;
}
так он показывает сумму последних двух значений
- evge
- Администратор
- Сообщения: 1813
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 367 раз
- Контактная информация:
Re: Как суммировать показания за день?
эх... код конечно жестокий, зачем нужно в коде столько лишних { и } непонятно
Код: Выделить всё
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: Как суммировать показания за день?
Пляшем как могём
как-то странновато он рассчитывает, если последняя метка вверх , то он показывает 2.352
по меткам сумма за день 750 пунктов.
Это как так?
как-то странновато он рассчитывает, если последняя метка вверх , то он показывает 2.352
по меткам сумма за день 750 пунктов.
Это как так?
- Вложения
-
- 89.png (26.84 КБ) 24427 просмотров
Последний раз редактировалось Den 19 окт 2017, 17:25, всего редактировалось 1 раз.
Вернуться в «Общие вопросы по разработке»
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя