Preserve ticker/orderbook output

This commit is contained in:
Adrian Gallagher
2018-10-24 15:07:19 +11:00
parent d3c2800fe0
commit e6027cfede
2 changed files with 16 additions and 30 deletions

View File

@@ -59,7 +59,7 @@ func main() {
flag.StringVar(&bot.dataDir, "datadir", common.GetDefaultDataDir(runtime.GOOS), "default data directory for GoCryptoTrader files")
dryrun := flag.Bool("dryrun", false, "dry runs bot, doesn't save config file")
version := flag.Bool("version", false, "retrieves current GoCryptoTrader version")
verbosity := flag.Bool("verbose", false, "-verbose increases logging verbosity for GoCryptoTrader")
verbosity := flag.Bool("verbose", false, "increases logging verbosity for GoCryptoTrader")
flag.Parse()
@@ -159,8 +159,8 @@ func main() {
go portfolio.StartPortfolioWatcher()
go TickerUpdaterRoutine(*verbosity)
go OrderbookUpdaterRoutine(*verbosity)
go TickerUpdaterRoutine()
go OrderbookUpdaterRoutine()
go WebsocketRoutine(*verbosity)
<-bot.shutdown

View File

@@ -53,7 +53,7 @@ func printConvertCurrencyFormat(origCurrency string, origPrice float64) string {
)
}
func printTickerSummary(result ticker.Price, p pair.CurrencyPair, assetType, exchangeName string, err error, verbose bool) {
func printTickerSummary(result ticker.Price, p pair.CurrencyPair, assetType, exchangeName string, err error) {
if err != nil {
log.Printf("Failed to get %s %s ticker. Error: %s",
p.Pair().String(),
@@ -62,10 +62,6 @@ func printTickerSummary(result ticker.Price, p pair.CurrencyPair, assetType, exc
return
}
if !verbose {
return
}
stats.Add(exchangeName, p, assetType, result.Last, result.Volume)
if currency.IsFiatCurrency(p.SecondCurrency.String()) && p.SecondCurrency.String() != bot.config.Currency.FiatDisplayCurrency {
origCurrency := p.SecondCurrency.Upper().String()
@@ -106,7 +102,7 @@ func printTickerSummary(result ticker.Price, p pair.CurrencyPair, assetType, exc
}
}
func printOrderbookSummary(result orderbook.Base, p pair.CurrencyPair, assetType, exchangeName string, err error, verbose bool) {
func printOrderbookSummary(result orderbook.Base, p pair.CurrencyPair, assetType, exchangeName string, err error) {
if err != nil {
log.Printf("Failed to get %s %s orderbook. Error: %s",
p.Pair().String(),
@@ -115,10 +111,6 @@ func printOrderbookSummary(result orderbook.Base, p pair.CurrencyPair, assetType
return
}
if !verbose {
return
}
bidsAmount, bidsValue := result.CalculateTotalBids()
asksAmount, asksValue := result.CalculateTotalAsks()
@@ -170,7 +162,7 @@ func printOrderbookSummary(result orderbook.Base, p pair.CurrencyPair, assetType
}
}
func relayWebsocketEvent(result interface{}, event, assetType, exchangeName string, verbose bool) {
func relayWebsocketEvent(result interface{}, event, assetType, exchangeName string) {
evt := WebsocketEvent{
Data: result,
Event: event,
@@ -179,16 +171,14 @@ func relayWebsocketEvent(result interface{}, event, assetType, exchangeName stri
}
err := BroadcastWebsocketMessage(evt)
if err != nil {
if verbose {
log.Println(fmt.Errorf("Failed to broadcast websocket event. Error: %s",
err))
}
log.Println(fmt.Errorf("Failed to broadcast websocket event. Error: %s",
err))
}
}
// TickerUpdaterRoutine fetches and updates the ticker for all enabled
// currency pairs and exchanges
func TickerUpdaterRoutine(verbose bool) {
func TickerUpdaterRoutine() {
log.Println("Starting ticker updater routine.")
var wg sync.WaitGroup
for {
@@ -217,11 +207,11 @@ func TickerUpdaterRoutine(verbose bool) {
} else {
result, err = exch.GetTickerPrice(c, assetType)
}
printTickerSummary(result, c, assetType, exchangeName, err, verbose)
printTickerSummary(result, c, assetType, exchangeName, err)
if err == nil {
bot.comms.StageTickerData(exchangeName, assetType, result)
if bot.config.Webserver.Enabled {
relayWebsocketEvent(result, "ticker_update", assetType, exchangeName, verbose)
relayWebsocketEvent(result, "ticker_update", assetType, exchangeName)
}
}
}
@@ -238,16 +228,14 @@ func TickerUpdaterRoutine(verbose bool) {
}(x, &wg)
}
wg.Wait()
if verbose {
log.Println("All enabled currency tickers fetched.")
}
log.Println("All enabled currency tickers fetched.")
time.Sleep(time.Second * 10)
}
}
// OrderbookUpdaterRoutine fetches and updates the orderbooks for all enabled
// currency pairs and exchanges
func OrderbookUpdaterRoutine(verbose bool) {
func OrderbookUpdaterRoutine() {
log.Println("Starting orderbook updater routine.")
var wg sync.WaitGroup
for {
@@ -270,11 +258,11 @@ func OrderbookUpdaterRoutine(verbose bool) {
processOrderbook := func(exch exchange.IBotExchange, c pair.CurrencyPair, assetType string) {
result, err := exch.UpdateOrderbook(c, assetType)
printOrderbookSummary(result, c, assetType, exchangeName, err, verbose)
printOrderbookSummary(result, c, assetType, exchangeName, err)
if err == nil {
bot.comms.StageOrderbookData(exchangeName, assetType, result)
if bot.config.Webserver.Enabled {
relayWebsocketEvent(result, "orderbook_update", assetType, exchangeName, verbose)
relayWebsocketEvent(result, "orderbook_update", assetType, exchangeName)
}
}
}
@@ -287,9 +275,7 @@ func OrderbookUpdaterRoutine(verbose bool) {
}(x, &wg)
}
wg.Wait()
if verbose {
log.Println("All enabled currency orderbooks fetched.")
}
log.Println("All enabled currency orderbooks fetched.")
time.Sleep(time.Second * 10)
}
}