Посмотрите пример использования функций:
- MathCeil - возвращает ближайшее сверху целое числовое значение;
- MathRound - округляет число до ближайшего целого;
- MathFloor - возвращает ближайшее снизу целое числовое значение.
в коде MathCeilRoundFloor. Это чтобы сначала понять как производятся округления и как получить ближайшее сверху, снизу или просто ближайшее значение.
Потом это пригодится для расчёта уровней.
И пример расчёта уровней в коде Renko Level
Расчет ближайшей границы осуществляется по следующей схеме:
Посмотрите пример использования функций:
- MathCeil - возвращает ближайшее сверху целое числовое значение;
- MathRound - округляет число до ближайшего целого;
- MathFloor - возвращает ближайшее снизу целое числовое значение.
в коде MathCeilRoundFloor. Это чтобы сначала понять как производятся округления и как получить ближайшее сверху, снизу или просто ближайшее значение.
Потом это пригодится для расчёта уровней.
И пример расчёта уровней в коде Renko Level
Расчет ближайшей границы осуществляется по следующей схеме:
А на языке МКЛ 4 нет? я изучаю Мкл4. Мкл 5 для меня будущий этап после МКЛ4.
Это форум MQL5, поэтому ВЫ получили ответ для MQL5. Вопросы по старому терминалу обсуждаются в спец. разделе MQL4 и MetaTrader 4
Это форум MQL5, поэтому ВЫ получили ответ для MQL5. Вопросы по старому терминалу обсуждаются в спец. разделе MQL4 и MetaTrader 4
Извините, я плохо ориентируюсь на этом форуме вроде находишься на МТ4 потом стоит переключится и обновить страницу ты уже на МТ5.
Но вы мне очень помогли ваша функция
MathCeilRoundFloor - я ее изучаю она как раз мне подходит
можно вопрос как из нее вытащить уровень который находится рядом с ценой Бид?
double price=1.01561; Print("\n","Start price: ",DoubleToString(price,5)); for(int i=0;i<10;i++) { Print("MathCeil(",DoubleToString(price,5),") -> ",MathCeil(price)); Print("MathRound(",DoubleToString(price,5),") -> ",MathRound(price)); Print("MathFloor(",DoubleToString(price,5),") -> ",MathFloor(price)); Print(""); price+=1.9; }
if(Bid == price) open = 1; else open = 0; <<<---- так будет правильно?
Извините, я плохо ориентируюсь на этом форуме вроде находишься на МТ4 потом стоит переключится и обновить страницу ты уже на МТ5.
Но вы мне очень помогли ваша функция
MathCeilRoundFloor - я ее изучаю она как раз мне подходит
можно вопрос как из нее вытащить уровень который находится рядом с ценой Бид?
if(Bid == price) open = 1; else open = 0; <<<---- так будет правильно?
Кто нибудь знает как теперь узнать, что цена находится рядом с этим уровнем.
void OnStart() { //--- double price=1.2; Print("\n","Start price: ",DoubleToString(price,5)); for(int i=0;i<20;i++) { Print("MathCeil(",DoubleToString(price,5),") -> ",MathCeil(price)); Print("MathRound(",DoubleToString(price,5),") -> ",MathRound(price)); Print("MathFloor(",DoubleToString(price,5),") -> ",MathFloor(price)); Print(""); price+=0.0005; } }
Получили 20 уровней, теперь как прописать в коде чтобы узнать что цена Бид рядом с этим уровнем к примеру 9?
Кто нибудь знает как теперь узнать, что цена находится рядом с этим уровнем.
Получили 20 уровней, теперь как прописать в коде чтобы узнать что цена Бид рядом с этим уровнем к примеру 9?
int Levels=20; // количество уровней от цены
double price=(1.12600-300*Levels); // цена старт
Print("\n","Цена, начало старта: ",DoubleToString(price,5));
for(int i=0;i<Levels*2;i++)
{
double Math_Ceil,Math_Floor;
Math_Ceil = (price+10*Point);
Math_Floor = (price-10*Point);
Print("\n","Math_Ceil: ",DoubleToString(Math_Ceil,5)," Math_Floor: ",DoubleToString(Math_Floor,5));
в принте все уровни Levels*2 = 40 показаны
if(Math_Ceil-Bid>=0 && Math_Floor-Bid<=0) //<<------- что здесь не правильно??? почему не видит уровни???
levelRange = 1; else levelRange = 0;
price+=300; // будем добавлять пункты к каждому следующему уровню
}
...
if(Math_Ceil-Bid>=0 && Math_Floor-Bid<=0) //<<------- что здесь не правильно??? почему не видит уровни???
{
Print("Level...., Price...")
break;
}
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Я только начинаю изучать язык мкл. Прошу сильно не пинать.
У меня вопрос есть уровень к примеру
Х = 1.12654; я хочу прибавить к этому уровню Y= 0.00250; пунктов, итд к каждому новому уровню прибавляем пункты Y. Получаем сетку уровней.
S1,S2,S3,S4,S5 ......S100
Вопрос как можно программно вычислить эти уровни, не расписывая каждый его по отдельности.
К примеру цена Bid подошла к уровню S57 или к уровню S92 - как сделать проще, или есть какой нибудь пример уже реализованный.
Помогите пожалуйста, я уже неделю ломаю голову, вы тоже были когда то начинающими программистами, надеюсь на вашу помощь. Спасибо.