Общие вопросы по разработке > Ошибка при сравнении Bool и Double

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

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

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

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

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

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

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

Непрочитанное сообщение Den » 27 окт 2017, 13:05

Вот как тут - он показывает 16 , а условие еще не выполнено , то есть он должен показывать 27
Вложения
17i.png
17i.png (16.36 КБ) 16962 просмотра

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

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

Непрочитанное сообщение evge » 27 окт 2017, 13:29

Что-то простая ошибка сравнения Boolean и Double выливается в написать индикатор :)
никогда такого не было и вот опять

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

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

Непрочитанное сообщение evge » 27 окт 2017, 13:32

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

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

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

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

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

Непрочитанное сообщение Den » 27 окт 2017, 13:38

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

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

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

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

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

Непрочитанное сообщение evge » 27 окт 2017, 13:39

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


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

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

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

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

Непрочитанное сообщение evge » 27 окт 2017, 13:40

Стрелочки только у вас по условиям вхождения в интервал проставляются.
никогда такого не было и вот опять

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

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

Непрочитанное сообщение Den » 27 окт 2017, 13:49

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

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


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

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

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

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

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

br-01.png
br-01.png (31.21 КБ) 16926 просмотров


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

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);
}

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

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

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

Непрочитанное сообщение evge » 27 окт 2017, 15:21

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


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

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

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