aboutsummaryrefslogtreecommitdiff
path: root/main.py
diff options
context:
space:
mode:
authorIsmaël Bouya <ismael.bouya@normalesup.org>2018-02-25 18:02:44 +0100
committerIsmaël Bouya <ismael.bouya@normalesup.org>2018-02-25 18:22:08 +0100
commitf86ee14037646bedc3a3dee4a48f085308981757 (patch)
treee2190bf9d7cde94c4e8879ba4955691aeac40950 /main.py
parenteb9c92e155941b51042ba57e23f651454bd8e55a (diff)
downloadTrader-f86ee14037646bedc3a3dee4a48f085308981757.tar.gz
Trader-f86ee14037646bedc3a3dee4a48f085308981757.tar.zst
Trader-f86ee14037646bedc3a3dee4a48f085308981757.zip
Refactor the store to be more conciliant with multiple marketsv0.2
Diffstat (limited to 'main.py')
-rw-r--r--main.py66
1 files changed, 9 insertions, 57 deletions
diff --git a/main.py b/main.py
index 41abe9e..e7cdcf0 100644
--- a/main.py
+++ b/main.py
@@ -1,64 +1,16 @@
1import os
2import sys 1import sys
3import configparser 2import helper, market
4import psycopg2
5import argparse
6from datetime import datetime
7 3
8import portfolio, market 4args = helper.main_parse_args(sys.argv[1:])
9 5
10parser = argparse.ArgumentParser( 6pg_config, report_path = helper.main_parse_config(args.config)
11 description="Run the trade bot")
12 7
13parser.add_argument("-c", "--config", 8for market_config, user_id in helper.main_fetch_markets(pg_config):
14 default="config.ini",
15 required=False,
16 help="Config file to load (default: config.ini)")
17parser.add_argument("--before",
18 default=False, action='store_const', const=True,
19 help="Run the steps before the cryptoportfolio update")
20parser.add_argument("--after",
21 default=False, action='store_const', const=True,
22 help="Run the steps after the cryptoportfolio update")
23parser.add_argument("--debug",
24 default=False, action='store_const', const=True,
25 help="Run in debug mode")
26
27args = parser.parse_args()
28
29if not os.path.exists(args.config):
30 print("no config file found, exiting")
31 sys.exit(1)
32
33config = configparser.ConfigParser()
34config.read(args.config)
35
36pg_config = config["postgresql"]
37
38connection = psycopg2.connect(**pg_config)
39cursor = connection.cursor()
40
41cursor.execute("SELECT config,user_id FROM market_configs")
42
43report_path = config["app"]["report_path"]
44if not os.path.exists(report_path):
45 os.makedirs(report_path)
46
47for row in cursor:
48 market_config, user_id = row
49 try: 9 try:
50 user_market = market.get_market(market_config) 10 market_config["apiKey"] = market_config.pop("key")
51 if args.before: 11 user_market = market.Market.from_config(market_config, debug=args.debug)
52 portfolio.h.process_sell_all__1_all_sell(user_market, debug=args.debug) 12 helper.main_process_market(user_market, before=args.before, after=args.after)
53 if args.after:
54 portfolio.Portfolio.wait_for_recent()
55 portfolio.h.process_sell_all__2_all_buy(user_market, debug=args.debug)
56 except Exception as e: 13 except Exception as e:
57 print(e) 14 print("{}: {}".format(e.__class__.__name__, e))
58 pass
59 finally: 15 finally:
60 report_file = "{}/{}_{}.json".format(report_path, datetime.now().isoformat(), user_id) 16 helper.main_store_report(report_path, user_id, user_market)
61 with open(report_file, "w") as f:
62 f.write(portfolio.ReportStore.to_json())
63 portfolio.h.reset_all()
64