Skip to content

[UX, Sim, Trader] DRY violations in specifying exchange #806

@trentmc

Description

@trentmc

The issue

Here's a snippet from ppss.yaml:

trader_ss:
  feed: binance BTC/USDT c 5m
  sim_only:
    buy_amt: 1000 USD # buy this amount in each epoch
    fee_percent: 0.0 # simulated % fee
    init_holdings:
      - 100000 USDT
      - 2 BTC
  bot_only:
    min_buffer: 30 # in s. only trade if there's > this time left
    max_tries: 10 # max no. attempts to process a feed
    position_size: 3 # buy/sell this amount in each epoch
  exchange_only:
    timeout: 30000
    options:
      createMarketBuyOrderRequiresPrice": False
      defaultType: spot

sim_ss: # sim only
  do_plot: True
  log_dir: logs
  final_img_filebase: final_img # for name log_dir/{final_img_filebase}_{NR}.png
  test_n: 5000 # number of epochs to simulate
  tradetype: histmock # histmock | livemock | livereal
  exchange_only:
    timeout: 30000
    options:
      createMarketBuyOrderRequiresPrice": False
      defaultType: spot

The problem: exchange_only and its sub-values are in two places.

This gets reflected further downstream too.

This is a DRY violation. And, it's annoying from a UX perspective too: the user should really only have to change one place.

Candidate solutions

  1. Create a new module ExchangeSS that has exchange_only and all the info below that. Then, both Trader and Simulator see this
  2. Only have the info in TraderSS. Then, SimulatorSS also uses the info

TODO

  • Quick implementation experiment trying cand (1): will it be clean?
  • If yes to ^, build (1). Else build (2)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions