Вы неправильно воспринимаете точность. Нормализация не означает,
что Вы получите 1.123400000000000
Любое вещественное число в double можно представить лишь с определенной погрешностью.
То есть, величина 1.123400000000001 есть наиболее близкая к 1.123400000000000
Любое вещественное число в double можно представить лишь с определенной погрешностью.
То есть, величина 1.123400000000001 есть наиболее близкая к 1.123400000000000
Ладно,тогда по делу спрошу...
Мне надо чтоб стоплосс всегда был максимально близко к ордеру,
на столько,на сколько это позволяет MODE_STOPLEVEL.
//MODE_STOPLEVEL = 10 //OrderStopLoss() = 1.1011 //Открыт селл ордер if (OrderStopLoss()-Ask>=10*Point) OrderModify(OrderTicket(),0,Ask+10*Point,Ask-tp*Point,0,0);
В этом случае,если Ask будет 1.10010000000000001,тогда условие будет срабатывать
только тогда,
когда Ask станет 1.1000 и соответственно MODE_STOPLEVEL для меня уже будет
11!
Просто устал уже везде NormalizeDouble(..) писать.
Bid и Ask частенько грешат. Нормализовывать приходится всегда.
Ни разу в жизни не пользовался нормализацией.
Системы которым критичен каждый пипс все равно в жизни работать не будут.
Я всегда делаю люфт в размере спреда (иногда двух)
Системы которым критичен каждый пипс все равно в жизни работать не будут.
Я всегда делаю люфт в размере спреда (иногда двух)
Mak писал (а):
Ни разу в жизни не пользовался нормализацией.
Системы которым критичен каждый пипс все равно в жизни работать не будут.
...
Смысл "каждого пипса" - это не для того,что бы делать пипсовые
системы и собирать по пункту,а для того Ни разу в жизни не пользовался нормализацией.
Системы которым критичен каждый пипс все равно в жизни работать не будут.
...
чтобы оттестировав систему на демо недельку две,а потом прогнав на этом же промежутке на тестере получить
как можно более близкие результаты и таким образом понять на сколько правильно тестер тестирует определенную систему.
чтобы меньше писать, можно создать функцию
иногда в тестере попадаются ненормальные Bid/Ask и дают ошибку на OrderSend/OrderClose
double nd(double x) { return(NormalizeDouble(x,Digits)); }
иногда в тестере попадаются ненормальные Bid/Ask и дают ошибку на OrderSend/OrderClose
Renat, а почемубы MT самому не нормализовывать критичные параметры
автоматически!
Mihail:
Renat, а почемубы MT самому не нормализовывать критичные параметры автоматически!
А зачем брать на себя исправление ошибок программистов?Renat, а почемубы MT самому не нормализовывать критичные параметры автоматически!
Чтобы получить постоянный поток обвинений из-за того, что программисты не следят за числами, а мы подчищаем за ними и создаем ситуации с несходимостями?
Обсуждается ведь не сам MQL4, а основы работы с вещественными числами. Точно такое же поведение вещественных чисел и в стандартных языках как C/C++.
Мы уже пытались делать "человеческие" языки. Это были MQL и MQL2. В результате поняли, что язык программирования - он для программистов и обманывать себя не надо тем, что может быть язык для неподготовленных пользователей. Это программирование и программисты должны отвечать за свой код.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Может ли когда-нибудь оказаться не нормализованное значение в переменных Bid и Ask ??
типа Bid = 1.123400000000001 и т.п.