Страница 2 из 5

Re: Ошибка при сравнении Bool и Double

Добавлено: 27 окт 2017, 12:41
Den
Да, и самое главное - чтобы отсчет был от ПОСЛЕДНЕГО High / Low , удовлетворившего условию.

То есть тут он отсчет ведет от Math.Max Math.Min , а нужно от последнего , которое удовлетворило условию размера U или D.
Например , если 0.14 <= U <=0.15 , то это последний и от него отсчет

Re: Ошибка при сравнении Bool и Double

Добавлено: 27 окт 2017, 13:05
Den
Вот как тут - он показывает 16 , а условие еще не выполнено , то есть он должен показывать 27

Re: Ошибка при сравнении Bool и Double

Добавлено: 27 окт 2017, 13:29
evge
Что-то простая ошибка сравнения Boolean и Double выливается в написать индикатор :)

Re: Ошибка при сравнении Bool и Double

Добавлено: 27 окт 2017, 13:32
evge
Зафиксировать стрелочку нельзя. Т.е. все значения индикатора в прошлом рассчитываются по сформированным барам, это уже много раз обсуждалось :)

Пока бар рисуется и 10 раз формируется сигнал и исчезает на активном баре, то это не означает что в конечном счете так оно и будет при закрытии этого бара.

В истории есть только данные конечные по бару и нет никаких промежуточных значений в выбранном ТФ.

Re: Ошибка при сравнении Bool и Double

Добавлено: 27 окт 2017, 13:38
Den
нет , индикатор дописывать не нужно :) По поводу скобок я уже написал, что они не изменили показания (хотя так, безусловно верно)

Я просто хочу поставить условие , чтобы как на рисунке - пока условие не выполнилось, расчет ведется относительно последнего, удовлетворившего условию (скажем , 0.14 <= U <= 0.15 )

Как это можно в коде прописать ?

Re: Ошибка при сравнении Bool и Double

Добавлено: 27 окт 2017, 13:39
evge
Den писал(а):Вот как тут - он показывает 16 , а условие еще не выполнено , то есть он должен показывать 27


Очень просто, потому-что условие у вас не для D,U стоят, а для H и L серий.

D, U задаются по другим условиям, их и показывает.

Re: Ошибка при сравнении Bool и Double

Добавлено: 27 окт 2017, 13:40
evge
Стрелочки только у вас по условиям вхождения в интервал проставляются.

Re: Ошибка при сравнении Bool и Double

Добавлено: 27 окт 2017, 13:49
Den
Очень просто, потому-что условие у вас не для D,U стоят, а для H и L серий.

D, U задаются по другим условиям, их и показывает.


Евгений, так как изменить код я чет не пойму

Если U ,допустим, удовлетворило условию, то L[0] = Input.High[0]

Re: Ошибка при сравнении Bool и Double

Добавлено: 27 окт 2017, 15:07
evge
br-01.png
br-01.png (31.21 КБ) 16928 просмотров


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

function Initialize()
{
IndicatorName = "BRENT";
AddInput("Input", Inputs.Candle);
AddShadowSeries("D", DrawAs.Histogram, Color.Violet);
AddShadowSeries("U", DrawAs.Histogram, Color.Lime);
AddSeries("H", DrawAs.Custom, Color.Black);
AddSeries("L", DrawAs.Custom, Color.Black);

PriceStudy = true;
}

function Evaluate()
{

var DD = (Math.Max(Input.High[0],Input.High[1]) - Input.Low[0]);
var UU = (Input.High[0] - (Math.Min(Input.Low[0],Input.Low[1])));

if (Input.High[0] < Input.High[1])
if ((DD >= 0.14 && DD <= 0.15) || (DD >= 0.19 && DD <= 0.20))
{
D = DD;
L[0] = Input.High[0];
L.DrawArrowDown(Color.HotPink, LineStyles.Solid, 3, Color.HotPink, 10);
}

if (Input.Low[0] > Input.Low[1])
if ((UU >= 0.14 && UU <= 0.15) || (UU >= 0.19 && UU <= 0.20))
{
U = UU;
H[0] = Input.Low[0];
H.DrawArrowUp(Color.Cyan, LineStyles.Solid, 3, Color.Cyan, 10);
}

}

Re: Ошибка при сравнении Bool и Double

Добавлено: 27 окт 2017, 15:21
evge
Код поправил выше