Competition Log and Data

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

Competition Log and Data

sgu
I'm working on data analyze now. The data of competition stored in the PowerTAC-dump-2be95ea8-05ef-4722-9cdc-889c11d1f724.xml is difficult for me to read.

1. The time slot is expressed as ID rather than integer denoting the relative sequence of event. How can I translate the ID to integer, like 1, 2, ... in which 1 means the first time slot of competition.

2. The model I'm testing requires information on time slot of a day which ranges 1 to 24. 1 is the first time slot of a day, 24 is the last. However, I don't know how to transform the time slot ID. Is it that the first time slot ID appears in the file is the first time slot of the first day of competition which is a Monday?

3. I'm testing a prediction model on market clearing price. There're two kinds of element containing informatio of clearing price, "CLEARING_PRICE" in "ORDERBOOK" and "EXECUTION_PRICE" in "CLEARED_TRADE". I don't know which one is the clearing price. By comparing the "ORDERBOOK" and "CLEARED_TRADE", I find the former one has 334 elements, the latter one has 335 elements. And not all the "ORDERBOOK" have a "CLEARING_PRICE". I think they should have same number. Also, the time slot ID in "ORDERBOOK" can not match that in "CLEARED_TRADE". The first element of "ORDERBOOK" shares the same time slot ID with that of "CLEARED_TRADE", but later on, the time slot ID can't match.

4. I find some "EXECUTION_PRICE" in "CLEARED_TRADE" exceptionally high which is even 20 times bigger than most others. Is it a real clearing price or is there any meaning behind it?
Reply | Threaded
Open this post in threaded view
|

Re: Competition Log and Data

chris.flath
Hi there - sorry for replying this late.

1. Just had a quick look myself and you are right that the database dump misses the plain timeslot serial number whereas the server log shows the timeslot serial numbers but misses the cryptic id. However, both have the cryptic IDs for transactions so you can possibly build a complete translation map <timeslot serial number> <-> <timeslot cryptic id> by matching the pairs <timeslot serial number, cryptic transaction id> <-> <timeslot cryptic id, cryptic transaction id>. Thanks for pointing this out we shall correct it as soon as possible.

2. With the serial number from the server log you can do exactly this.

3. CLEARING_PRICE is attached to an ORDERBOOK to store historic clearing price for the balancing evaluation. Since balancing needs to be evaluated even if no clearing occured there is a replacement value which is the lowest uncleared ask. Since this is not an actual market price you probably do not want to use it as a base for prediction models. CLEARED_TRADE on the other hand is an actually matched trade and much more relevant to your cause.

Note that there will be an orderbook for every timeslot played + 24 upcoming timeslots (in our case 312 + 24 =334). I think the number of cleared trades should be endogenous to the game development and could easily be much greater or even smaller than the number of orderbooks. So I would say it is pure coincidence that the two numbers were this close.

4. Indeed I saw those extreme values, too but they must be real trades. For example we find the following buy shout which specifies a limit price of 10211. It was matched against a sell shout with limit price 20. In a thin market setting the current price rule leads to those extreme market results - we may change the pricing rule away from midpoint but also it is strange that brokers submit buy shouts with such high limits.

Cheers,
Chris

<SHOUT ID="2f4754ab-9a78-47d4-91b0-6541a966f3a9" VERSION="1" BROKER_ID="b64da2b7-4ac2-4f95-b34f-169a9b0e27cd"
BUY_SELL_INDICATOR="1"
COMMENT="Matched by org.powertac.auctioneer.pda"
DATE_CREATED="2011-07-19 12:32:37.235"
DATE_MOD="2010-06-21 04:00:00.0"
EXECUTION_PRICE="5124.7860"
EXECUTION_QUANTITY="5.1055"
LIMIT_PRICE="10211.072"
MOD_REASON_CODE="4"
PRODUCT="Future"
QUANTITY="0.0000"
TIMESLOT_ID="74c74981-2e2b-4040-a092-01d4c433da31"
TRANSACTION_ID="ad37881c-969e-4ca4-83f0-8149c4071b37"/>

  <SHOUT ID="3955ae50-7d48-4026-8fe9-d7f845cf10a9" VERSION="1"
BROKER_ID="beb62a31-dd13-47ce-b8b4-a92a7396ee41"
BUY_SELL_INDICATOR="-1"
COMMENT="Matched by org.powertac.auctioneer.pda"
DATE_CREATED="2011-07-19 12:32:36.635"
DATE_MOD="2010-06-21 04:00:00.0"
EXECUTION_PRICE="5124.7860"
EXECUTION_QUANTITY="10.2110"
LIMIT_PRICE="20.0"
MOD_REASON_CODE="5"
PRODUCT="Future"
QUANTITY="90.0015"
TIMESLOT_ID="74c74981-2e2b-4040-a092-01d4c433da31"
TRANSACTION_ID="ad37881c-969e-4ca4-83f0-8149c4071b37"/>
sgu
Reply | Threaded
Open this post in threaded view
|

Re: Competition Log and Data

sgu
 I still have a few questions.

1. About the time slot ID. Do you mean I can map the time slot ID with serial number through element "TIMESLOT" since there I can find both "SERIAL_NUMBER" and cryptic "TIMESLOT ID". And it seems to be one-to-one map. The total number of "TIMESLOT" is 335 which equals to the number of "CLEARED_TRADE".

2. The cryptic time slot ID appears more than once in "CLEARED_TRADE". For example, "035f1078-dd73-432f-b9c7-194161727506" is the time slot ID of first "CLEARED_TRADE". I find it appears 4 times more in "CLEARED_TRADE". This is bewildering. How can a clearing price occurs more than once in a time slot?

3. There are 624 "WEATHER_REPORT" whereas 335 "CLEARED_TRADE". What is the relationship between these two elements? It's very important to know it as I involve weather information in my prediction model.
sgu
Reply | Threaded
Open this post in threaded view
|

Re: Competition Log and Data

sgu
In reply to this post by chris.flath
1.  You advise a routine: (timeslot id, transaction id) <-> (serial number, transaction id). I find the element TIMESLOT has both the attribute “TIMESLOT ID” and “SERIAL_NUMBER”, just like this:
<TIMESLOT ID="005f0fe0-b87f-4fd9-b651-c126a4c116f8" VERSION="24" ENABLED="false" END_INSTANT="2010-06-24 15:00:00.0" SERIAL_NUMBER="84" START_INSTANT="2010-06-24 14:00:00.0"/>
  <TIMESLOT ID="029fe01f-1219-422c-8f76-1ae9f00b80ce" VERSION="24" ENABLED="false" END_INSTANT="2010-07-02 05:00:00.0" SERIAL_NUMBER="266" START_INSTANT="2010-07-02 04:00:00.0"/>
  <TIMESLOT ID="035f1078-dd73-432f-b9c7-194161727506" VERSION="24" ENABLED="false" END_INSTANT="2010-06-22 01:00:00.0" SERIAL_NUMBER="22" START_INSTANT="2010-06-22 00:00:00.0"/>
I’m not sure if this is what I’m looking for. I just map time slot id to serial number through the connection.

2.  I find time slot id not unique in CLEARED_TRADE. I’m curious on that since there should be just one clearing price per time slot (for example, there’re 5 execution prices at time slot 22 (serial number)). I don’t know what multiple EXECUTION_PRICE at identical time slot means. I guess the time slot denotes the time a number of futures are executed. If this is the case, how can I link execution price with serial number?

3.  The time slot id in SHOUT is also bewildering. You can see several matched transactions at one time slot. I think, here, time slot is when trading agent bid or ask for a certain future instead of an orderbook’s time slot (for example, you can bid for time slot 35,36 and 37 at time slot 25, 35,36 and 37 is orderbook’s time slot. 25 is current time slot when you conduct bid). Once again, if this is true, how can I know which shout is for which orderbook?