This post was updated on .
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.
getOverallBalance(): same as matkettransaction.getMwh
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)
getQuantity (depreciated): 50970.71899999999
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?
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,
Thanks, Bart, for putting this together. I'll try to address the items that might have been confusing.
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.
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.
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.
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.
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.
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?
|Free forum by Nabble||Edit this page|