chiark / gitweb /
Distribute elite.tcl. Duh.
[rocl] / elite-prices
1 #! /usr/bin/tclsh
2
3 package require "elite" "1.0.0"
4
5 # --- An optimal trading pair ---
6
7 set lezaer   "1598f98a6581"
8 set esmaonbe "7997d18a0d89"
9
10 set np [expr {[llength $products]/2}]
11 puts -nonewline stderr "\[[string repeat { } $np]\] "
12 puts -nonewline stderr "\[[string repeat { } 32]\]"
13 puts -nonewline stderr "\r\[[string repeat { } $np]\] \["
14 flush stderr
15 foreach {a s} [list l $lezaer e $esmaonbe] {
16   for {set f 0} {$f < 256} {incr f} {
17     elite-market m $s $f
18     foreach {t p} $products { destructure [list ${a}($f:$t) .] $m($t) }
19     if {($f & 15) == 15} { puts -nonewline stderr "."; flush stderr }
20   }
21 }
22 foreach {t p} $products {
23   set tot($t) 0
24   set min($t) 100000
25   set max($t) -100000
26 }
27 set i 0
28 foreach {t p} $products {
29   incr i
30   puts -nonewline stderr "\r\[[string repeat . $i]"
31   puts -nonewline stderr "[string repeat { } [expr {$np - $i}]]\] "
32   puts -nonewline stderr "\[[string repeat { } 32]\]"
33   puts -nonewline stderr "\r\[[string repeat . $i]"
34   puts -nonewline stderr "[string repeat { } [expr {$np - $i}]]\] \["
35   set ll {}
36   set ee {}
37   for {set f 0} {$f < 256} {incr f} {
38     lappend ll $l($f:$t)
39     lappend ee $e($f:$t)
40   }
41   set j 0
42   foreach pl $ll {
43     foreach pe $ee {
44       set pr [expr {$pl - $pe}]
45       if {$pr < $min($t)} { set min($t) $pr }
46       if {$pr > $max($t)} { set max($t) $pr }
47       incr tot($t) $pr
48     }
49     incr j
50     if {($j & 7) == 0} { puts -nonewline stderr "."; flush stderr }
51   }
52 }
53 puts stderr ""
54
55 foreach {t p} $products {
56   puts [format "%-15s %5d %4d %4d" $t \
57       $min($t) [expr {$tot($t)/65536}] $max($t)]
58 }