Ошибка: cannot convert from 'double' to 'int'

Автор: ast

Ошибка: cannot convert from 'double' to 'int' - Wed Mar 24 2010 12:03 PM

Пытаюсь указать через переменную порядковый номер предыдущего бара (в формуле):
Close[i - ChangeBars]

ChangeBars - соответственно константа.

Появляется ошибка:

\TSLab\temp\code25.cs(86,20) : error CS1503: Argument '1': cannot convert from 'double' to 'int'

\TSLab\temp\code25.cs(86,14) : error CS1502: The best overloaded method match for 'System.Collections.Generic.IList<double>.this[int]' has some invalid arguments

Смысл ошибки понятен. Но как конвертировать double в int? Есть какой-то специальный конвертор?
Может быть, по умолчанию вообще сделать, чтобы в данном случае происходило автоматическое преобразование?
Автор: Nektodron

Re: Ошибка: cannot convert from 'double' to 'int' - Wed Mar 24 2010 04:20 PM

Как я понимаю ChangeBars - это константа. Используйте такую запись:
"Close[i - (int)ChangeBars]"
Автор: ast

Re: Ошибка: cannot convert from 'double' to 'int' - Wed Mar 24 2010 04:39 PM

Спасибо, так работает.
Автор: aaTrade

Re: Ошибка: cannot convert from 'double' to 'int' - Fri Jun 26 2020 04:40 PM

У меня такая же ошибка, cannot convert from 'double' to 'int'.
Пытаюсь указать номер бара close[i+BarNumber].

И функция (int) не работает close[i+(int)BarNumber]. - выдает ошибку: Не найден блок с именем 'Int'.

Так же не работает close[i+Convert.ToInt32(BarNumber)]
- ошибка: Не найден блок с именем 'Convert.ToInt32'.

Кто может помочь ?
Автор: ViL

Re: Ошибка: cannot convert from 'double' to 'int' - Thu Jul 02 2020 11:47 AM

i+ это заглядывание в будущее.
Так использовать нельзя.
Только i-
Автор: aaTrade

Re: Ошибка: cannot convert from 'double' to 'int' - Mon Jul 06 2020 11:34 AM

Согласен. Но проблема в другом.
cannot convert from 'double' to 'int'
Ни как не хочет конвертировать ! Помогите pls
Автор: ViL

Re: Ошибка: cannot convert from 'double' to 'int' - Mon Jul 06 2020 04:17 PM

в блоке BarNumber
попробуйте стандартным NET методом

Math.Round(Выражение)

И в результирующей формуле уже просто

close[i-BarNumber]

При этом "Начинать С" поставить вручную, заведомо больше BarNumber
Автор: aaTrade

Re: Ошибка: cannot convert from 'double' to 'int' - Thu Jul 09 2020 11:47 AM

Тоже не работает....
close[i-i+BarNumber]
cannot convert from 'double' to 'int'

Хочу всего лишь указать номер определенного бара
Как еще это можно сделать?
Автор: ViL

Re: Ошибка: cannot convert from 'double' to 'int' - Thu Jul 09 2020 06:07 PM

а как i-i ? это 0 так работать не будет
Автор: aaTrade

Re: Ошибка: cannot convert from 'double' to 'int' - Fri Jul 17 2020 11:59 AM

А как тогда указать номер бара от начала, а не от конца ? Например 20-й бар ?
И как все таки перевести с dbl то int??? Math.Round не помогает....
Автор: ViL

Re: Ошибка: cannot convert from 'double' to 'int' - Mon Jul 20 2020 04:50 PM

Close[-i]
Это будет закрытие первого бара.
convert from 'double' to 'int' не вижу что делаете, сложно сказать.
Автор: aaTrade

Re: Ошибка: cannot convert from 'double' to 'int' - Tue Aug 18 2020 02:32 PM

Все очень просто.Я всего лишь хочу найти/указать через номер бара который double значение MACD. Проблема, как я и писал выше, в конвертации с dbl то int. MACD[i-Convert.ToInt32(BarNumber)]
Тслаб не находит функцию Convert и Int. - ошибка: Не найден блок с именем 'Convert.ToInt32'.
В чем проблема?
Автор: ViL

Re: Ошибка: cannot convert from 'double' to 'int' - Tue Aug 18 2020 04:56 PM

В отдельной Формула написать Math.Round(Выражение)
Во второй формуле уже пишем
MACD[i-Формула1]
Автор: aaTrade

Re: Ошибка: cannot convert from 'double' to 'int' - Tue Aug 18 2020 10:45 PM

Math.Round(Выражение) Тоже не работает.... Есть другой способ?
Автор: ViL

Re: Ошибка: cannot convert from 'double' to 'int' - Wed Aug 19 2020 07:08 PM

Посмотрите пожалуйста:


Автор: aaTrade

Re: Ошибка: cannot convert from 'double' to 'int' - Fri Aug 21 2020 04:25 PM

PexlBAR это номер бара (dbl) от начала,а не с конца, поэтому использую i-i+bar.
тслаб выдает ошыбку и не находит функцыи int() и ConvertToInt
Автор: ViL

Re: Ошибка: cannot convert from 'double' to 'int' - Fri Aug 21 2020 07:04 PM

Я писал вроде бы выше. Так работать не будет.
Значение с первого бара это просто [-i] получить можно, посчитать так не получиться.