mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-05-16 15:09:57 +00:00
* modernise: Run new gopls modernise tool against codebase
* Address shazbert's nits
* apichecker, gctcli: Simplify HTML scraping functions and improve depth limit handling
* refactor: Create minSyncInterval const and update order book limit handling for binance and binanceUS
* refactor: Various slice usage improvements and rename TODO
* tranches: Revert deleteByID changes due to performance decrease
Shazbert was a F1 driver in a past lifetime 🏎️
* tranches: Simply retrieve copy
Thanks to shazbert
* documentation: Sort contributors list by contributions
* tranches: Remove deadcode in deleteByID
62 lines
1.2 KiB
Go
62 lines
1.2 KiB
Go
package indicators
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
"strings"
|
|
|
|
"github.com/thrasher-corp/gct-ta/indicators"
|
|
"github.com/thrasher-corp/gocryptotrader/gctscript/modules"
|
|
)
|
|
|
|
// OHLCV locale string for OHLCV data conversion failure
|
|
const OHLCV = "OHLCV data"
|
|
|
|
var errInvalidSelector = errors.New("invalid selector")
|
|
|
|
func toFloat64(data any) (float64, error) {
|
|
switch d := data.(type) {
|
|
case float64:
|
|
return d, nil
|
|
case int:
|
|
return float64(d), nil
|
|
case int32:
|
|
return float64(d), nil
|
|
case int64:
|
|
return float64(d), nil
|
|
default:
|
|
return 0, fmt.Errorf(modules.ErrParameterConvertFailed, d)
|
|
}
|
|
}
|
|
|
|
// ParseIndicatorSelector returns indicator number from string for slice selection
|
|
func ParseIndicatorSelector(in string) (int, error) {
|
|
switch in {
|
|
case "open":
|
|
return 1, nil
|
|
case "high":
|
|
return 2, nil
|
|
case "low":
|
|
return 3, nil
|
|
case "close":
|
|
return 4, nil
|
|
case "vol":
|
|
return 5, nil
|
|
default:
|
|
return 0, errInvalidSelector
|
|
}
|
|
}
|
|
|
|
// ParseMAType returns moving average from string
|
|
func ParseMAType(in string) (indicators.MaType, error) {
|
|
in = strings.ToLower(in)
|
|
switch in {
|
|
case "sma":
|
|
return indicators.Sma, nil
|
|
case "ema":
|
|
return indicators.Ema, nil
|
|
default:
|
|
return 0, errInvalidSelector
|
|
}
|
|
}
|