价格和点数互转

double PriceToPips(double price) {
    double pips = 0;

    int digits = (int)MarketInfo(Symbol(), MODE_DIGITS);

    if(digits == 3 || digits == 5) {
        pips = price * MathPow(10, digits) / 10;
    }

    if(digits == 2 || digits == 4) {
        pips = price * MathPow(10, digits);
    }

    pips = NormalizeDouble(pips, 1);

    return(pips);
}

double PipsToPrice(double pips) {
    double price = 0;

    int digits = (int)MarketInfo(Symbol(), MODE_DIGITS);

    if(digits == 3 || digits == 5) {
        price = pips / MathPow(10, digits) * 10;
    }

    if(digits == 2 || digits == 4) {
        price = pips / MathPow(10, digits);
    }

    price = NormalizeDouble(price, digits);
    return(price);
}

//+------------------------------------------------------------------+
//| Function: round down                                             |
//+------------------------------------------------------------------+
double RoundDown(double val, int digit)
{
   return ((double)(int)(val * MathPow(10, digit))) / MathPow(10, digit);

   /*
   上記式は、以下の手順を1行に集約したもの
   double rev1  = val * MathPow(10, digit);  // valに10のdigit乗を掛けて小数点位置をずらす
   int    rev2  = (int)rev1;                 // 整数に型変換することで小数点以下をカット
   double rev3  = (double)rev2;              // データ型をdoubleに戻す
   double rev4  = rev3 / MathPow(10, digit); // 10のdigit乗で割って小数点位置を元に戻す
   return rev4;
   */

}

//+------------------------------------------------------------------+
//| Function: round up                                               |
//+------------------------------------------------------------------+
double RoundUp(double val, int digit)
{
   double adjust = (val >= 0)? 0.9 : -0.9;
   return ((double)(int)(val * MathPow(10, digit) + adjust)) / MathPow(10, digit);

   /*
   上記式は、以下の手順を2行に集約したもの
   double adjust = (val >= 0)? 0.9 : -0.9;   // valが0以上の場合はajust=0.9、そうでなければadjust=-0.9
   double rev1  = val * MathPow(10, digit);  // valに10のdigit乗を掛けて小数点位置をずらす
   double rev2  = rev1 + adjust;             // adjustの値を足す
   int    rev3  = (int)rev2;                 // 整数に型変換することで小数点以下をカット
   double rev4  = (double)rev3;              // doubleに戻す
   double rev5  = rev4 / MathPow(10, digit); // 10のdigit乗で割って小数点位置を元に戻す
   return rev5;
   */
}
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇