| An agent is a program that accepts one list and one scalar
and outputs a single integer representing a buy or sell order. Important:
because we will be running tournaments with tens of players, we need
unique name spaces. It's absolutely crucial that you follow this naming
convention for your agents. Lastname1Lastname2
where each Lastname is the last name of team members capitalized.
If there's only one person in the team, then there will be only one
Lastname. If there are more, then list them alphabetically.
The declaration for the agent function should be like the
following example:
(defun KhosmoodLevinson (holdings price)
....
)
- holdings is a list of lists. Each internal list is made up of
two elements: balance and shares which represent the state
of a single agent. The outer list, thus represents the holdings of
everybody still in the game starting with the agents own holdings. So to
summarize, holdings should look like this:
- ((ownBalance ownShares) (balance1 shares1) (balance2 shares2) ....(balanceN
sharesN))
- price is a single floating point number representing the pre-turn per/share price.
example: An agent being called in a 3-agent game.
(KhosmoodLevinson '( (250.556 12.1)(110.2 14.4)(24.92 55.8) )
120.8579)
Such a call should return a single integer. A positive integer represents
a buy order and a negative order means a sell order for that amount.
Example:
123.2
-33.3
Important: An agent must have enough funds to cover any buy
request. The preturn price, passed in to the agent, is used to calculate
this. If the agent does not have enough funds, this constitutes and illegal
order and that agent is eliminated.
|