Mercurial > mercurial > hgweb_golang.cgi
comparison src/fx/fx.go @ 33:90659c7171ed
add magicpacket.go
author | pyon@macmini |
---|---|
date | Tue, 13 Aug 2019 19:55:10 +0900 |
parents | a55c5a0cbd04 |
children |
comparison
equal
deleted
inserted
replaced
32:efa8836fd428 | 33:90659c7171ed |
---|---|
1 /* | |
2 fx.go: make MA/RSI/BB-Band graph | |
3 */ | |
1 package main | 4 package main |
2 | 5 |
3 import ( | 6 import ( |
4 "bytes" | 7 "bytes" |
5 "encoding/csv" | 8 "encoding/csv" |
11 "strconv" | 14 "strconv" |
12 "strings" | 15 "strings" |
13 ) | 16 ) |
14 | 17 |
15 const debug = false | 18 const debug = false |
19 const ratefile = "./fx_result.csv" | |
16 | 20 |
17 func main() { | 21 func main() { |
18 n, m := 20, 14 | 22 n, m := 20, 14 |
19 var x, xl, xh []float64 | 23 var x, xl, xh []float64 |
20 var date []string | 24 var date []string |
21 | 25 |
22 // Read Exchange-data | 26 // Read Exchange-data |
23 content, err := ioutil.ReadFile("/Users/takayuki/Downloads/USDJPY.csv") | 27 content, err := ioutil.ReadFile(ratefile) |
24 if err != nil { | 28 if err != nil { |
25 log.Fatal(err) | 29 log.Fatal(err) |
26 } | 30 } |
27 | 31 |
28 r := csv.NewReader(bytes.NewReader(content)) | 32 r := csv.NewReader(bytes.NewReader(content)) |
33 r.Comment = '#' | |
29 for { | 34 for { |
30 record, err := r.Read() | 35 record, err := r.Read() |
31 if err == io.EOF { | 36 if err == io.EOF { |
32 break | 37 break |
33 } | 38 } |
45 xl = append(xl, f) | 50 xl = append(xl, f) |
46 | 51 |
47 f, err = strconv.ParseFloat(record[2], 64) | 52 f, err = strconv.ParseFloat(record[2], 64) |
48 xh = append(xh, f) | 53 xh = append(xh, f) |
49 | 54 |
50 date = append(date, strings.ReplaceAll(record[0], "/", "-")) | 55 date = append(date, record[0]) |
51 } | 56 } |
52 | 57 |
53 // Calc Moving-Average | 58 // Calc Moving-Average |
54 xa := make([]float64, len(x)) | 59 xa := make([]float64, len(x)) |
55 for i := n; i < len(x); i++ { | 60 for i := n; i < len(x); i++ { |
171 if err := ioutil.WriteFile("fx.html", []byte(html), 0644); err != nil { | 176 if err := ioutil.WriteFile("fx.html", []byte(html), 0644); err != nil { |
172 log.Fatal(err) | 177 log.Fatal(err) |
173 } | 178 } |
174 | 179 |
175 // Print Data | 180 // Print Data |
176 if false { | 181 if debug { |
177 fmt.Println("[j] n x bb1 bb2 rsi | n x bb1 bb2") | 182 fmt.Println("[j] n x bb1 bb2 rsi | n x bb1 bb2") |
178 fmt.Println("---") | 183 fmt.Println("---") |
179 for i, j := len(x) - term, 0; i < len(x); i++ { | 184 for i, j := len(x) - term, 0; i < len(x); i++ { |
180 fmt.Printf("[%04d] %04d %5.2f %5.2f %5.2f %3.1f | ", j, i, x[i], bb1[i], bb2[i], rsi[i]) | 185 fmt.Printf("[%04d] %04d %5.2f %5.2f %5.2f %3.1f | ", j, i, x[i], bb1[i], bb2[i], rsi[i]) |
181 fmt.Printf("%04.0f %5.2f %5.2f %5.2f ", float64(i) * sx, (x[i] - min) * sy, (bb1[i] - min) * sy, (bb2[i] - min) * sy) | 186 fmt.Printf("%04.0f %5.2f %5.2f %5.2f ", float64(i) * sx, (x[i] - min) * sy, (bb1[i] - min) * sy, (bb2[i] - min) * sy) |