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

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

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

Непрочитанное сообщение Den » 03 ноя 2017, 14:55

а вот наш int Count = 200, он отмечает буквально все получается
Вложения
evge.png

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

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

Непрочитанное сообщение evge » 03 ноя 2017, 15:01

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

function Initialize()
{
IndicatorName = "A";
AddInput("Input1", Inputs.Candle);   
AddParameter("P", 0.3);
AddParameter("Count", 5);

PriceStudy = true;   
AddSeries("H", DrawAs.Custom, Color.Coral);   
AddSeries("L", DrawAs.Custom, Color.LightGreen);   
AddShadowSeries("D", DrawAs.Custom, Color.HotPink);

}

function Evaluate()
{
double Min = Double.MaxValue;
double Max = 0;
for (int x = 0; x < Count; x++)
{
   if (Input1.High[x] > Max) Max = Input1.High[x];
   if (Input1.Low[x] < Min) Min = Input1.Low[x];
}
double HeightAll = Max - Min;

if (Input.High[0] >= MY.индикатор_LAST(Input).GetValue("Last", 0) )
{
if (HeightAll >= P) H[0] = Input1.High[0];
}

if (Input.Low[0] <= MY.индикатор_LAST(Input).GetValue("Last", 0) )
{
if (HeightAll >= P) L[0] = Input1.Low[0];
}

H.DrawArrowDown(Color.Fuchsia, LineStyles.Solid, 5, Color.Fuchsia, 100);
L.DrawArrowUp(Color.Lime, LineStyles.Solid, 5, Color.Lime, 100);
}
никогда такого не было и вот опять

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

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

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

в новом коде Р=0.2 , count =200
Он по идее должен был пропустить все, что внутри указанного мною диапазона в 20 центов, однако он показывает всю внутренность диапазона почему-то :(
Вложения
0.2.png

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

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

Непрочитанное сообщение evge » 03 ноя 2017, 15:38

Повторю.

На каждом баре берется 200 баров от этого бара и назад в историю и вычисляется их суммарный диапазон от High до Low
затем сравнивается этот размер с P, в итоге всё корректно.

Увеличивайте P и уменьшайте Count.
никогда такого не было и вот опять

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

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

Непрочитанное сообщение Den » 03 ноя 2017, 15:49

Ну да все корректно,только одно "но" - показывает не так как надо :lol:

P планируется задать разными числами, поэтому его нельзя просто уменьшить или увеличить, а соunt тоже нельзя уменьшить - количество баров каждый раз различное и точно бывает больше 5, как видно на примере приведенном ранее.

Тут как-то иначе надо подойти видимо :geek:


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

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

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