diff options
author | Ismaël Bouya <ismael.bouya@normalesup.org> | 2018-01-14 03:00:29 +0100 |
---|---|---|
committer | Ismaël Bouya <ismael.bouya@normalesup.org> | 2018-01-14 03:01:02 +0100 |
commit | 48bedc24dc34159fdf0ddaa5daaa055596c11d5c (patch) | |
tree | 27186559bef4816f811d84bd154da4672b1a209e | |
parent | e9e2694d8a97e3a13eb8f35f8febf5ebb48905ee (diff) | |
download | Trader-48bedc24dc34159fdf0ddaa5daaa055596c11d5c.tar.gz Trader-48bedc24dc34159fdf0ddaa5daaa055596c11d5c.tar.zst Trader-48bedc24dc34159fdf0ddaa5daaa055596c11d5c.zip |
Augment ticker information to show adjusted bid/ask
-rw-r--r-- | script.py | 14 |
1 files changed, 13 insertions, 1 deletions
@@ -26,9 +26,19 @@ def formatted_price(value): | |||
26 | def get_ticker(c1, c2, market): | 26 | def get_ticker(c1, c2, market): |
27 | def invert(ticker): | 27 | def invert(ticker): |
28 | return { | 28 | return { |
29 | "inverted": True, | ||
29 | "bid": float(1/ticker["ask"]), | 30 | "bid": float(1/ticker["ask"]), |
30 | "ask": float(1/ticker["bid"]), | 31 | "ask": float(1/ticker["bid"]), |
32 | "bidA": float(1/ticker["askA"]), | ||
33 | "askA": float(1/ticker["bidA"]), | ||
31 | } | 34 | } |
35 | def augment_ticker(ticker): | ||
36 | # FIXME: need to do better than just a multiplier | ||
37 | ticker.update({ | ||
38 | "inverted": False, | ||
39 | "bidA": ticker["bid"] * 0.99, | ||
40 | "askA": ticker["ask"] * 1.01, | ||
41 | }) | ||
32 | 42 | ||
33 | if (c1, c2, market.__class__) in get_ticker.cache: | 43 | if (c1, c2, market.__class__) in get_ticker.cache: |
34 | return get_ticker.cache[(c1, c2, market.__class__)] | 44 | return get_ticker.cache[(c1, c2, market.__class__)] |
@@ -37,9 +47,11 @@ def get_ticker(c1, c2, market): | |||
37 | 47 | ||
38 | try: | 48 | try: |
39 | get_ticker.cache[(c1, c2, market.__class__)] = market.fetch_ticker("{}/{}".format(c1, c2)) | 49 | get_ticker.cache[(c1, c2, market.__class__)] = market.fetch_ticker("{}/{}".format(c1, c2)) |
50 | augment_ticker(get_ticker.cache[(c1, c2, market.__class__)]) | ||
40 | except ccxt.ExchangeError: | 51 | except ccxt.ExchangeError: |
41 | try: | 52 | try: |
42 | get_ticker.cache[(c2, c1, market.__class__)] = market.fetch_ticker("{}/{}".format(c2, c1)) | 53 | get_ticker.cache[(c2, c1, market.__class__)] = market.fetch_ticker("{}/{}".format(c2, c1)) |
54 | augment_ticker(get_ticker.cache[(c2, c1, market.__class__)]) | ||
43 | except ccxt.ExchangeError: | 55 | except ccxt.ExchangeError: |
44 | get_ticker.cache[(c1, c2, market.__class__)] = None | 56 | get_ticker.cache[(c1, c2, market.__class__)] = None |
45 | return get_ticker(c1, c2, market) | 57 | return get_ticker(c1, c2, market) |
@@ -61,7 +73,7 @@ def assets_value(assets, market, base_currency="BTC"): | |||
61 | asset_ticker = get_ticker(currency, base_currency, market) | 73 | asset_ticker = get_ticker(currency, base_currency, market) |
62 | if asset_ticker is None: | 74 | if asset_ticker is None: |
63 | raise Exception("This asset is not available in the chosen market") | 75 | raise Exception("This asset is not available in the chosen market") |
64 | repartition_in_base_currency[currency] = int(asset_ticker["bid"] * asset_value) | 76 | repartition_in_base_currency[currency] = int(asset_ticker["bidA"] * asset_value) |
65 | return repartition_in_base_currency | 77 | return repartition_in_base_currency |
66 | 78 | ||
67 | def dispatch_assets(base_currency_value, repartition_pertenthousand, market, base_currency="BTC"): | 79 | def dispatch_assets(base_currency_value, repartition_pertenthousand, market, base_currency="BTC"): |