# Trying to find top gainers in 2015 via scan

#### bigmit2011

##### New member
Hi, So I am looking for top gainers in 2015, but my script seems to be faulty,
as the scan list is returning stock that didn't gain over the percentage I am scaning for.

This below script seems to return over 300 stocks, but a lot of them don't seem to have gained 300%
as which is what my scan should filtering for.

I am using the Aggregation period as quarter.

I am not catching what I am possibly doing wrong.

Thank you.

Code:
``````def start = 20;
def end = 24;

def p0  = close()[start];
def p1 = close()[end];
def percent_change = (p1-p0) / p0;

plot scan = percent_change > 3.0;``````

Solution
*100.
percent_change will never be > 1.

i am not sure how far back a scan can read data, so i am ignoring that possible issue.
i think it should be divided by the price from larger offset, farther back in time, the start of the period.
i would set the begining offset to be the larger number.
it is confusing, using 2 differently named sets of variables. ( start, p0 ?)

Code:
``````def start = 24;
def end = 20;
def start_p = close()[start];
def end_p = close()[end];
def percent_change = 100 * (start_p - end_p) / start_p;
plot scan = percent_change > 3.0;``````
*100.
percent_change will never be > 1.

i am not sure how far back a scan can read data, so i am ignoring that possible issue.
i think it should be divided by the price from larger offset, farther back in time, the start of the period.
i would set the begining offset to be the larger number.
it is confusing, using 2 differently named sets of variables. ( start, p0 ?)

Code:
``````def start = 24;
def end = 20;
def start_p = close()[start];
def end_p = close()[end];
def percent_change = 100 * (start_p - end_p) / start_p;
plot scan = percent_change > 3.0;``````

*100.
percent_change will never be > 1.

i am not sure how far back a scan can read data, so i am ignoring that possible issue.
i think it should be divided by the price from larger offset, farther back in time, the start of the period.
i would set the begining offset to be the larger number.
it is confusing, using 2 differently named sets of variables. ( start, p0 ?)

Code:
``````def start = 24;
def end = 20;
def start_p = close()[start];
def end_p = close()[end];
def percent_change = 100 * (start_p - end_p) / start_p;
plot scan = percent_change > 3.0;``````

Hi, so I was going for a 300% change since start of year, so that's why I was going with 3.0
I wonder if that data doesn't go back that much.

87k+ Posts
184 Online

## The Market Trading Game Changer

Join 2,500+ subscribers inside the useThinkScript VIP Membership Club
• Exclusive indicators
• Proven strategies & setups
• Private Discord community
• Exclusive members-only content
• 1 full year of unlimited support

What is useThinkScript?

useThinkScript is the #1 community of stock market investors using indicators and other tools to power their trading strategies. Traders of all skill levels use our forums to learn about scripting and indicators, help each other, and discover new ways to gain an edge in the markets.

How do I get started?

We get it. Our forum can be intimidating, if not overwhelming. With thousands of topics, tens of thousands of posts, our community has created an incredibly deep knowledge base for stock traders. No one can ever exhaust every resource provided on our site.

If you are new, or just looking for guidance, here are some helpful links to get you started.

What are the benefits of VIP Membership?