Programming performance/RaymondH Python
From HaskellWiki
This took about 20 minutes to write with plain vanilla Python,
data = []
for line in open('gspc.txt'):
if not line.startswith('#'):
data.append(float(line.split()[-1]))
data.reverse()
purchases = {} # price --> quantity at that price cash = 10000.00 for prev, close in zip(data, data[1:]):
change = close / prev
if change <= 0.97:
invest = cash * 0.10
cash -= invest
purchases[close] = purchases.get(close, 0) + invest / close
for pprice, qty in purchases.items():
if close >= pprice * 1.06:
cash += qty * close
del purchases[pprice]
cash += sum(purchases.values()) * close print cash
