Node dependent price profile#
Read basic information about the price model in The Prodrisk price model.
Price nodes#
Using the prices from the the price prognose time series (see Price input format), a set of price nodes are generated where the lower node represents the lower price periods of the simulation scenarios with lower prices, and the higher node represents the higher price periods of the simulation scenarios with higher prices. Each week has a separate set of price nodes. During the backward recursion, the program iterates over the price nodes to represent differences in the price distribution. These price nodes are read from a separate file, which has been written by the program Genpris (the pricefilename.PRISMOD files). For each week in the Prodrisk backward recursion, a precomputed price profile belonging to this week is used together with the price node. The price profile represents the price variation for the various price periods within that week, relative to the average price in that week. The price profile is averaged over all historical simulation scenarios and price scenarios.
With the same price profile for all price nodes in one week, the differences between the price period distribution of the lower price nodes and the higher price nodes are not captured: The hypothesis is that the prices will vary more when the average price is higher, than when the average price is lower. It is therefore interesting to find a separate price profile for each price node and for each week. The idea is to distribute the price in the simulation scenarios from low to high for each week, where the weighted sum of all price periods for the week is used as a sorting criterium. These sorted scenarios are then distributed between the available price nodes. The price nodes are generated by Genpris, and the information about which simulation scenario prices each price node consists of is not available in Prodrisk. Without the same algorithm as the one used in Genpris, the price node dependent price profile may not be based on the same simulation scenario prices used to create the price node.
The new price node dependent price profile will be state dependent as price is a state variable, but as this state is treated in an outer stochastic dynamic layer, the convexity properties of Prodrisk will not be compromised.
Algorithm for calculating price node dependent price profile#
In the current version of Prodrisk, the weekly price profile is calculated by first summarizing the price for each price period over all simulation scenarios. Then a mean accumulated price is calculated for each week by multiplying the sum for each price period with the share of the week for this price period. Then for each week and for each price period, the first computed sum is divided by the mean accumulated price for that week. The result is a normalized price profile that can be multiplied with the mean price of that week to find the actual price of that price period for that week.
The same principles are utilized in the computation of the price node dependent price profile, except that the simulation scenario prices are divided between the various price nodes. For each week, the simulation scenarios are sorted from lowest mean price of that week to highest mean price of that week. These mean prices are computed using weighted sums over the price periods. Then the lowest price scenario is used to construct the price profile belonging to the lowest price node and the highest price scenario is used to construct the price profile belonging to the highest price node. The rest of the scenarios is divided over the rest of the available price nodes, using the lowest group of simulation scenarios for the second lowest price node and the second lowest group of simulation scenarios for the third lowest price node. The highest price node will include a potential rest of scenarios left over in the division in addition to the highest price scenario. This strategy is illustrated below:
The algorithm for creating node dependent price profiles is given below:
For week in weeks:
Sort(scenarios,averagePrice)
For node in priceNodes:
if (node == 1)
createPriceProfile(scenario(1))
if (1 < node < nPriceNodes)
start = 2+(nScenarios-2)/(nPriceNodes-2)*(node-2)
stop = 1+(nScenarios-2)/(nPriceNodes-2)*(node-1)
createPriceProfile(scenario(start:stop))
if (node == nPriceNodes)
start = 2+(nScenarios-2)/(nPriceNodes-2)*(node-2)
createPriceProfile(scenario(start:nScenarios))
For node in priceNodes:
createWeightedMeanPrice()
priceProfile = priceProfile/weightedMeanPrice
Using the functionality#
The functionality is controlled by the parameter
nodeprisprofil 0, < Turning on or off the node price profile functionality
in - Prodrisk.CPAR, or by setting the parameter node_price_profile in the API.
The default value of this parameter is 0, and if the parameter is not set, the functionality will not be used. Set the variable to 1 to indicate that a node dependent price profile is used.
As an indication that the functionality has been successfully initiated, the following message will be printed to the Prodrisk log: