Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Как подобрать необходимый сигнал и быстро подписаться на него
Roman Kutemov
1766
Roman Kutemov 2011.01.17 09:40 

Есть например цена 1,42974

как из неё получить 1,42 ?

если использовать NormalizeDouble(1,42974, 2) то получим 1,43

Vladyslav Goshkov
1967
Vladyslav Goshkov 2011.01.17 09:43  
Stells:

Есть например цена 1,42974

как из неё получить 1,42 ?

если использовать NormalizeDouble(1,42974, 2) то получим 1,43

double b = 1.429786554444;

double c = MathCeil(b*100)/100.0;

Можно так.

Avals
3154
Avals 2011.01.17 09:45  
VladislavVG:

double b = 1.429786554444;

double c = MathCeil(b*100)/100.0;

Можно так.


MathFloor наверное?
Roman Kutemov
1766
Roman Kutemov 2011.01.17 09:54  

Влад, здорово.

Что то опять не то.

В общем главная задача, надо из значения 1,42974

получить 97 пунктов.

Например из цены 1, 24681

получить 68 пунктов

Владимир Тезис
4266
Владимир Тезис 2011.01.17 09:55  
Stells:

Влад, здорово.

Что то опять не то.

В общем главная задача, надо из значения 1,42974

получить 97 пунктов.

Например из цены 1, 24681

получить 68 пунктов


Мне как-то понадобилось в коде советника использовать отброс дробной части. Вызвал Delphi, сделал DLL-ку и не парюсь.
Avals
3154
Avals 2011.01.17 09:55  
Stells:

Влад, здорово.

Что то опять не то.

В общем главная задача, надо из значения 1,42974

получить 97 пунктов.

Например из цены 1, 24681

получить 68 пунктов


ну вычтите (b-c)
Vladyslav Goshkov
1967
Vladyslav Goshkov 2011.01.17 10:26  
Stells:

Влад, здорово.

Что то опять не то.

В общем главная задача, надо из значения 1,42974

получить 97 пунктов.

Например из цены 1, 24681

получить 68 пунктов

Можно так. Нет приведения типов - потому приходится немного колдовать ;)

//+------------------------------------------------------------------+
//|                                                     toStells.mq4 |
//|                                    Copyright © 2011, VladislavVG |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, VladislavVG"
#property link      "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
double GetStdPointSize(string SMBL)
{
    // ********************** FOREX ********************** 
    if (StringFind(SMBL, "JPY") != -1) return(0.01);
    if (StringFind(SMBL, "HUF") != -1) return(0.01);
    if (StringFind(SMBL, "XAG") != -1) return(0.01);
    if (StringFind(SMBL, "XAU") != -1) return(0.1);
    if (StringFind(SMBL, "USD") != -1) return(0.0001);
    // ********************** CFD ********************** 
    return(0.01);
}

int start()
  {
//----
   double b         = 1.4285657834;
   double nPoint    = GetStdPointSize(Symbol());
   double point100  = 100.*nPoint;
   int   ic = b/point100;
   double c = ic*point100;
   int   id = b/nPoint;
   double d = id*nPoint;
   double rez = d-c;
   Print("rez = ", rez);
//----C
   return(0);
  }
//+------------------------------------------------------------------+

Удачи.

Roman Kutemov
1766
Roman Kutemov 2011.01.17 10:31  
VladislavVG:

Можно так. Нет приведения типов - потому приходится немного колдовать ;)

Удачи.


Спасибо. Попробую.
Fedor
2763
Fedor 2011.01.17 10:40  
как всё это найти по поиску...??? "обрезать без округления"? https://www.mql5.com/ru/forum/106198
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий