Added --skip-first command line argument
All checks were successful
Test Python / Test (push) Successful in 27s
All checks were successful
Test Python / Test (push) Successful in 27s
This commit is contained in:
parent
1d7327fe6a
commit
c8ce383751
|
@ -195,7 +195,7 @@ def sample_from_range(rng: random.Random, rang: tuple[Any, Any]) -> Any:
|
||||||
ROUND_TO_WHOLE = Decimal('1')
|
ROUND_TO_WHOLE = Decimal('1')
|
||||||
|
|
||||||
|
|
||||||
def run_auto_sell(config: AutoSellConfig) -> AutoSellRunResults:
|
def run_auto_sell(config: AutoSellConfig, skip_first:int=0) -> AutoSellRunResults:
|
||||||
"""Executes the sell-off.
|
"""Executes the sell-off.
|
||||||
|
|
||||||
Sell-offs are performed in rounds of sizes and with intervals randomly
|
Sell-offs are performed in rounds of sizes and with intervals randomly
|
||||||
|
@ -214,7 +214,10 @@ def run_auto_sell(config: AutoSellConfig) -> AutoSellRunResults:
|
||||||
)
|
)
|
||||||
logger.info('Currently own %s %s', input_amount_available, config.input_asset.raw_short_name())
|
logger.info('Currently own %s %s', input_amount_available, config.input_asset.raw_short_name())
|
||||||
|
|
||||||
if input_amount_available > 0:
|
if skip_first > 0:
|
||||||
|
skip_first -= 1
|
||||||
|
logger.info('Skipping this round')
|
||||||
|
elif input_amount_available > 0:
|
||||||
amount_to_sell = sample_from_range(rng, config.input_amount_range)
|
amount_to_sell = sample_from_range(rng, config.input_amount_range)
|
||||||
amount_to_sell = min(input_amount_available, amount_to_sell)
|
amount_to_sell = min(input_amount_available, amount_to_sell)
|
||||||
amount_to_sell = amount_to_sell.quantize(ROUND_TO_WHOLE, rounding=ROUND_DOWN)
|
amount_to_sell = amount_to_sell.quantize(ROUND_TO_WHOLE, rounding=ROUND_DOWN)
|
||||||
|
|
|
@ -12,6 +12,7 @@ import fin_depo
|
||||||
|
|
||||||
from . import (
|
from . import (
|
||||||
AutoSellConfig,
|
AutoSellConfig,
|
||||||
|
log_estimates,
|
||||||
log_results,
|
log_results,
|
||||||
order_csv,
|
order_csv,
|
||||||
run_auto_sell,
|
run_auto_sell,
|
||||||
|
@ -97,6 +98,7 @@ def load_config(config_path: Path) -> AutoSellConfig:
|
||||||
def parse_args():
|
def parse_args():
|
||||||
parser = argparse.ArgumentParser('crypto_seller', description=CLI_DESCRIPTION)
|
parser = argparse.ArgumentParser('crypto_seller', description=CLI_DESCRIPTION)
|
||||||
parser.add_argument('--config', type=Path, dest='config_file', required=True)
|
parser.add_argument('--config', type=Path, dest='config_file', required=True)
|
||||||
|
parser.add_argument('--skip-first', action='store_true', dest='skip_first')
|
||||||
return parser.parse_args()
|
return parser.parse_args()
|
||||||
|
|
||||||
|
|
||||||
|
@ -107,11 +109,16 @@ def main():
|
||||||
logger.info('Initializing crypto_seller')
|
logger.info('Initializing crypto_seller')
|
||||||
args = parse_args()
|
args = parse_args()
|
||||||
|
|
||||||
|
# Load config
|
||||||
auto_sell_config = load_config(args.config_file)
|
auto_sell_config = load_config(args.config_file)
|
||||||
|
|
||||||
|
# Display estimates
|
||||||
log_estimates(auto_sell_config)
|
log_estimates(auto_sell_config)
|
||||||
|
|
||||||
results = run_auto_sell(auto_sell_config)
|
# Run auto sell
|
||||||
|
results = run_auto_sell(auto_sell_config, skip_first=args.skip_first and 1 or 0)
|
||||||
|
|
||||||
|
# Display results
|
||||||
logging.info('Sell-offs complete')
|
logging.info('Sell-offs complete')
|
||||||
log_results(results)
|
log_results(results)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user