clarification on some information processed in MarketManagerService

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

clarification on some information processed in MarketManagerService

ibariens
This post was updated on .
Dear all,

I tried to analyze the behavior of the sample agent wholesale market part by outputting all the information the agent handles (simply by using System.out.pritnln) in the marketmanagerservice class, what i figured out so far:

A new timeslot is entered and orders are placed for each target timeslot with (neededmwh > 0)

The order exists of:
Limited Price = computed price (based on random factor * remaining tries), or if computed price > fixed max price, limit price = fixed max price
Timeslot = target timeslot


After the orders, the orderbook and clearedtrades are displayed:

Orderbook (contains all unmatched bids & asks)

GetClearingPrice = the overall cleared price for current timeslot / target timeslot (if nulnothing is cleared and therefore no clearedtrade)
GetAks = all unmatched supply (-MWH@+Price)
GetBids = all unmatched bids (+MWH@-Price)
getDateExecuted = current timeslot,when bids / asks are processed
getTimeslot = target timeslot (can be getDateExecuted)



ClearedTrade (only when something is actually cleared)

getExecutionMWh = total amount cleared
getExecutionPrice = clearing price (=same as orderbook clearing price)
getDateExecuted = current timeslot, when bids / asks are processed, same as orderbook
getTimeslot = target timeslot (can be getDateExecuted), same as orderbook




Then after all orderbooks / cleared trade messages you get the markettransactions which display private information for the broker. The javadoc says the following:

It is created by the market, used by Accounting to update accounts, and forwarded to the broker for its records. The values represent changes in the broker's energy and cash balances, from the viewpoint of the broker. Therefore, a positive price means that money will be deposited in the broker's bank account, and a positive amount of energy means that the broker has an additional quantity of energy in its account for the given timeslot

Since the broker is only buying (it places bids with exactly the MwhNeeded), the markettransaction are all (partly)cleared bids the agent made?

getMWh =  mwh won in a timeslot
getprice = the amount paid for it
getbroker = yourself
getpostedtime = target timeslot


Two strange things occur here, which I can't explain.
1. there are markettransactions in the first target timeslot (= current timeslot) and the second, however there were no bids submitted..
2. there are multiple markettransactions (most of the time 2), for the same target timeslot, with the same clearing price, only different mwh's… is this because the energy is from different suppliers?

Then after the market transactions, the marketposition shows once… which sometimes shows as many as the markettransaction messages, and sometimes only once. The overall balance is the same as the markettransactions.Getmwh(); So what is this exactly? It's not the overall cashposition.

MarketPostition posn:
getOverallBalance(): same as matkettransaction.getMwh
getBroker(): yourself
getTimeslot: target timeslot


Then only once per timeslot you get the distribution transaction and the balancingtransaction:

The distributiontransaction sounds like a total of all transactions made in current timeslot (for all 23 target timeslots)

DistributionTransaction dt:
getCharge(): -1329.4567045714896
getKWh(): 50970.71899999999
getQuantity (depreciated): 50970.71899999999
getBroker(): yourself
getPostedTime(): 2009-10-28T07:00:00.000Z
getId(): 33350

And the balancingtransaction sounds like the balancing done by the ISO, this is actually a penalty… So getKWh should be zero if the energy for current timeslot is completely satisfied, however in the sample below getcharge and getkwh is postive, does this mean it has a surplus, and actually makes money by selling kwh?

BalancingTransaction tx:
getBroker()yourself
getCharge()1831.6520000000005
getKWh()47162.00319610003
getQuantity() (depreciated)47162.00319610003
getPostedTime()2009-10-28T07:00:00.000Z
getId(): 33351


So I'm not sure what marketposition posn does, distributiontransaction dt, and balancingtransaction tx. Furthermore, I'm wondering how balancingtransactions can occur, if the agent did not make any bids.
I guess if you now that you now all orders the agent does, and you receive the amount cleared, you exactly now if a bid is completely cleard or partly cleared, or not cleared at all… I just don't know which information I have to compare for that.
Lastly, where can I find information about the revenue, so I can calculate the total profit of the broker?




I hope this information is not overwhelming, but I thought it could be helpful for the rest of the students to understand the wholesale market part of the trader a bit better.. Thank you for your help,

Bart
Reply | Threaded
Open this post in threaded view
|

Re: clarification on some information processed in MarketManagerService

grampajohn
Administrator
Thanks, Bart, for putting this together. I'll try to address the items that might have been confusing.

ibariens wrote
I tried to analyze the behavior of the sample agent wholesale market part by outputting all the information the agent handles (simply by using System.out.pritnln) in the marketmanagerservice class, what i figured out so far:

...

After the orders, the orderbook and clearedtrades are displayed:

Orderbook (contains all unmatched bids & asks)

GetClearingPrice = the overall cleared price for current timeslot / target timeslot (if nulnothing is cleared and therefore no clearedtrade)
GetAks = all unmatched supply (-MWH@+Price)
GetBids = all unmatched bids (+MWH@-Price)
getDateExecuted = current timeslot,when bids / asks are processed
getTimeslot = target timeslot (can be getDateExecuted)
I'm not sure what you mean by "can be getDateExecuted" - the timeslot is always in the future, should be 1-24 hours ahead of the dateExecuted.

Then after all orderbooks / cleared trade messages you get the markettransactions which display private information for the broker. The javadoc says the following:

Since the broker is only buying (it places bids with exactly the MwhNeeded), the markettransaction are all (partly)cleared bids the agent made?
The broker is NOT always buying. mwhNeeded can be positive or negative, and the price can also be positive or negative. If the mwh is positive, it's a bit (a buy order), and typically the price will be negative; if the mwh is negative, it's an ask (a sell order) and typically the price will be positive.

Two strange things occur here, which I can't explain.
1. there are markettransactions in the first target timeslot (= current timeslot) and the second, however there were no bids submitted..
2. there are multiple markettransactions (most of the time 2), for the same target timeslot, with the same clearing price, only different mwh's… is this because the energy is from different suppliers?
I don't understand the first one. There can indeed be multiple market transactions for a given timeslot, if some of the energy came from one supplier (or more precisely one matched order) and the rest from a different matched order.

Then after the market transactions, the marketposition shows once… which sometimes shows as many as the markettransaction messages, and sometimes only once. The overall balance is the same as the markettransactions.Getmwh(); So what is this exactly? It's not the overall cashposition.
There should be a market position for each timeslot in which there was at least one market transaction. These give the total amount of energy the agent is committed to consume (if it's positive) or deliver (if it's negative) for that timeslot.

Then only once per timeslot you get the distribution transaction and the balancingtransaction:

The distributiontransaction sounds like a total of all transactions made in current timeslot (for all 23 target timeslots)

And the balancingtransaction sounds like the balancing done by the ISO, this is actually a penalty… So getKWh should be zero if the energy for current timeslot is completely satisfied, however in the sample below getcharge and getkwh is postive, does this mean it has a surplus, and actually makes money by selling kwh?
The distribution transaction is a charge for the use of the distribution infrastructure. it's a rate times the amount of power your customers actually consumed, ignoring production.

The balancing transaction is a charge for your net imbalance, and the amount depends on several factors, as outlined in the specification.

Lastly, where can I find information about the revenue, so I can calculate the total profit of the broker?
You should get a cashPosition as the last message in each timeslot. The difference in cash position between one timeslot and the next is your total revenue for that timeslot. Note that this can include interest charges - those come as bankTransaction instances.

Does this help?

John