def create_kraken_trade( tradeable_pairs: List[str], base_asset: Optional[str] = None, quote_asset: Optional[str] = None, time: Optional[Timestamp] = None, start_ts: Optional[Timestamp] = None, end_ts: Optional[Timestamp] = None, trade_type: Optional[TradeType] = None, rate: Optional[FVal] = None, amount: Optional[FVal] = None, fee: Optional[FVal] = None, ) -> Dict[str, str]: trade = {} trade['ordertxid'] = str(generate_random_kraken_id()) trade['postxid'] = str(generate_random_kraken_id()) if base_asset is None or quote_asset is None: pair = random.choice(tradeable_pairs) else: pair = WORLD_TO_KRAKEN[base_asset] + WORLD_TO_KRAKEN[quote_asset] trade['pair'] = pair if time: trade['time'] = str(time) + '.0000' else: trade['time'] = str(make_random_timestamp(start=start_ts, end=end_ts)) + '.0000' if trade_type: trade['type'] = str(trade_type) else: trade['type'] = random.choice(('buy', 'sell')) trade['ordertype'] = random.choice(('limit', 'market')) if rate: price = rate else: price = make_random_positive_fval() trade['price'] = str(price) if amount: volume = amount else: volume = make_random_positive_fval() trade['vol'] = str(volume) if fee: trade['fee'] = str(fee) else: trade['fee'] = str(make_random_positive_fval(max_num=2)) trade['fee'] = str(make_random_positive_fval(max_num=2)) trade['cost'] = str(price * volume) trade['margin'] = '0.0' trade['misc'] = '' return trade
def create_kraken_trade( tradeable_pairs: List[str], pair: Optional[str] = None, time: Optional[Timestamp] = None, start_ts: Optional[Timestamp] = None, end_ts: Optional[Timestamp] = None, trade_type: Optional[str] = None, rate: Optional[FVal] = None, amount: Optional[FVal] = None, fee: Optional[FVal] = None, ) -> Dict[str, str]: trade = {} trade['ordertxid'] = str(generate_random_kraken_id()) trade['postxid'] = str(generate_random_kraken_id()) if pair: trade['pair'] = world_to_kraken_pair(tradeable_pairs=tradeable_pairs, pair=pair) else: trade['pair'] = random.choice(tradeable_pairs) if time: trade['time'] = str(time) + '.0000' else: trade['time'] = str(make_random_timestamp(start=start_ts, end=end_ts)) + '.0000' if trade_type: trade['type'] = trade_type else: trade['type'] = random.choice(('buy', 'sell')) trade['ordertype'] = random.choice(('limit', 'market')) if rate: price = rate else: price = make_random_positive_fval() trade['price'] = str(price) if amount: volume = amount else: volume = make_random_positive_fval() trade['vol'] = str(volume) if fee: trade['fee'] = str(fee) else: trade['fee'] = str(make_random_positive_fval(max_num=2)) trade['fee'] = str(make_random_positive_fval(max_num=2)) trade['cost'] = str(price * volume) trade['margin'] = '0.0' trade['misc'] = '' return trade
def generate_random_kraken_ledger_data( start_ts: Timestamp, end_ts: Timestamp, ledger_type: str, ) -> Dict[str, str]: ledger = {} ledger['refid'] = str(generate_random_kraken_id()) ledger['time'] = str(make_random_timestamp(start=start_ts, end=end_ts)) + '.0000' ledger['type'] = ledger_type ledger['aclass'] = 'currency' ledger['asset'] = get_random_kraken_asset() ledger['amount'] = str(make_random_positive_fval()) ledger['balance'] = str(make_random_positive_fval()) ledger['fee'] = str(make_random_positive_fval(max_num=2)) return ledger
def generate_random_kraken_balance_response(): kraken_assets = set(KRAKEN_TO_WORLD.keys()) - set(KRAKEN_DELISTED) number_of_assets = random.randrange(0, len(kraken_assets)) chosen_assets = random.sample(kraken_assets, number_of_assets) balances = {} for asset in chosen_assets: balances[asset] = make_random_positive_fval() return balances
def generate_random_kraken_trade_data( tradeable_pairs: List[str], start_ts: Timestamp, end_ts: Timestamp, ) -> Dict[str, str]: trade = {} trade['ordertxid'] = str(generate_random_kraken_id()) trade['postxid'] = str(generate_random_kraken_id()) trade['pair'] = random.choice(tradeable_pairs) trade['time'] = str(make_random_timestamp(start=start_ts, end=end_ts)) + '.0000' trade['type'] = random.choice(('buy', 'sell')) trade['ordertype'] = random.choice(('limit', 'market')) price = make_random_positive_fval() volume = make_random_positive_fval() trade['price'] = str(price) trade['vol'] = str(volume) trade['fee'] = str(make_random_positive_fval(max_num=2)) trade['cost'] = str(price * volume) trade['margin'] = '0.0' trade['misc'] = '' return trade