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) |
