Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
Aleksey Achkasov committed Aug 5, 2018
1 parent e6e2358 commit 429a995
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 27 deletions.
51 changes: 26 additions & 25 deletions fxt4/fxt4.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,18 @@ import (
"encoding/binary"
"fmt"
"io"
"log"
"math"
"os"
"path/filepath"

"github.com/adyzng/go-duka/core"
"github.com/adyzng/go-duka/misc"
"github.com/iizotop/go-duka/core"
//"github.com/iizotop/go-duka/misc"
)

var (
log = misc.NewLogger("FXT", 3)
)
//var (
// log = misc.NewLogger("FXT", 3)
//)

// FxtFile define fxt file format
//
Expand Down Expand Up @@ -63,12 +64,12 @@ func NewFxtFile(timeframe, spread, model uint32, dest, symbol string) *FxtFile {
func (f *FxtFile) worker() error {
defer func() {
close(f.chClose)
log.Info("M%d Saved Bar: %d, Ticks: %d.", f.timeframe, f.barCount, f.tickCount)
log.Printf("M%d Saved Bar: %d, Ticks: %d.", f.timeframe, f.barCount, f.tickCount)
}()

fxt, err := os.OpenFile(f.fpath, os.O_CREATE|os.O_TRUNC, 666)
fxt, err := os.OpenFile(f.fpath, os.O_CREATE|os.O_TRUNC|os.O_RDWR, 0666)
if err != nil {
log.Fatal("Create file %s failed: %v.", f.fpath, err)
log.Printf("Create file %s failed: %v.", f.fpath, err)
return err
}

Expand All @@ -79,31 +80,31 @@ func (f *FxtFile) worker() error {
// convert FXT header
//
if err = binary.Write(bu, binary.LittleEndian, f.header); err != nil {
log.Error("Convert FXT header failed: %v.", err)
log.Printf("Convert FXT header failed: %v.", err)
return err
}
// write FXT file
if _, err := fxt.Write(bu.Bytes()); err != nil {
log.Error("Write FXT header failed: %v.", err)
log.Printf("Write FXT header failed: %v.", err)
return err
}

for tick := range f.chTicks {

if tick.BarTimestamp > uint64(tick.TickTimestamp) {
log.Fatal("Tick(%v)", tick)
log.Printf("Tick(%v)", tick)
}

bu.Reset()
//
// write tick data
//
if err = binary.Write(bu, binary.LittleEndian, tick); err != nil {
log.Error("Pack tick failed: %v.", err)
log.Printf("Pack tick failed: %v.", err)
break
}
if _, err = fxt.Write(bu.Bytes()); err != nil {
log.Error("Write fxt tick (%x) failed: %v.", bu.Bytes(), err)
log.Printf("Write fxt tick (%x) failed: %v.", bu.Bytes(), err)
break
}

Expand Down Expand Up @@ -156,9 +157,9 @@ func (f *FxtFile) adjustHeader() error {
return nil
}

fxt, err := os.OpenFile(f.fpath, os.O_RDWR, 666)
fxt, err := os.OpenFile(f.fpath, os.O_RDWR, 0666)
if err != nil {
log.Fatal("Open file %s failed: %v.", f.fpath, err)
log.Printf("Open file %s failed: %v.", f.fpath, err)
return err
}
defer fxt.Close()
Expand All @@ -180,11 +181,11 @@ func (f *FxtFile) adjustHeader() error {
_, err = fxt.Write(bu.Bytes())
}
if err != nil {
log.Error("Adjust FXT header 1 failed: %v.", err)
log.Printf("Adjust FXT header 1 failed: %v.", err)
return err
}
} else {
log.Error("File seek 1 failed: %v.", err)
log.Printf("File seek 1 failed: %v.", err)
return err
}

Expand All @@ -202,11 +203,11 @@ func (f *FxtFile) adjustHeader() error {
_, err = fxt.Write(bu.Bytes())
}
if err != nil {
log.Error("Adjust FXT header 2 failed: %v.", err)
log.Printf("Adjust FXT header 2 failed: %v.", err)
return err
}
} else {
log.Error("File seek 2 failed: %v.", err)
log.Printf("File seek 2 failed: %v.", err)
return err
}

Expand All @@ -222,24 +223,24 @@ func (f *FxtFile) Finish() error {
// DumpFile dump fxt file into txt format
//
func DumpFile(fname string, header bool, w io.Writer) {
fh, err := os.OpenFile(fname, os.O_RDONLY, 666)
fh, err := os.OpenFile(fname, os.O_RDONLY, 0666)
if err != nil {
log.Error("Open fxt file failed: %v.", err)
log.Printf("Open fxt file failed: %v.", err)
return
}
defer fh.Close()

bs := make([]byte, headerSize)
n, err := fh.Read(bs[:])
if err != nil || n != headerSize {
log.Error("Read fxt header failed: %v.", err)
log.Printf("Read fxt header failed: %v.", err)
return
}

var h FXTHeader
err = binary.Read(bytes.NewBuffer(bs[:]), binary.LittleEndian, &h)
if err != nil {
log.Error("Decode fxt header failed: %v.", err)
log.Printf("Decode fxt header failed: %v.", err)
return
}

Expand All @@ -263,14 +264,14 @@ func DumpFile(fname string, header bool, w io.Writer) {
}

if n != tickSize || err != nil {
log.Error("Read tick data failed: %v.", err)
log.Printf("Read tick data failed: %v.", err)
break
}

var tick FxtTick
err = binary.Read(bytes.NewBuffer(tickBs[:]), binary.LittleEndian, &tick)
if err != nil {
log.Error("Decode tick data failed: %v.", err)
log.Printf("Decode tick data failed: %v.", err)
break
}

Expand Down
5 changes: 3 additions & 2 deletions fxt4/header.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package fxt4
import (
"fmt"
"time"
"log"

"github.com/adyzng/go-duka/misc"
)
Expand Down Expand Up @@ -174,7 +175,7 @@ func NewHeader(version uint32, symbol string, timeframe, spread, model uint32) *
func (h *FXTHeader) ToBytes() ([]byte, error) {
bs, err := misc.PackLittleEndian(headerSize, h)
if err != nil {
log.Error("Failed to convert FXT header to bytes array. Error %v.", err)
log.Printf("Failed to convert FXT header to bytes array. Error %v.", err)
return make([]byte, 0), err
}
return bs, err
Expand All @@ -183,7 +184,7 @@ func (h *FXTHeader) ToBytes() ([]byte, error) {
func (t *FxtTick) ToBytes() ([]byte, error) {
bs, err := misc.PackLittleEndian(tickSize, t)
if err != nil {
log.Error("Failed to convert FXT tick to bytes array. Error %v.", err)
log.Printf("Failed to convert FXT tick to bytes array. Error %v.", err)
return make([]byte, 0), err
}
return bs, err
Expand Down

0 comments on commit 429a995

Please sign in to comment.