parser.add_argument("--user",
default=None, required=False, help="Only run for that user")
parser.add_argument("--action",
- default=None, required=False,
- help="Do a different action than trading")
+ action='append',
+ help="Do a different action than trading (add several times to chain)")
args = parser.parse_args(argv)
for row in cursor:
yield row
-def main_process_market(user_market, action, before=False, after=False):
- if action is None:
+def main_process_market(user_market, actions, before=False, after=False):
+ if len(actions or []) == 0:
if before:
process_sell_all__1_all_sell(user_market)
if after:
- portfolio.Portfolio.wait_for_recent(user_market)
- process_sell_all__2_all_buy(user_market)
- elif action == "print_balances":
- print_balances(user_market)
- elif action == "print_orders":
- print_orders(user_market)
+ process_sell_all__2_wait(user_market)
+ process_sell_all__3_all_buy(user_market)
else:
- raise NotImplementedError("Unknown action {}".format(action))
+ for action in actions:
+ if action in globals():
+ (globals()[action])(user_market)
+ else:
+ raise NotImplementedError("Unknown action {}".format(action))
def main_store_report(report_path, user_id, user_market):
try:
def process_sell_needed__2_buy(market, liquidity="medium", base_currency="BTC"):
market.report.log_stage("process_sell_needed__2_buy_begin")
market.balances.fetch_balances(tag="process_sell_needed__2_buy_begin")
- market.update_trades(base_currency=base_currency, liquidity=liquidity, only="acquire")
+ market.prepare_trades(base_currency=base_currency, liquidity=liquidity, only="acquire")
market.trades.prepare_orders(compute_value="average", only="acquire")
market.move_balances()
market.trades.run_orders()
market.balances.fetch_balances(tag="process_sell_all__1_all_sell_end")
market.report.log_stage("process_sell_all__1_all_sell_end")
-def process_sell_all__2_all_buy(market, base_currency="BTC", liquidity="medium"):
- market.report.log_stage("process_sell_all__2_all_buy_begin")
- market.balances.fetch_balances(tag="process_sell_all__2_all_buy_begin")
+def process_sell_all__2_wait(market, liquidity="medium", base_currency="BTC"):
+ market.report.log_stage("process_sell_all__2_wait_begin")
+ portfolio.Portfolio.wait_for_recent(market)
+ market.report.log_stage("process_sell_all__2_wait_end")
+
+def process_sell_all__3_all_buy(market, base_currency="BTC", liquidity="medium"):
+ market.report.log_stage("process_sell_all__3_all_buy_begin")
+ market.balances.fetch_balances(tag="process_sell_all__3_all_buy_begin")
market.prepare_trades(liquidity=liquidity, base_currency=base_currency)
market.trades.prepare_orders(compute_value="average")
market.move_balances()
market.trades.run_orders()
market.follow_orders()
- market.balances.fetch_balances(tag="process_sell_all__2_all_buy_end")
- market.report.log_stage("process_sell_all__2_all_buy_end")
+ market.balances.fetch_balances(tag="process_sell_all__3_all_buy_end")
+ market.report.log_stage("process_sell_all__3_all_buy_end")