Skip to content

SO: unwanted orders price shifts due to incrementing price #575

Description

@bitphage

From bitshares/python-bitshares#227 (comment)

In dexbot we're incrementing prices to place staggered orders, this is a test which shows actual order price and initially calculated price are different:

        closer_order = worker.place_closer_order(asset, order, place_order=True)
    
        # Test for correct price
>       assert closer_order['price'] == order['price'] * (1 + worker.increment)
E       assert 99.01980296969697 == 99.0099009894
E         -99.01980296969697
E         +99.0099009894

So, we should switch from incrementing prices to incrementing amount only (base or quote) to place staggered orders, and as a consequence we need a method to place orders specifying both base and quote amounts (see the first message)

Another example: test setup failed to place initial orders to close the target spread, see that 1% error:

_______________________________________________________ test_maintain_strategy[mountain-config0] ________________________________________________________

initial_allocation = {}

    def test_maintain_strategy(initial_allocation):
        """ Check if intial orders placement is correct
        """
        worker = initial_allocation
    
        # Check target spread is reached
>       assert worker.actual_spread < worker.target_spread + worker.increment
E       assert 0.030186976828429968 < (0.02 + 0.01)
E        +  where 0.030186976828429968 = {}.actual_spread
E        +  and   0.02 = {}.target_spread
E        +  and   0.01 = {}.increment

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions