Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Всё приходит постепенно. Сначала Вы должны вспомнить, что предложения пишутся с Большой буквицы, а стиль рубленого стиха никак не подходит для форума. Потом уже и само-собой получится и с нормализацией и с индексацией с нуля.
я ждал этого комментария )))))
нет ничего более естественного чем печатать быстро в стиле чата - одной строкой
это также естественно как считать начиная с 1
и округляя число получать его в том же виде округленным
давайте же, где ваш поток саркастических комментариев, наполненных формализмом?
жизнь - больше чем правильно расставленные точки и запятые и бинарные форматы
это поток ощущений и он должен быть прекрасен
это свобода и творчество
что Вы мне ответите на это?
Вы все надо мной издеваетесь, да?
мне просто нужно было напечатать дробное число без мусора
а мне доказывают что я что-то неправильно понимаю
mql для меня не самоцель а только инструмент, один из
по моему существуют очевидные вещи, как то - записал число в переменную, вывел на печать то же что и записал...
абсолютно НЕВАЖНО как это внутри там устроено и как число хранится, это системный уровень
и очевидно что эти хвосты нонсенс и недоработка прикладного уровня - non-friendly
но тут получается опять какой-то анекдот про программистов: "это не баг, это фича"
не зря эти анекдоты появились, не зря ))))))))
Нормализация NormalizeDouble() нужна при отсылке рассчитываемых параметров в качестве цен в торговых приказах. Вы можете отсылать цену Ask, Bid без нормализации, так как они уже нормализованы до нужной разрядности. Если же вы рассчитываете цены, например для стопа Bid-stopLoss*Point, то вот это выражение требует нормализации. Точно так же и цены для отложенных ордеров: вы их предварительно рассчитываете, а значит их необходимо нормализовать.
Когда вы сравниваете два вещественных числа, то нужно сравнивать их нормализованную разницу с нулём, либо с неким минимальным значением.
Когда вам требуется посмотреть чего вы там рассчитали, то для вывода на экран нужно использовать DoubleToString() с необходимой вам точностью. IntegerToString() с нужными вам параметрами.
Вот это желательно понять и усвоить.
нет ничего более естественного чем печатать быстро в стиле чата - одной строкой
это также естественно как считать начиная с 1
и округляя число получать его в том же виде округленным
давайте же, где ваш поток саркастических комментариев, наполненных формализмом?
жизнь - больше чем правильно расставленные точки и запятые и бинарные форматы
это поток ощущений и он должен быть прекрасен
это свобода и творчество
что Вы мне ответите на это?
Свобода ... а вас кто-то насильно удерживает?
Творчество ... творите, напишите сами для себя свои обёртки ко всем функциям МК и наслаждайтесь прекрасами.
Нормализация NormalizeDouble() нужна при отсылке рассчитываемых параметров в качестве цен в торговых приказах. Вы можете отсылать цену Ask, Bid без нормализации, так как они уже нормализованы до нужной разрядности. Если же вы рассчитываете цены, например для стопа Bid-stopLoss*Point, то вот это выражение требует нормализации. Точно так же и цены для отложенных ордеров: вы их предварительно рассчитываете, а значит их необходимо нормализовать.
Когда вы сравниваете два вещественных числа, то нужно сравнивать их нормализованную разницу с нулём, либо с неким минимальным значением.
Когда вам требуется посмотреть чего вы там рассчитали, то для вывода на экран нужно использовать DoubleToString() с необходимой вам точностью. IntegerToString() с нужными вам параметрами.
Вот это желательно понять и усвоить.
да, это я хорошо понимаю, нельзя послать ордер 1,234567 если котировка 5-знак
про сравнение чисел double я встречал упоминания..... и это ужасно
но насколько я понимаю можно безопасно сравнивать A>B до тех пор пока A и B заметно отличимы
только если окажется что если я например явно задал A=1.23456 и B=1.23456 и при этом if(A==B) выдаст false то это уже какой-то криминал
Нормализация NormalizeDouble() нужна при отсылке рассчитываемых параметров в качестве цен в торговых приказах. Вы можете отсылать цену Ask, Bid без нормализации, так как они уже нормализованы до нужной разрядности. Если же вы рассчитываете цены, например для стопа Bid-stopLoss*Point, то вот это выражение требует нормализации. Точно так же и цены для отложенных ордеров: вы их предварительно рассчитываете, а значит их необходимо нормализовать.
Когда вы сравниваете два вещественных числа, то нужно сравнивать их нормализованную разницу с нулём, либо с неким минимальным значением.
Когда вам требуется посмотреть чего вы там рассчитали, то для вывода на экран нужно использовать DoubleToString() с необходимой вам точностью. IntegerToString() с нужными вам параметрами.
Вот это желательно понять и усвоить.
а вообще меня напрягает тот факт что рассчитав дробное число, нормализовав его, записав в переменную, потом прочитав и нормализовав снова я получаю хвосты
например
basis[0]=NormalizeDouble(sum_A,2);
GlobalVariableSet("Equity-"+portfolio_id,basis[0]);
...
current=NormalizeDouble(GlobalVariableGet("Equity-"+portfolio_id),2);
text = "Positions synchronized at " + current + " for portfolio: " + portfolio_name;
if(!automatic) MessageBox(text,""); else Print(text);
сейчас уже поменял на
text = "Positions synchronized at " + DoubleToStr(current,2) + " for portfolio: " + portfolio_name;
if(!automatic) MessageBox(text,""); else Print(text);
и вроде бы хвосты не вылезают, тьфу тьфу
точнее - в исходном варианте было (string)current
то есть конвертация нормализованного числа оставляла хвосты
иногда (не всегда)
проблема сравнения двух double возникнет если например одно число задано константой а второе рассчитано через деление/умножение
В любом случае еще раз спасибо за то что потратили свое время на безнадежного гуманитария, если я у кого-то вызываю раздражение то еще раз извините, просто высказываю как думаю, без злого намерения.
Попутного всем тренда и хороших новостей.