home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1993 #2
/
Image.iso
/
comm
/
twft099b.zip
/
2RDR.TXT
next >
Wrap
Text File
|
1993-05-08
|
7KB
|
186 lines
Edited version of a message by David Myers to Rick Cooney:
I was worrying about trading algorithms this morning at work,
especially with regard to the 5 point method described in TWTIPS.
There are 2 assumptions made, which can be described as follows:
1) That the best price does not fluctuate except in units of your
ship holds. (I can't test this yet).
2) That DIFF, the difference between the best price and our
best price estimate, differs by a fraction x diff, the difference
between consecutive offers by the port. This is a kind of
linear difference model, that can be described by the
equation
DIFF = f*diff.
Now in general any well-behaved function describing DIFF can be
expressed in terms of diff by a series expansion of the form
(this is a Taylor series expansion for those of you who
follow the calculus):
DIFF = f*diff + g*diff^2 + h*diff^3 + ...
So assertion (2) amounts to suggesting that g, h, and all higher
terms can be ignored. This turns out to be testable.
----------------------------------------------------------------
A port in which g, h, and higher terms can be ignored is called
a linear port.
----------------------------------------------------------------
HOW DO YOU TEST THE LINEARITY HYPOTHESIS ???
1. Overestimate the best price.
2. Estimate new prices by the formula
NEWOFFER = OLDOFFER - factor*diff
make factor a small number and don't vary it. 1.5 should work.
what you will end up with are a series of port offers and counter
bids by us:
PORT: orig_offer
US: bid 1
PORT: offer2
US: bid 2
PORT: offer3
US: bid 3
PORT: offer4
let diff = offer2 - orig_offer
diff2 = offer3 - offer2
diff3 = offer4 - offer3
now in the linear difference model, factor is related to f
by the equation factor = (1/f - 1). So, the "optimal"
5 point f value of 0.3 translates into a factor of 2.33333333 etc.
So our chosen factor leads to an estimate of the best f, which
we will call f(est)..
however..
diff2/diff = f(est) - f, so f = diff2/diff + f(est).
In other words, if we know the f(est) value we used in our
second bid, the differences between a trio of consecutive
port offers nails f, *IF* the linear difference model is
correct. It also allows exact calculation of margins, which
leads to the possibility that you get more trading information
by initially overestimating the port price, and underestimating
factor, than by relying on the Psychic Probe.
WHEN IS THE LINEAR DIFFERENCE MODEL CORRECT?
The LDM is true if and only if diff3/diff2 = diff2/diff.
David Myers.
Edited version of a letter from David Myers to Steve Whitis:
Eugene Hung left Tradewars with a legacy of rules for getting at the
5 point price of a port. Unfortunately, in my mind, he also left as
many questions as answers.
Q:Why is it that his rules fail on certain ports?
Q:Why do you have to modify the psychic probe price to get some 5
point pricing to work, or in other words, why does a psychic probe
lie?
Q:Why is it that the difference between the first port offer and
the second port offer follows the rule :
abs(first-second) = 0.3*abs(best possible port price - our best
estimate)?
The answer to the first question is that Hung's rules aren't complete
and cannot be used as an exact description of all ports. The take-home
lesson of the second question is that blind reliance on the psychic
probe to obtain all your information about the port and pricing is,
in essence, handing your confidence over to a liar (unless of
course, someone comes up with a rule for determining the nature and
extent of the lie). But the answer to the third question is that this
proposition can be tested. It leads to the question that currently
consumes me, i.e. whether it is possible to describe accurately the
trading practices of a single product at a single port in a
relatively short number of observations. Can this be done in general
for any trading game? How do we go about finding this kind of
information?
As best I can determine (and I don't claim to know everything yet),
the secret to getting a port to divulge as many secrets as you
can is by OVERBIDDING. If the port is a linear port (I won't get into
that here, suffice it to say a "true" 5 point port is a linear port),
----------------------------------------------------------------------
Editing note: Actually, a "true" 5 point port isn't a "true" linear
port because of stochastic elements in its initial offer and the
need to "quantize" the offers in order to get at the true best value
of the port. In a sense a 5 point port is an extension of a
linear port but can't be thought of as one in the strict sense of
the term.
----------------------------------------------------------------------
then the overbid can be corrected with the formula (when selling a
product):
NEW BID = FIRST BID - FACTOR*(OFFER2 - OFFER)
Where New Bid is your second bid, First Bid is your first offer to
the port, Offer2 is the port's second offer, and Offer is the ports
original offer. FACTOR turns out to be related to that number 0.3
by the formula (assuming 0.3 to be true)
FACTOR = 1/0.3 - 1 = 2.3333333333
But since we aren't assuming 0.3 is true, we'll call the element in
the denominator f and we then have the formula
FACTOR = 1/f - 1
So lets go to the example. We will estimate a margin of 10%, i.e. we
will multiply the first offer by a 10% margin to get our first bid.
We will estimate FACTOR to be 2.
Offer 10,000
Our Bid 11,000
Offer2 10,150
Bid 2 10,700
Offer3 10,160
Now, the fact that the port made a third offer means that
(a) margin is in error, and
(b) FACTOR (and thus f) is in error.
If the factor f is known to precision, and the linear model true, you
should never see a third bid. So what is the error in f?
Our estimate of f is 1/(factor + 1) = one third. The difference in
price between the third offer and the second offer is 10, the difference
between the second offer and the first offer is 150. 10/150 = 1/15.
To correct f: f(actual) = f(est) - 10/150 = 0.3333 - 0.0666 = 0.2667
To correct margin:
new margin = (Our Bid - 150/f) Offer =
(11,000 - 438)/10,000 = 1.0562
This, at least, is a step toward the idea of modeling all price behavior
of all ports, and provides more information than just a psychic probe
report.
David.
Final note: The program TWFT is designed to allow tests of the above
hypotheses. The trade algorithm has an implementation of second order
corrections to FACTOR via a variety of methods. You can SET factor
in the program through the F10 command. If you have time and a quiet
game to try this in, I'd set factor to different values and see if
it converges to a certain range of values. That would give you a
functional definition of what values factor must be in order to be
effective.