Add first account cumsize test; known to fail Bo
							parent
							
								
									494b3faa9b
								
							
						
					
					
						commit
						803f4a6354
					
				
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| 
						 | 
				
			
			@ -8,7 +8,15 @@
 | 
			
		|||
from pathlib import Path
 | 
			
		||||
 | 
			
		||||
from piker import config
 | 
			
		||||
from piker.accounting import load_account
 | 
			
		||||
from piker.accounting import (
 | 
			
		||||
    Account,
 | 
			
		||||
    calc,
 | 
			
		||||
    Position,
 | 
			
		||||
    TransactionLedger,
 | 
			
		||||
    open_trade_ledger,
 | 
			
		||||
    load_account,
 | 
			
		||||
    load_account_from_ledger,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def test_root_conf_networking_section(
 | 
			
		||||
| 
						 | 
				
			
			@ -34,3 +42,53 @@ def test_account_file_default_empty(
 | 
			
		|||
    assert not conf
 | 
			
		||||
    assert path.parent.is_dir()
 | 
			
		||||
    assert path.parent.name == 'accounting'
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def test_paper_ledger_position_calcs():
 | 
			
		||||
    broker: str = 'binance'
 | 
			
		||||
    acnt_name: str = 'paper'
 | 
			
		||||
 | 
			
		||||
    accounts_path: Path = config.repodir() / 'tests' / '_inputs'
 | 
			
		||||
 | 
			
		||||
    ldr: TransactionLedger
 | 
			
		||||
    with (
 | 
			
		||||
        open_trade_ledger(
 | 
			
		||||
            broker,
 | 
			
		||||
            acnt_name,
 | 
			
		||||
            allow_from_sync_code=True,
 | 
			
		||||
 | 
			
		||||
            _fp=accounts_path,
 | 
			
		||||
        ) as ldr,
 | 
			
		||||
 | 
			
		||||
        # open `polars` acnt dfs Bo
 | 
			
		||||
        calc.open_ledger_dfs(
 | 
			
		||||
            broker,
 | 
			
		||||
            acnt_name,
 | 
			
		||||
            ledger=ldr,
 | 
			
		||||
 | 
			
		||||
            _fp=accounts_path,
 | 
			
		||||
 | 
			
		||||
        ) as (dfs, ledger),
 | 
			
		||||
 | 
			
		||||
    ):
 | 
			
		||||
        acnt: Account = load_account_from_ledger(
 | 
			
		||||
            broker,
 | 
			
		||||
            acnt_name,
 | 
			
		||||
            ledger=ldr,
 | 
			
		||||
            _fp=accounts_path,
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        # do manual checks on expected pos calcs based on input
 | 
			
		||||
        # ledger B)
 | 
			
		||||
 | 
			
		||||
        # xrpusdt should have a net-zero size
 | 
			
		||||
        xrp: str = 'xrpusdt.spot.binance'
 | 
			
		||||
        pos: Position = acnt.pps[xrp]
 | 
			
		||||
 | 
			
		||||
        # XXX: turns out our old dict-style-processing
 | 
			
		||||
        # get's this wrong i think due to dt-sorting..
 | 
			
		||||
        # lcum: float = pos.cumsize
 | 
			
		||||
 | 
			
		||||
        df = dfs[xrp]
 | 
			
		||||
        assert df['cumsize'][-1] == 0
 | 
			
		||||
        assert pos.cumsize == 0
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue