77 lines
1.8 KiB
Go
77 lines
1.8 KiB
Go
package ent
|
|
|
|
import (
|
|
"flag"
|
|
"github.com/banbox/banbot/biz"
|
|
"github.com/banbox/banbot/config"
|
|
"github.com/banbox/banbot/entry"
|
|
"github.com/banbox/banexg/errs"
|
|
"github.com/banbox/banexg/log"
|
|
"github.com/banbox/banstagy/arb"
|
|
"github.com/spf13/cobra"
|
|
"os"
|
|
)
|
|
|
|
func init() {
|
|
entry.AddCommand("tool", &cobra.Command{
|
|
Use: "hisSharpe",
|
|
DisableFlagParsing: true,
|
|
RunE: func(_ *cobra.Command, args []string) error {
|
|
return hisSharpe(args)
|
|
},
|
|
})
|
|
}
|
|
|
|
func RunMyEntry(args []string) *errs.Error {
|
|
if len(args) == 0 {
|
|
log.Warn("sub command is require for `my`")
|
|
return nil
|
|
}
|
|
var ag = &config.CmdArgs{}
|
|
var f = flag.NewFlagSet("web", flag.ExitOnError)
|
|
f.StringVar(&ag.LogLevel, "level", "info", "log level")
|
|
f.StringVar(&ag.TimeZone, "tz", "", "timezone")
|
|
f.StringVar(&ag.DataDir, "datadir", "", "Path to data dir.")
|
|
f.StringVar(&ag.ConfigData, "config-data", "", "yaml config string")
|
|
f.Var(&ag.Configs, "config", "config path to use, Multiple -config options may be used")
|
|
if args == nil {
|
|
args = os.Args
|
|
}
|
|
err_ := f.Parse(args[1:])
|
|
if err_ != nil {
|
|
return errs.New(errs.CodeRunTime, err_)
|
|
}
|
|
|
|
err := biz.SetupComsExg(&config.CmdArgs{
|
|
LogLevel: ag.LogLevel,
|
|
DataDir: ag.DataDir,
|
|
TimeZone: ag.TimeZone,
|
|
Configs: ag.Configs,
|
|
ConfigData: ag.ConfigData,
|
|
})
|
|
if err != nil {
|
|
return err
|
|
}
|
|
switch args[0] {
|
|
case "fundRate":
|
|
err = runFundEnter()
|
|
case "moneyFlow":
|
|
err = maxVolTest()
|
|
case "maxChg":
|
|
err = maxChgTest()
|
|
case "twoPairRatio":
|
|
err = arb.GenTwoPairRatio()
|
|
case "profTuple":
|
|
err = arb.ProfTuples()
|
|
case "tupleSpike":
|
|
err = arb.FindTupleSpikes()
|
|
case "statGroup":
|
|
err = arb.StatGroupPairs()
|
|
case "balance":
|
|
err = showBalance()
|
|
default:
|
|
log.Warn("unknown sub command for `my`")
|
|
}
|
|
return err
|
|
}
|