Общие вопросы по разработке > Ошибка при сравнении Bool и Double
- evge
- Администратор
- Сообщения: 1817
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 375 раз
- Контактная информация:
Re: Ошибка при сравнении Bool и Double
Конечно, его же нет, как просили 
Отображение последних значений функция работает для последнего видимого бара. Откатите график так что бы стрелки и значения гистограммы были на последнем баре и увидите значение.
			
									
						
Отображение последних значений функция работает для последнего видимого бара. Откатите график так что бы стрелки и значения гистограммы были на последнем баре и увидите значение.
никогда такого не было и вот опять
						Re: Ошибка при сравнении Bool и Double
Да точно, видно. Но тут отсчет же идет не от последнего , удовлетворившего условию ? Раз они отображаются не поочередно, или  поочередности H L тут не достигнуть?
			
									
						Re: Ошибка при сравнении Bool и Double
Евгений, подскажите пожалуйста как ограничить высоту бара 
То есть исключить бары ниже определенной высоты.
			
									
						То есть исключить бары ниже определенной высоты.
Код: Выделить всё
function Initialize()
{
IndicatorName = "A;
AddInput("Input1", Inputs.Candle);   
   
PriceStudy = true;   
AddSeries("H", DrawAs.Custom, Color.Coral);   
AddSeries("L", DrawAs.Custom, Color.LightGreen);   
}
function Evaluate()
{
if (Input.High[0] >= MY.индикатор_LAST(Input).GetValue("Last", 0)  )
{
     
          H[0] = Input1.High[0];
             
}     
if (Input.Low[0] <= MY.индикатор_LAST(Input).GetValue("Last", 0)  )
{
     
          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);
}
- evge
- Администратор
- Сообщения: 1817
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 375 раз
- Контактная информация:
Re: Ошибка при сравнении Bool и Double
Код: Выделить всё
var HeightAll = Input1.High - Input1.Low;
var HeightBody = Math.Abs(Input1.Open - Input1.Close);
//Если тело свечи больше 10
if (HeightBody > 10) 
{
...
}никогда такого не было и вот опять
						Re: Ошибка при сравнении Bool и Double
Евгений , спасибо за ответ. 
А как установить ограничение на высоту массива из нескольких баров (больше одного) ?
Число баров может быть разное (то есть не в пределах одного как он отметил).
							А как установить ограничение на высоту массива из нескольких баров (больше одного) ?
Число баров может быть разное (то есть не в пределах одного как он отметил).
- Вложения
- 
			
		
				- 13.png (7.19 КБ) 24016 просмотров
 
- evge
- Администратор
- Сообщения: 1817
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 375 раз
- Контактная информация:
Re: Ошибка при сравнении Bool и Double
MinValue(Series, N=1, D=0) – возвращает минимальное значение из N точек ряд Series со смещением D назад
MaxValue(Series, N=1, D=0) – возвращает максимальное значение из N точек ряд Series со смещением D назад
Ранее (год назад) эти методы не работали в индикаторах, только в стратегиях. Может быть добавили и уже работают.
Если не сработает в индикаторе, значит ищем другим методом минимум и максимум за период.
			
									
						MaxValue(Series, N=1, D=0) – возвращает максимальное значение из N точек ряд Series со смещением D назад
Код: Выделить всё
int Count = 5;
double Min = MinValue(Input1.Low, Count, 0);
double Max = MaxValue(Input1.High, Count, 0);
double HeightAll = Max - Min;
//Если высота Count баров больше 10
if (HeightAll > 10) 
{
...
}Ранее (год назад) эти методы не работали в индикаторах, только в стратегиях. Может быть добавили и уже работают.
Если не сработает в индикаторе, значит ищем другим методом минимум и максимум за период.
никогда такого не было и вот опять
						Re: Ошибка при сравнении Bool и Double
а как его сюда интегрировать, исправьте пожалуйста  
 
			
									
						 
 Код: Выделить всё
function Initialize()
{
IndicatorName = "A";
AddInput("Input1", Inputs.Candle);   
PriceStudy = true;   
AddSeries("H", DrawAs.Custom, Color.Coral);   
AddSeries("L", DrawAs.Custom, Color.LightGreen);   
AddShadowSeries("D", DrawAs.Custom, Color.HotPink);
}
function Evaluate()
{
var HeightAll = Input.High - Input.Low;
var HeightBody = Math.Abs(Input.High - Input.Low);
if (Input.High[0] >= MY.индикатор_LAST(Input).GetValue("Last", 0) )
{
if (HeightBody >= 0.14) 
H[0] = Input1.High[0];
} 
if (Input.Low[0] <= MY.индикатор_LAST(Input).GetValue("Last", 0) )
{
if (HeightBody >= 0.14) 
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);- evge
- Администратор
- Сообщения: 1817
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 375 раз
- Контактная информация:
Re: Ошибка при сравнении Bool и Double
Проверил, так и не добавили возможность в индикаторах АД4 использовать MinValue, MaxValue. Что странно!
Поэтому так:
			
									
						Поэтому так:
Код: Выделить всё
function Initialize()
{
IndicatorName = "A";
AddInput("Input1", Inputs.Candle);   
PriceStudy = true;   
AddSeries("H", DrawAs.Custom, Color.Coral);   
AddSeries("L", DrawAs.Custom, Color.LightGreen);   
AddShadowSeries("D", DrawAs.Custom, Color.HotPink);
}
function Evaluate()
{
int Count = 5;
double Min = Double.MaxValue;
double Max = 0;
for (int x = 0; x < Count; x++) 
{
   if (Input1.Close[x] > Max) Max = Input1.Close[x];
   if (Input1.Open[x] > Max) Max = Input1.Open[x];
   if (Input1.Close[x] < Min) Min = Input1.Close[x];
   if (Input1.Open[x] < Min) Min = Input1.Open[x];
}
double HeightBody = Max - Min;
if (Input.High[0] >= MY.индикатор_LAST(Input).GetValue("Last", 0) )
{
if (HeightBody >= 0.14) 
H[0] = Input1.High[0];
} 
if (Input.Low[0] <= MY.индикатор_LAST(Input).GetValue("Last", 0) )
{
if (HeightBody >= 0.14) 
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);
}
никогда такого не было и вот опять
						Re: Ошибка при сравнении Bool и Double
в предыдущем виде с ограничением на высоту одного бара он показывает так,
							- Вложения
- 
			
		
				- frr.png (7.93 КБ) 24007 просмотров
 
Вернуться в «Общие вопросы по разработке»
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 304 гостя

