Forecasting using SAS Forecast Server, SAS/ETS, and more

pick up nearest number from data set

Accepted Solution Solved
Reply
Occasional Contributor
Posts: 7
Accepted Solution

pick up nearest number from data set

In my case, we have three variables - the underlying price, the strike price, and the datadate. When the program picks up the strike price that is nearest to the underlying price, I also need it to consider the datadate. Please see the attached document for a sample. 

 

So basically, I need it to pick the nearest strike price within that given date.

 

For example, on 2011/1/16, the underlying price is 26.33. The closest strike price is 26.5. 

On 2011/1/17, the underlying price is 26.11 and the closest strike price is 26. 

 


Accepted Solutions
Solution
‎03-15-2017 11:30 AM
SAS Super FREQ
Posts: 79

Re: pick up nearest number from data set

If the underlying_price is a constant within a day, you can use a sort and data step to get the nearest strike price. 

 

data sample_new;
    set sample;
    diff = abs(underlying_price - strike);
run;

 

proc sort data = sample_new;
    by datadate diff;
run;

 

data nearest_price;
    set sample_new;
    by datadate diff;
    if first.datadate;
run;

View solution in original post


All Replies
Occasional Contributor
Posts: 7

pick up nearest number from data set

In my case, we have three variables - the underlying price, the strike price, and the datadate. When the program picks up the strike price that is nearest to the underlying price, I also need it to consider the datadate. Please see the attached document for a sample. 

 

So basically, I need it to pick the nearest strike price within that given date.

 

For example, on 2011/1/16, the underlying price is 26.33. The closest strike price is 26.5. 

On 2011/1/17, the underlying price is 26.11 and the closest strike price is 26. 

 

Solution
‎03-15-2017 11:30 AM
SAS Super FREQ
Posts: 79

Re: pick up nearest number from data set

If the underlying_price is a constant within a day, you can use a sort and data step to get the nearest strike price. 

 

data sample_new;
    set sample;
    diff = abs(underlying_price - strike);
run;

 

proc sort data = sample_new;
    by datadate diff;
run;

 

data nearest_price;
    set sample_new;
    by datadate diff;
    if first.datadate;
run;

☑ This topic is SOLVED.

Need further help from the community? Please ask a new question.

Discussion stats
  • 2 replies
  • 135 views
  • 2 likes
  • 2 in conversation