Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Все программы в Code Base доступны из MetaTrader 5. Опубликуй и ты свою!
Aleksey
248
Aleksey 2011.05.31 15:18 

Здравствуйте, подскажите как можно сложить целое число с числом double

Для чего мне это надо.

Пишу функцию для определения флета и построения флетового коридора, я нахожу максимальную цену за последние N баров и минимальную за N баров, если эти лоу и хай не входят в диапазон extern MaxFlet = 130; то ищем хай лоу уже по меньшему количеству баров.

ну вобщем мне надо (Хай - Лоу) > MaxFlet.

Сразу скажу документацию честно перерыл, в гости к гуглу ходил и ничо не понял ((

Пример кода:

         int NumBarH = ArrayMaximum(High, 5, 0);       // Данные функции выводят номер бара с максимальным минимальным значением.
         int NumBarL = ArrayMinimum(Low, 5, 0);

         (High[NumBarH] - Low [NumBarL]) > 130
DenisR
665
DenisR 2011.05.31 15:26  
PozitiF:

Здравствуйте, подскажите как можно сложить целое число с числом double

Для чего мне это надо.

Пишу функцию для определения флета и построения флетового коридора, я нахожу максимальную цену за последние N баров и минимальную за N баров, если эти лоу и хай не входят в диапазон extern MaxFlet = 130; то ищем хай лоу уже по меньшему количеству баров.

ну вобщем мне надо (Хай - Лоу) > MaxFlet.

Сразу скажу документацию честно перерыл, в гости к гуглу ходил и ничо не понял ((


Ничего складывать не нужно. Должно быть так: (Хай - Лоу) > MaxFlet*Point. В этом случае разность (Хай - Лоу) типа double и произведение MaxFlet*Point тоже тип double. А вот это неправильно: extern MaxFlet = 130; Правильно так: extern int MaxFlet = 130;
Aleksey
248
Aleksey 2011.05.31 15:36  
FxRoller:

А вот это неправильно: extern MaxFlet = 130; Правильно так: extern int MaxFlet = 130;

Да у меня в коде правильно написано, это я быстро от руки просто здесь писал для примера так сказать.

Да всё работает ) самое интересно что я видел такую формулу, пересматривая чужие советники, но не понял её ( Спасибо большое.

Aleksey
248
Aleksey 2011.05.31 16:07  

Вот кстати придумал таки формулу, для сложения целого числа с double может пригодится кому, а то искал искал не нашел нигде.

1.43567+(30/100000)=1.43597

Dmitry Fedoseev
41187
Dmitry Fedoseev 2011.05.31 16:12  
PozitiF:

Вот кстати сходил покурил 2 раза и родилась формула, для сложения целого числа с double может пригодится кому, а то искал искал не нашел нигде.

1.43567+(30/100000)=1.43597


Вам уже ответили, а вы никак найти не можете: 

MaxFlet*Point 
Bicus
2395
Bicus 2011.05.31 16:13  
PozitiF:

Вот кстати сходил покурил 2 раза и родилась формула, для сложения целого числа с double может пригодится кому, а то искал искал не нашел нигде.

1.43567+(30/100000)=1.43597

Не пригодится. :)

Вам же сказали: Point есть для этого. На 100000 делить - это только для евродоллара проканает. Для йены, например, - уже нет


Aleksey
248
Aleksey 2011.05.31 16:14  
Integer:


Вам уже ответили, а вы никак найти не можете:


Я понял ответ и уже ипользовал его, и поблагодарил. Та формула возвращает результат с 4 знаками после точки а эта со всеми 5.
Dmitry Fedoseev
41187
Dmitry Fedoseev 2011.05.31 16:22  
PozitiF:

... Та формула возвращает результат с 4 знаками после точки а эта со всеми 5.

Та формула возвращает столько знаков, сколько у цены знаков после запятой. 

George
505
George 2011.05.31 16:27  
если уж так горит факел, что невмоготу, присвойте новой переменной дабл значение своей интежер и складывайте новую дабл с требуемой дабл и нормализуйте хоть до 20 знака на здоровье. Надеюсь, понятно объяснил
Андрей
1890
Андрей 2011.05.31 17:12  
Не вводите(сь) в заблуждение.
Print(1.43567 + (30/100000) );
даёт 1.43567.

А чтобы было написано то, что подразумевалось,
писать нужно
30.0/100000
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий