aboutsummaryrefslogtreecommitdiff
path: root/market.py
diff options
context:
space:
mode:
Diffstat (limited to 'market.py')
-rw-r--r--market.py54
1 files changed, 39 insertions, 15 deletions
diff --git a/market.py b/market.py
index 5876071..7996a58 100644
--- a/market.py
+++ b/market.py
@@ -254,8 +254,7 @@ class Processor:
254 { 254 {
255 "name": "print_balances", 255 "name": "print_balances",
256 "number": 1, 256 "number": 1,
257 "fetch_balances": ["begin"], 257 "fetch_balances_begin": { "log_tickers": True, "add_portfolio": True },
258 "fetch_balances_args": { "add_portfolio": True },
259 "print_tickers": { "base_currency": "BTC" }, 258 "print_tickers": { "base_currency": "BTC" },
260 } 259 }
261 ], 260 ],
@@ -272,25 +271,37 @@ class Processor:
272 "number": 2, 271 "number": 2,
273 "before": False, 272 "before": False,
274 "after": True, 273 "after": True,
275 "fetch_balances": ["begin"], 274 "fetch_balances_begin": {},
276 "prepare_trades": { "compute_value": "average" }, 275 "prepare_trades": { "compute_value": "average" },
277 "prepare_orders": { "compute_value": "average" }, 276 "prepare_orders": { "compute_value": "average" },
278 }, 277 },
279 ], 278 ],
280 "sell_needed": [ 279 "sell_needed": [
281 { 280 {
282 "name": "wait", 281 "name": "print_balances",
283 "number": 0, 282 "number": 0,
283 "before": True,
284 "after": False,
285 "fetch_balances_begin": {
286 "checkpoint": "end",
287 "log_tickers": True,
288 "add_portfolio": True
289 },
290 },
291 {
292 "name": "wait",
293 "number": 1,
284 "before": False, 294 "before": False,
285 "after": True, 295 "after": True,
286 "wait_for_recent": {}, 296 "wait_for_recent": {},
287 }, 297 },
288 { 298 {
289 "name": "sell", 299 "name": "sell",
290 "number": 1, 300 "number": 2,
291 "before": False, 301 "before": False,
292 "after": True, 302 "after": True,
293 "fetch_balances": ["begin", "end"], 303 "fetch_balances_begin": {},
304 "fetch_balances_end": {},
294 "prepare_trades": {}, 305 "prepare_trades": {},
295 "prepare_orders": { "only": "dispose", "compute_value": "average" }, 306 "prepare_orders": { "only": "dispose", "compute_value": "average" },
296 "run_orders": {}, 307 "run_orders": {},
@@ -299,10 +310,14 @@ class Processor:
299 }, 310 },
300 { 311 {
301 "name": "buy", 312 "name": "buy",
302 "number": 2, 313 "number": 3,
303 "before": False, 314 "before": False,
304 "after": True, 315 "after": True,
305 "fetch_balances": ["begin", "end"], 316 "fetch_balances_begin": {},
317 "fetch_balances_end": {
318 "checkpoint": "begin",
319 "log_tickers": True
320 },
306 "prepare_trades": { "only": "acquire", "available_balance_only": True }, 321 "prepare_trades": { "only": "acquire", "available_balance_only": True },
307 "prepare_orders": { "only": "acquire", "compute_value": "average" }, 322 "prepare_orders": { "only": "acquire", "compute_value": "average" },
308 "move_balances": {}, 323 "move_balances": {},
@@ -317,7 +332,12 @@ class Processor:
317 "number": 1, 332 "number": 1,
318 "before": True, 333 "before": True,
319 "after": False, 334 "after": False,
320 "fetch_balances": ["begin", "end"], 335 "fetch_balances_begin": {
336 "checkpoint": "end",
337 "log_tickers": True,
338 "add_portfolio": True
339 },
340 "fetch_balances_end": {},
321 "prepare_trades": { "repartition": { "base_currency": (1, "long") } }, 341 "prepare_trades": { "repartition": { "base_currency": (1, "long") } },
322 "prepare_orders": { "compute_value": "average" }, 342 "prepare_orders": { "compute_value": "average" },
323 "run_orders": {}, 343 "run_orders": {},
@@ -336,7 +356,11 @@ class Processor:
336 "number": 3, 356 "number": 3,
337 "before": False, 357 "before": False,
338 "after": True, 358 "after": True,
339 "fetch_balances": ["begin", "end"], 359 "fetch_balances_begin": {},
360 "fetch_balances_end": {
361 "checkpoint": "begin",
362 "log_tickers": True
363 },
340 "prepare_trades": { "available_balance_only": True }, 364 "prepare_trades": { "available_balance_only": True },
341 "prepare_orders": { "compute_value": "average" }, 365 "prepare_orders": { "compute_value": "average" },
342 "move_balances": {}, 366 "move_balances": {},
@@ -388,18 +412,18 @@ class Processor:
388 process_name = "process_{}__{}_{}".format(scenario_name, step["number"], step["name"]) 412 process_name = "process_{}__{}_{}".format(scenario_name, step["number"], step["name"])
389 self.market.report.log_stage("{}_begin".format(process_name)) 413 self.market.report.log_stage("{}_begin".format(process_name))
390 414
391 fetch_args = step.get("fetch_balances_args", {}) 415 if "fetch_balances_begin" in step:
392 if "begin" in step.get("fetch_balances", []):
393 self.market.balances.fetch_balances(tag="{}_begin".format(process_name), 416 self.market.balances.fetch_balances(tag="{}_begin".format(process_name),
394 log_tickers=True, **fetch_args) 417 **step["fetch_balances_begin"])
395 418
396 for action in self.ordered_actions: 419 for action in self.ordered_actions:
397 if action in step: 420 if action in step:
398 self.run_action(action, step[action], kwargs) 421 self.run_action(action, step[action], kwargs)
399 422
400 if "end" in step.get("fetch_balances", []): 423 if "fetch_balances_end" in step:
401 self.market.balances.fetch_balances(tag="{}_end".format(process_name), 424 self.market.balances.fetch_balances(tag="{}_end".format(process_name),
402 log_tickers=True, **fetch_args) 425 **step["fetch_balances_end"])
426
403 self.market.report.log_stage("{}_end".format(process_name)) 427 self.market.report.log_stage("{}_end".format(process_name))
404 428
405 def method_arguments(self, action): 429 def method_arguments(self, action):