QV often has various ways to achieve what you want.
To start with I should try the idea given by tresesco (above). This should give you the latest value for this month and the closing value for last month. You can then create a 3rd expression calculating the difference as a percentage.
But you might also look at your script, and when you load the data, it may make sense to have one row for each month, by GROUPing the values for that month (eg. MAX(High).
To achieve this comparison your best option will be to use alternative states. Create one state for the current close and one state for the previous close. In your set subtract the alternate state of previous close by current close.
Another option would be to add the close date to your data model and AGGR by the close date. If you go this route you'll have to Peek the close date.