diff options
Diffstat (limited to 'market.py')
-rw-r--r-- | market.py | 54 |
1 files changed, 39 insertions, 15 deletions
@@ -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): |