TradingView
MichelT
14 de Feb. de 2020 18:47

String to Number 

Apple Inc.NASDAQ

Descripción

A small method to translate strings to numbers.
For example, we have a string:

s = "321"

To check if the last symbol is "1", we might just try to remove (or replace with an empty string) the symbol "1". If the string changed, then there was the symbol "1" in the string:

s2 = str.replace_all (s, "1", "")

now s2 is "32", so

s == s2 returns false.

But we can't find out what the position of the symbol "1" was and if there was only one symbol "1".

To be sure, we just add a special character (I use ';') to the end of the string, and then try to remove not just "1", but the string "1;":

s = "321;"
s2 = str.replace_all (s, "1;", "")

Now, if s != s2, then we might be sure, that last symbol of the string was "1". And then we might check for all digits and get information about what digit we have and at what position. Same for additional symbols: decimal point and minus.
Comentarios
ZenAndTheArtOfTrading
Phenomenal work mate, this really should be an inbuilt function but lucky for the Pine community you're here!
Quansium
Beautiful work, I don't congratulate just everyone but this is as close to witchcraft as it gets in a good way.
Quansium
@Quansium, can you take a look into why this doesn't work with Strategy parameters, specifically "strategy.commission.percent"? I didn't spend much time trying to figure it out but in the few minutes I did it didn't work.
MichelT
@Quansium, Could you elaborate what exactly doesn't work? `strategy.commission.percent` is just a regular string "percent", which might be printed in a label, so there's no anything to parse as a number.
Quansium
@MichelT, i'm more inclined into algo trading, I want to calculate some advanced backtest results so it is all custom, I need fees to be added into the calculation. I can't use TV fees because they're strings. So I had to have a separate input where the user entered the fees. If I can convert the TV fees string into a number, I don't need the input repeated.
MichelT
@Quansium, Could you share some code, because I'm not quite understand the case. Maybe, you could send my a link to the code example as a private message.
Quansium
@MichelT, I will, it is rather simple, I just didn't want to have it posted on comments as it includes your code which will make my example long enough to take considerable space on here.
MichelT
@Quansium, thanks, I really appreciate it.
kakola
Now we have str.tonumber(), right?
krushnagoure1
hello guys, when I try to convert '11110894088809630988' this value it gives wrong results.
Más