Calculating with negative values?

Antares66

Member
In my scanner i want to look for stocks which have a price change by more than -5%.
"close-close[1]*100/close[1]>-5" did not work. Must i enter another expression than "-5" ?
Don´t know how to manage negative values

Thanks
 
Solution
In my scanner i want to look for stocks which have a price change by more than -5%.
"close-close[1]*100/close[1]>-5" did not work. Must i enter another expression than "-5" ?
Don´t know how to manage negative values

Thanks

i think your formula needs some ( ) added

this
close-close[1]*100/close[1]>-5

is like this
close - ( close[1]*100/close[1] ) > -5

it is doing this part first
close[1]*100/close[1]
then subtracting it from close

try this
(100 * ( ( close - close[1] ) /close[1] ) > -5)

halcyonguy

Well-known member
VIP
In my scanner i want to look for stocks which have a price change by more than -5%.
"close-close[1]*100/close[1]>-5" did not work. Must i enter another expression than "-5" ?
Don´t know how to manage negative values

Thanks

i think your formula needs some ( ) added

this
close-close[1]*100/close[1]>-5

is like this
close - ( close[1]*100/close[1] ) > -5

it is doing this part first
close[1]*100/close[1]
then subtracting it from close

try this
(100 * ( ( close - close[1] ) /close[1] ) > -5)
 
Solution
Looks like @halcyonguy beat me to the answer! (go read his post first)

This isn't about negative value calculation as much as it's about operator precedence. Reference: https://tlc.thinkorswim.com/center/reference/thinkScript/Operators/Operator-Precedence

That is, the multiply and divide operations occur prior to the addition/subtraction operations.

You can bypass this with parenthesis

See the study below, and the screenshot illustrating the values that result from the code without parenthesis, versus the one with parenthesis.

I even included plots showing the steps in the calculations, so you can view it on the given chart and you should get the same results.

Code:
# Reference: https://tlc.thinkorswim.com/center/reference/thinkScript/Operators/Operator-Precedence
# Note: multiply and divide come BEFORE subtraction
# [img]https://i.imgur.com/f66flgz.png[/img]

plot version1 = close-close[1]*100/close[1];
plot version2 = ((close-close[1])*100)/close[1];
plot version1step1 = close[1] * 100;
plot version1step2 = version1step1/close[1];
plot version1finish = close - version1step2;
plot version2step1 = close-close[1];
plot version2step2 = version2step1 * 100;
plot version2finish = version2step2/close[1];

f66flgz.png
 

Similar threads

Top