Library "math_utils" Collection of math functions that are not part of the standard math library
num_of_non_decimal_digits(number) num_of_non_decimal_digits - The number of the most significant digits on the left of the dot Parameters: number: - The floating point number Returns: number of non digits
num_of_decimal_digits(number) num_of_decimal_digits - The number of the most significant digits on the right of the dot Parameters: number: - The floating point number Returns: number of decimal digits
floor(number, precision) floor - floor with precision to the given most significant decimal point Parameters: number: - The floating point number precision: - The number of decimal places a.k.a the most significant decimal digit - e.g precision 2 will produce 0.01 minimum change Returns: number floored to the decimal digits defined by the precision
ceil(number, precision) floor - ceil with precision to the given most significant decimal point Parameters: number: - The floating point number precision: - The number of decimal places a.k.a the most significant decimal digit - e.g precision 2 will produce 0.01 minimum change Returns: number ceiled to the decimal digits defined by the precision
clamp(number, lower, higher, precision) clamp - clamp with precision to the given most significant decimal point Parameters: number: - The floating point number lower: - The lowerst number limit to return higher: - The highest number limit to return precision: - The number of decimal places a.k.a the most significant decimal digit - e.g precision 2 will produce 0.01 minimum change Returns: number clamped to the decimal digits defined by the precision
Catatan Rilis
⋅
v2 Remove simple from time serries
Catatan Rilis
⋅
v3
Added: clamp_up(number, lower, higher, precision) clamp - clamp with precision to the given most significant decimal point. Ceil is favored for the precision rounding. Parameters: number: - The floating point number lower: - The lowerst number limit to return higher: - The highest number limit to return precision: - The number of decimal places a.k.a the most significant decimal digit - e.g precision 2 will produce 0.01 minimum change Returns: number clamped to the decimal digits defined by the precision
clamp_down(number, lower, higher, precision) clamp - clamp with precision to the given most significant decimal point. Floor is favored for the precision rounding. Parameters: number: - The floating point number lower: - The lowerst number limit to return higher: - The highest number limit to return precision: - The number of decimal places a.k.a the most significant decimal digit - e.g precision 2 will produce 0.01 minimum change Returns: number clamped to the decimal digits defined by the precision
Catatan Rilis
⋅
v4 Add overloads that support series precision with none simple parameter
Catatan Rilis
⋅
v5 Add example for quantity calculation
Catatan Rilis
⋅
v6 Use Method syntax for a more intuitive interface!
Catatan Rilis
⋅
v7 Add "simple" overloads for the number itself.
Catatan Rilis
⋅
v8 (minor) use this as an indication for the "self type" instance
Catatan Rilis
⋅
v9
Added: method floor_to_mintick(this) floor_to_mintick - floor with precision to the mintick most significant decimal point Namespace types: series float, simple float, input float, const float Parameters: this (float): - The floating point number Returns: - number floored to the decimal digits defined by the mintick precision
method ceil_to_mintick(this) ceil_to_mintick - ceil with precision to the mintick most significant decimal point Namespace types: series float, simple float, input float, const float Parameters: this (float): - The floating point number Returns: - number ceiled to the decimal digits defined by the mintick precision
Updated: method num_of_non_decimal_digits(this) num_of_non_decimal_digits - The number of the most significant digits on the left of the dot Namespace types: series float, simple float, input float, const float Parameters: this (float): - The floating point number Returns: - number of non digits
method num_of_decimal_digits(this) num_of_decimal_digits - The number of the most significant digits on the right of the dot Namespace types: series float, simple float, input float, const float Parameters: this (float): - The floating point number Returns: - number of decimal digits
method floor(this, precision) floor - floor with precision to the given most significant decimal point Namespace types: simple float, input float, const float Parameters: this (simple float): - The floating point number precision (int): - The number of decimal places a.k.a the most significant decimal digit - e.g precision 2 will produce 0.01 minimum change Returns: - number floored to the decimal digits defined by the precision
method ceil(this, precision) ceil - ceil with precision to the given most significant decimal point Namespace types: simple float, input float, const float Parameters: this (simple float): - The floating point number precision (int): - The number of decimal places a.k.a the most significant decimal digit - e.g precision 2 will produce 0.01 minimum change Returns: - number ceiled to the decimal digits defined by the precision
method clamp_up(this, lower, higher, precision) clamp - clamp with precision to the given most significant decimal point. Ceil is favored for the precision rounding. Namespace types: simple float, input float, const float Parameters: this (simple float): - The floating point number lower (float): - The lowerst number limit to return higher (float): - The highest number limit to return precision (int): - The number of decimal places a.k.a the most significant decimal digit - e.g precision 2 will produce 0.01 minimum change Returns: - number clamped to the decimal digits defined by the precision
method clamp_down(this, lower, higher, precision) clamp_down - clamp with precision to the given most significant decimal point. Floor is favored for the precision rounding. Namespace types: simple float, input float, const float Parameters: this (simple float): - The floating point number lower (float): - The lowerst number limit to return higher (float): - The highest number limit to return precision (int): - The number of decimal places a.k.a the most significant decimal digit - e.g precision 2 will produce 0.01 minimum change Returns: - number clamped to the decimal digits defined by the precision
method clamp(this, lower, higher, precision) clamp - clamp with precision to the given most significant decimal point. No specific direction is favored for the precision rounding. Namespace types: simple float, input float, const float Parameters: this (simple float): - The floating point number lower (float): - The lowerst number limit to return higher (float): - The highest number limit to return precision (int): - The number of decimal places a.k.a the most significant decimal digit - e.g precision 2 will produce 0.01 minimum change Returns: - number clamped to the decimal digits defined by the precision
Nice use of the new PINE script feature, @jason5480.
I haven't used methods a ton but at a high level it is similar to a custom function and it can be called separately like a function, but it can also be appended to a variable to execute the function by appending its name to a variable that matches the first declared variable type of the method:
for example, for the floor method defined in this library
var float price_10d_average stop_loss = price_10d_average.floor
jason5480
⋅
Yes @metadimensional this the use case of the methods. They are like class methods in other object oriented languages. The only difference is that here they are defined outside of the scope of the custom type. In the example above you have to also pass the (remaining) arguments eg. stop_loss = price_10d_average.floor(precision = 2). Now I am curious to see what will happen when the standard math library that also has a floor function will also update to the method syntax.
JohnBaron
⋅
thanks for this!
jason5480
⋅
@JohnBaron, I wish this were part of the official math library :D
I haven't used methods a ton but at a high level it is similar to a custom function and it can be called separately like a function, but it can also be appended to a variable to execute the function by appending its name to a variable that matches the first declared variable type of the method:
for example, for the floor method defined in this library
var float price_10d_average
stop_loss = price_10d_average.floor