From f050c13daafe273b84008a48d2a90103a477a793 Mon Sep 17 00:00:00 2001 From: Ryan O'Hara-Reid Date: Mon, 9 Nov 2020 15:14:10 +1100 Subject: [PATCH] remove rounding from scripting TA (#591) --- gctscript/modules/ta/indicators/atr.go | 3 +-- gctscript/modules/ta/indicators/bbands.go | 7 +++---- gctscript/modules/ta/indicators/correlation.go | 3 +-- gctscript/modules/ta/indicators/ema.go | 3 +-- gctscript/modules/ta/indicators/macd.go | 7 +++---- gctscript/modules/ta/indicators/mfi.go | 3 +-- gctscript/modules/ta/indicators/obv.go | 3 +-- gctscript/modules/ta/indicators/rsi.go | 3 +-- gctscript/modules/ta/indicators/sma.go | 3 +-- 9 files changed, 13 insertions(+), 22 deletions(-) diff --git a/gctscript/modules/ta/indicators/atr.go b/gctscript/modules/ta/indicators/atr.go index e811953f..e1809553 100644 --- a/gctscript/modules/ta/indicators/atr.go +++ b/gctscript/modules/ta/indicators/atr.go @@ -3,7 +3,6 @@ package indicators import ( "errors" "fmt" - "math" "strings" objects "github.com/d5/tengo/v2" @@ -87,7 +86,7 @@ func atr(args ...objects.Object) (objects.Object, error) { r.Period = inTimePeriod ret := indicators.ATR(ohlcvData[2], ohlcvData[3], ohlcvData[4], inTimePeriod) for x := range ret { - r.Value = append(r.Value, &objects.Float{Value: math.Round(ret[x]*100) / 100}) + r.Value = append(r.Value, &objects.Float{Value: ret[x]}) } return r, nil diff --git a/gctscript/modules/ta/indicators/bbands.go b/gctscript/modules/ta/indicators/bbands.go index e9c4fc9d..3c9d16d8 100644 --- a/gctscript/modules/ta/indicators/bbands.go +++ b/gctscript/modules/ta/indicators/bbands.go @@ -3,7 +3,6 @@ package indicators import ( "errors" "fmt" - "math" "strings" objects "github.com/d5/tengo/v2" @@ -125,12 +124,12 @@ func bbands(args ...objects.Object) (objects.Object, error) { retUpper, retMiddle, retLower := indicators.BBANDS(ohlcvData[selector], inTimePeriod, inNbDevDn, inNbDevDn, MAType) for x := range retMiddle { temp := &objects.Array{} - temp.Value = append(temp.Value, &objects.Float{Value: math.Round(retMiddle[x]*100) / 100}) + temp.Value = append(temp.Value, &objects.Float{Value: retMiddle[x]}) if retUpper != nil { - temp.Value = append(temp.Value, &objects.Float{Value: math.Round(retUpper[x]*100) / 100}) + temp.Value = append(temp.Value, &objects.Float{Value: retUpper[x]}) } if retLower != nil { - temp.Value = append(temp.Value, &objects.Float{Value: math.Round(retLower[x]*100) / 100}) + temp.Value = append(temp.Value, &objects.Float{Value: retLower[x]}) } r.Value = append(r.Value, temp) } diff --git a/gctscript/modules/ta/indicators/correlation.go b/gctscript/modules/ta/indicators/correlation.go index bd6a5ee0..77db500e 100644 --- a/gctscript/modules/ta/indicators/correlation.go +++ b/gctscript/modules/ta/indicators/correlation.go @@ -3,7 +3,6 @@ package indicators import ( "errors" "fmt" - "math" "strings" objects "github.com/d5/tengo/v2" @@ -84,7 +83,7 @@ func correlationCoefficient(args ...objects.Object) (objects.Object, error) { ret := indicators.CorrelationCoefficient(closures1, closures2, inTimePeriod) for x := range ret { - r.Value = append(r.Value, &objects.Float{Value: math.Round(ret[x]*100) / 100}) + r.Value = append(r.Value, &objects.Float{Value: ret[x]}) } return r, nil diff --git a/gctscript/modules/ta/indicators/ema.go b/gctscript/modules/ta/indicators/ema.go index 60f52ecc..72d571d6 100644 --- a/gctscript/modules/ta/indicators/ema.go +++ b/gctscript/modules/ta/indicators/ema.go @@ -3,7 +3,6 @@ package indicators import ( "errors" "fmt" - "math" "strings" objects "github.com/d5/tengo/v2" @@ -72,7 +71,7 @@ func ema(args ...objects.Object) (objects.Object, error) { ret := indicators.EMA(ohlcvClose, inTimePeriod) for x := range ret { - r.Value = append(r.Value, &objects.Float{Value: math.Round(ret[x]*100) / 100}) + r.Value = append(r.Value, &objects.Float{Value: ret[x]}) } return r, nil diff --git a/gctscript/modules/ta/indicators/macd.go b/gctscript/modules/ta/indicators/macd.go index 096c5853..24957f01 100644 --- a/gctscript/modules/ta/indicators/macd.go +++ b/gctscript/modules/ta/indicators/macd.go @@ -3,7 +3,6 @@ package indicators import ( "errors" "fmt" - "math" "strings" objects "github.com/d5/tengo/v2" @@ -85,12 +84,12 @@ func macd(args ...objects.Object) (objects.Object, error) { macd, macdSignal, macdHist := indicators.MACD(ohlcvClose, inFastPeriod, inSlowPeriod, inTimePeriod) for x := range macdHist { tempMACD := &objects.Array{} - tempMACD.Value = append(tempMACD.Value, &objects.Float{Value: math.Round(macdHist[x]*100) / 100}) + tempMACD.Value = append(tempMACD.Value, &objects.Float{Value: macdHist[x]}) if macd != nil { - tempMACD.Value = append(tempMACD.Value, &objects.Float{Value: math.Round(macd[x]*100) / 100}) + tempMACD.Value = append(tempMACD.Value, &objects.Float{Value: macd[x]}) } if macdSignal != nil { - tempMACD.Value = append(tempMACD.Value, &objects.Float{Value: math.Round(macdSignal[x]*100) / 100}) + tempMACD.Value = append(tempMACD.Value, &objects.Float{Value: macdSignal[x]}) } r.Value = append(r.Value, tempMACD) } diff --git a/gctscript/modules/ta/indicators/mfi.go b/gctscript/modules/ta/indicators/mfi.go index 6f0a1dd8..9f04313a 100644 --- a/gctscript/modules/ta/indicators/mfi.go +++ b/gctscript/modules/ta/indicators/mfi.go @@ -3,7 +3,6 @@ package indicators import ( "errors" "fmt" - "math" "strings" objects "github.com/d5/tengo/v2" @@ -87,7 +86,7 @@ func mfi(args ...objects.Object) (objects.Object, error) { ret := indicators.MFI(ohlcvData[2], ohlcvData[3], ohlcvData[4], ohlcvData[5], inTimePeriod) for x := range ret { - r.Value = append(r.Value, &objects.Float{Value: math.Round(ret[x]*100) / 100}) + r.Value = append(r.Value, &objects.Float{Value: ret[x]}) } return r, nil diff --git a/gctscript/modules/ta/indicators/obv.go b/gctscript/modules/ta/indicators/obv.go index 39622ed3..6644e6c7 100644 --- a/gctscript/modules/ta/indicators/obv.go +++ b/gctscript/modules/ta/indicators/obv.go @@ -3,7 +3,6 @@ package indicators import ( "errors" "fmt" - "math" "strings" objects "github.com/d5/tengo/v2" @@ -81,7 +80,7 @@ func obv(args ...objects.Object) (objects.Object, error) { ret := indicators.OBV(ohlcvData[4], ohlcvData[5]) for x := range ret { - temp := &objects.Float{Value: math.Round(ret[x]*100) / 100} + temp := &objects.Float{Value: ret[x]} r.Value = append(r.Value, temp) } return r, nil diff --git a/gctscript/modules/ta/indicators/rsi.go b/gctscript/modules/ta/indicators/rsi.go index c8f18dd6..06a46108 100644 --- a/gctscript/modules/ta/indicators/rsi.go +++ b/gctscript/modules/ta/indicators/rsi.go @@ -3,7 +3,6 @@ package indicators import ( "errors" "fmt" - "math" "strings" objects "github.com/d5/tengo/v2" @@ -71,7 +70,7 @@ func rsi(args ...objects.Object) (objects.Object, error) { r.Period = inTimePeriod ret := indicators.RSI(ohlcvClose, inTimePeriod) for x := range ret { - r.Value = append(r.Value, &objects.Float{Value: math.Round(ret[x]*100) / 100}) + r.Value = append(r.Value, &objects.Float{Value: ret[x]}) } return r, nil diff --git a/gctscript/modules/ta/indicators/sma.go b/gctscript/modules/ta/indicators/sma.go index 1d0ad83a..e204ea60 100644 --- a/gctscript/modules/ta/indicators/sma.go +++ b/gctscript/modules/ta/indicators/sma.go @@ -3,7 +3,6 @@ package indicators import ( "errors" "fmt" - "math" "strings" objects "github.com/d5/tengo/v2" @@ -69,7 +68,7 @@ func sma(args ...objects.Object) (objects.Object, error) { r.Period = inTimePeriod ret := indicators.SMA(ohlcvClose, inTimePeriod) for x := range ret { - r.Value = append(r.Value, &objects.Float{Value: math.Round(ret[x]*100) / 100}) + r.Value = append(r.Value, &objects.Float{Value: ret[x]}) } return r, nil