Commit Graph

53 Commits

Author SHA1 Message Date
Andrew
d01e7bad72 Implement Logger (#228)
* Added new base logger

* updated example and test configs

* updated exchange helpers restful router & server

* logPath is now passed to the logger to remove dependency on common package

* updated everything besides exchanges to use new logger

* alphapoint to bitmex done

* updated bitmex bitstamp bittrex btcc and also performance changes to logger

* btcmarkets coinbase coinut exmo gateio wrappers updated

* gateio and gemini logger updated

* hitbtc huobi itbit & kraken updated

* All exchanges updatd

* return correct error for disabled websocket

* don't disconnect client on invalid json

* updated router internal logging

* log.Fatal to t.Error for tests

* Changed from fatal to error failure to set maxprocs

* output ANSI codes for everything but windows for now due to lack of windows support

* added error handling to logger and unit tests

* clear wording on print -> log.print

* added benchmark test

* cleaned up import sections

* Updated logger based on PR requests (added default config options on failure/setting errors)

* ah this should fix travici enc config issue

* Load entire config and clear out logging to hopefully fix travisci issue

* wording & test error handling

* fixed formatting issues based on feedback

* fixed formatting issues based on feedback

* changed CheckDir to use mkdirall instead of mkdir and other changes based on feedback
2019-01-08 21:56:22 +11:00
Ryan O'Hara-Reid
4ca3fd5b00 GetAccountInfo wrapper update (#220)
* Added untested [cloudflare issue] changes to accountinfo for ANX

* Add alphapoint comment for future implementation

* Adds GetAccountInfo for Binance

* Adds GetAccountInfo update for Bithumb

* Updates GetAccountInfo for GateIO.
Adds error handling feature for authenticated requests.

* Updates GetAccountInfo function for Huobi.
Adds function for getting account ID.

* Updates GetAccountInfo function
Adds GetAccountID function

* Updates GetAccountInfo [un-tested, no access to keys at this time]

* Updates GetAccountInfo for Kraken

* Updates GetAccountInfo func for OKEX

* Updates GetAccountInfo for exchange ZB

* Updates GetAccountInfo func for Bitmex

* Updates GetAccountInfo func for Coinut

* Updates GetAccountInfo for ANX exchange

* Fixes incorrect hold currency issue

* Fixes type name

* Fixes issue with unneeded code in wrapper for Bithumb

* Change strings to type symbol string

* Fixes nit for Gateio

* Fixes GetAccountInfo issue
Fixes SpotCancelOrder issue
2018-12-13 16:53:19 +11:00
CodeLingo Bot
05f9f40723 Fix comments according to best practices by effective go (#219) 2018-12-11 12:50:07 +11:00
Scott
e4c443b901 Calculating each exchange's fees (#188)
* Adds some constants for fee types
Adds some fee calculation in an attempt to be generic
Adds fee stuff to Bittrex
Adds fee stuff to bitstamp

* Fixes bitstamp fee calculation

* Tests
Tests all scenarios for GetFeeByType

* Adds method to wrapper
Adds err to response
Checks for err

* Adds support for Bittrex fees

* Adds maker/taker dynamic to fees
Updates tests
Adds bitmex fee support
Removes unused switch case scenarios to not waste space

* Adds bithumb support for fee calculation

* Adds Bitfinex fee support
Adds list of currencies as const strings
Sets up bitflyer

* Fixes arguments

* Greatly expands symbols
Adds Binance fee calculation support
Cleans up previous exchanges

* Fixes errors for fee calculations

* Adds ANX fee support

* Adds btcc fee support
Adds alphapoint fee wrapper support
Renames method to match "enum"
Uses symbols in tests, not inline strings

* Adds support for BTCMarkets fee calculation
Adds new method to retrieve fee amount from BTCMarkets
Adds new fee type struct: FeeBuilder
Updates ANX and BTCMarkets to use new FeeBuilder type struct
Standardises the tests to run when it comes to fee calculation

* Migrates all existing exchange fee to use new feebuilder type struct
Uses standard testing model

* Fixes unit tests

* Updates maker taker fees in test config

* Removes parallel from fee testing

* Removes more parallel from tests

* Adds coinbasepro fee support

* Adds Coinut fee support

* Adds Exmo fee support
Adds maker fee support to coinut
Introduces a type for fees and bank transfers to prevent random strings being used

* Adds partial bitflyer support
Moves bitflyer to feeBuilder struct

* Adds gateio fee support

* Adds Gemini fee support

* Adds hitbtc fee support

* Adds huobi fee support

* Adds HuobiHadax fee support

* Adds itbit fee support

* Adds partial kraken fee support with trading fees

* Finishes basic Kraken fee support

* Adds basic LakeBTC fee support

* Adds basic liqui fee support

* Adds localbitcoins fee support.......

* Adds basic okcoin fee support

* Adds simple OKEX fee support
Adds many new currency symbols
Fixes liqui's fees

* Adds poloniex fee support

* Adds fee support for Yobit

* Adds WEX fee support

* Adds ZB fee support

* Removes bad reference

* Improves accuracy of variable name

* trading fee method names are now consistent

(cherry picked from commit 21c82e8b90cae590cfd73d365d7be39e1a00e973)

* Fixes rebasing issues

* Fixes issues from rebase
Removes "IsTaker" as IsMaker bool can imply taker
Updates tests to actually work.

* Adds a zero to the test

* Fixes bitfinex api endpoints and fixes fee calculations

* Updates btcmarkets trading fee calculation

* Verifies tests with apis for all exchanges except coinbasepro, itbit and bitflyer
Removes taker fee test as taker is default

* Removes redundant all exchange wrapper error checks due to the error checks being redundant

* Addresses review comments:
- Renames variables
- Changes how functions return data
- Fixes typo
2018-10-29 12:32:46 +11:00
Adrian Gallagher
f6bce891c4 Add additional helper functions to pairs package 2018-10-05 15:21:06 +10:00
Adrian Gallagher
bdd1fa3cdf config consistency check to ensure an enabled pair is supported by the exchange 2018-09-21 16:25:27 +10:00
Adrian Gallagher
96cbf90446 Remove non-needed getter functions for currency pairs
Fixes https://github.com/thrasher-/gocryptotrader/issues/180
2018-09-20 15:01:11 +10:00
Marco Franssen
cbbad60e78 Lowercased the remaining config values for the config/all endpoint 2018-08-10 16:05:20 +02:00
Ryan O'Hara-Reid
3b8591bcc8 Updated documentation tool (#155)
* Updated documentation tool
Added templates
Updated documentation using tool

* Fixed incorrect version in web README

* Added new templates to tool.
Updated documents in templates across the code base.
Used tool to regenerate documentation.
2018-07-19 16:02:24 +10:00
Marco Franssen
0f209165d5 Improved code quality (#154)
* Removed package-lock.json form gitignore as it ensures specific package versions

* Updated all @angular web dependencies

* Resolved tslint errors using autofix option

* Resolved some more tslint issues

* Added lint scripts to package.json to easy lint the ts files

* Updated codelyzer and tslint

* Run web on travis using node 10 and run the lint task

* Resolved some more tslint issues after upgrading tslint and codelyzer

* Resolved golint issues with regards to exchange comments

* Resolved spelling errors shown by goreportcard.com

* Resolved gofmt warnings using goreportcard.com

* Resolved golint issue by removing unrequired else statement

* Refactored slack.go to reduce cyclomatic complexity

* Fixed govet issue where Slack was passed as value instead of reference
2018-07-18 15:46:47 +10:00
Ryan O'Hara-Reid
58051b89c7 New package provider for foreign exchange rates.
Fixes issue: https://github.com/thrasher-/gocryptotrader/issues/131
Supersedes: https://github.com/thrasher-/gocryptotrader/pull/123
2018-06-06 21:05:17 +10:00
Ryan O'Hara-Reid
dc11f87b8b Updated README template files and regenerated documentation. (#125) 2018-05-14 10:03:17 +10:00
Adrian Gallagher
ac41a7cfad New features and bug fixes
- Modifications made to the request package. Planned improvements will be
sending requests on intervals, rate limiter back off support, dynamic tuning
and requests packaged into a request job group.
- Can modify each exchanges individual HTTP client (e.g timeout and
transport settings).
- Bot now uses an exchange config HTTP timeout value.
- Bot now uses a global HTTP timeout (configurable).
- Batched ticker request support for exchanges.
- Ticker and Orderbook fetching now are spanned accross multiple
go routines and regulated by a sync wait group.
- Fixes hack used to load exchanges, now uses a sync wait group.
- Ticker and Orderbook storage and fetching now uses mutex locks.
- New pair function for finding different pairs between two supplied
 pair arrays. This is used for currency pair updates for exchange which
support dynamic updating.
- Shows removal/additions of dynamic updates currencies.
2018-05-04 13:20:19 +10:00
Ryan O'Hara-Reid
5f25fd8be7 Quick bug fix (#112)
* Added verbosity to returned error in currency.go

* Fixed bug with request handler init in okcoin.
2018-03-27 17:31:46 +11:00
Adrian Gallagher
c0ccc901dc Fix GoReport issues 2018-03-26 12:18:19 +11:00
Adrian Gallagher
3eb81a3185 Improve pairs/translation packages and various fixes 2018-03-26 12:17:39 +11:00
Ryan O'Hara-Reid
9514754960 New documents generated by documentation tool. 2018-02-28 09:55:11 +11:00
Ryan O'Hara-Reid
dd00eba27e Applied fix to documentation.go for contribution HTML_URL.
Added period to documentation templates sentences.
Added logic to documentation.go to fix broken links for godoc in sub-packages.
Fix coding style to conform to golang idiomatic practice.
Applied fix to access main godocs in tools and test data.
Generated new documents using tools.
2018-02-20 11:56:25 +11:00
Ryan O'Hara-Reid
6cb17bb97e Added new base documentation using documentation tool 2018-02-20 10:43:59 +11:00
Adrian Gallagher
4069595f7c Use batch requesting where possible, add new functions for various exchanges, allow auto updating currencies for certain exchanges, update tests and configs 2018-02-12 15:08:30 +11:00
Adrian Gallagher
0cd20804e9 Add IsFiatPair function 2018-02-10 20:10:16 +11:00
Adrian Gallagher
64a7bc206a Add RUR symbol 2018-02-08 14:04:17 +11:00
Adrian Gallagher
e8f8e32609 Add/improve common string functions, currency pair handling, fix LBTC orderbook amount 2018-02-08 12:00:55 +11:00
Adrian Gallagher
2dc4af00c3 Add CopyPairFormat to pair package and expand test coverage 2018-02-06 15:41:51 +11:00
Adrian Gallagher
fca7e5e59a Update tests, config files and README.md 2018-02-03 15:18:12 +11:00
Adrian Gallagher
e2ad8998bf Improve Fixer currency conversion 2018-01-25 16:04:32 +11:00
Adrian Gallagher
5a2c81346c Added helper functions, exchange method to set currencies and bug fixes 2018-01-18 12:45:19 +11:00
Adrian Gallagher
5dc6df72aa Improvements in config, currency, exchange, pair and helper code 2018-01-17 13:42:09 +11:00
Adrian Gallagher
34eeed287a Add various helper functions for exchanges and currency pairs.
Improve Kraken config/request currency handling.
Update config file to reflect changes.
2018-01-15 16:53:12 +11:00
Adrian Gallagher
2446007b03 Various improvements 2018-01-03 18:36:13 +11:00
Adrian Gallagher
8e7e2fb914 Add currency translation mapping
For example BTC is also XBT
2018-01-02 18:49:59 +11:00
Adrian Gallagher
e00314bd5c Disable Yahoo currency conversion again 2017-11-01 16:35:32 +11:00
Adrian Gallagher
55c8b02d1d Fix misspells 2017-10-04 18:15:01 +11:00
Ryan O'Hara-Reid
79a1911c93 In the common package added JSONDecode error check. Added verbosity in SendHTTPGetRequest. Updated Nonce package function. Fixed issues in ItBit package and expanded test coverage. 2017-09-18 14:47:14 +10:00
Adrian Gallagher
04d1de9e22 Add fiat display currency setting, defaults to USD 2017-09-14 15:08:20 +10:00
Adrian Gallagher
0682dcec88 Add currency converter provider failover and add config setting 2017-09-14 15:08:19 +10:00
Adrian Gallagher
2bd27feaf0 Polish websocket code 2017-09-14 15:08:19 +10:00
Adrian Gallagher
69aa445a3a Refactor stats and link up to ticker routine 2017-09-14 15:08:19 +10:00
Adrian Gallagher
87633c2142 Link up orderbook websocket code, improve exchange test coverage and various other fixes 2017-09-14 15:07:59 +10:00
Adrian Gallagher
d1bdc6af5d Use fixer.io currency rates API instead of Yahoo due to Yahoo service issues 2017-08-28 09:06:53 +10:00
Adrian Gallagher
4dcce85810 Default to HTTPS everywhere in project 2017-08-25 16:57:06 +10:00
Adrian Gallagher
55ea1fe434 Add generalised functions for handling exchange enabled and available currencies 2017-08-25 15:54:45 +10:00
Adrian Gallagher
7be8c0272b Add currency pair display method to display a currency pair based on user config preferences (e.g BTC-USD or BTCUSD) 2017-08-23 15:52:15 +10:00
Adrian Gallagher
4f34b58d55 Improve portfolio, coverage and tool 2017-08-17 11:56:54 +10:00
Adrian Gallagher
0f55715987 Run gofmt and fix poloniex orderbook issue
Fixes https://github.com/thrasher-/gocryptotrader/issues/40
2017-08-09 23:18:23 -07:00
Ryan O'Hara-Reid
3e4fb1660d Fixed test race conditions 2017-07-31 11:44:12 +10:00
Ryan O'Hara-Reid
745505a33e General formatting for currency 2017-07-31 11:44:01 +10:00
Adrian Gallagher
fb6d966007 Merge branch 'test'
Merge current test branch progress
2017-04-19 11:17:10 +10:00
Adrian Gallagher
d526e9f2a9 Add currency pair support 2017-04-19 00:16:53 +10:00
Ryan O'Hara-Reid
8a96f20858 Restructured test files and added alphapoint test 2017-04-11 22:00:20 +10:00