code.vegaprotocol.io/vega@v0.79.0/core/integration/features/spot/orders/0014-ORDT-110.feature (about) 1 Feature: Spot market 2 3 Background: 4 Given time is updated to "2024-01-01T00:00:00Z" 5 6 Given the following network parameters are set: 7 | name | value | 8 | network.markPriceUpdateMaximumFrequency | 0s | 9 | market.value.windowLength | 1h | 10 11 Given the following assets are registered: 12 | id | decimal places | 13 | ETH | 2 | 14 | BTC | 2 | 15 16 Given the fees configuration named "fees-config-1": 17 | maker fee | infrastructure fee | 18 | 0.01 | 0.03 | 19 Given the log normal risk model named "lognormal-risk-model-1": 20 | risk aversion | tau | mu | r | sigma | 21 | 0.001 | 0.01 | 0 | 0.0 | 1.2 | 22 And the price monitoring named "price-monitoring-1": 23 | horizon | probability | auction extension | 24 | 360000 | 0.999 | 1 | 25 26 And the spot markets: 27 | id | name | base asset | quote asset | risk model | auction duration | fees | price monitoring | decimal places | position decimal places | sla params | 28 | BTC/ETH | BTC/ETH | BTC | ETH | lognormal-risk-model-1 | 1 | fees-config-1 | price-monitoring-1 | 2 | 2 | default-basic | 29 30 # setup accounts 31 Given the parties deposit on asset's general account the following amount: 32 | party | asset | amount | 33 | party1 | ETH | 10000 | 34 | party2 | ETH | 10000 | 35 | party4 | BTC | 100 | 36 | party5 | BTC | 100 | 37 And the average block duration is "1" 38 39 # Place some orders to get out of auction 40 And the parties place the following orders: 41 | party | market id | side | volume | price | resulting trades | type | tif | 42 | party1 | BTC/ETH | buy | 1 | 1000 | 0 | TYPE_LIMIT | TIF_GFA | 43 | party5 | BTC/ETH | sell | 1 | 1000 | 0 | TYPE_LIMIT | TIF_GTC | 44 45 And the opening auction period ends for market "BTC/ETH" 46 When the network moves ahead "1" blocks 47 Then the trading mode should be "TRADING_MODE_CONTINUOUS" for the market "BTC/ETH" 48 And the mark price should be "1000" for the market "BTC/ETH" 49 50 Scenario: Submit an aggressive iceberg order for size 100. There are multiple matching orders of size 20,30. 51 Ensure the orders are matched and filled in time priority of the orders. Ensure remaining volume on 52 the iceberg order is (100 - (20+30)) (0014-ORDT-110) 53 54 # Place the 3 passive orders to rest on the book 55 And the parties place the following orders: 56 | party | market id | side | volume | price | resulting trades | type | tif | reference | 57 | party4 | BTC/ETH | sell | 20 | 1000 | 0 | TYPE_LIMIT | TIF_GTC | sell1 | 58 | party5 | BTC/ETH | sell | 30 | 1000 | 0 | TYPE_LIMIT | TIF_GTC | sell2 | 59 60 # Place an aggressive iceberg order to match teh existing orders 61 When the parties place the following iceberg orders: 62 | party | market id | side | volume | price | resulting trades | type | tif | peak size | minimum visible size | reference | 63 | party1 | BTC/ETH | buy | 100 | 1000 | 2 | TYPE_LIMIT | TIF_GTC | 5 | 1 | iceberg1 | 64 65 Then the orders should have the following states: 66 | party | market id | side | price | remaining | volume | reference | status | 67 | party4 | BTC/ETH | sell | 1000 | 0 | 20 | sell1 | STATUS_FILLED | 68 | party5 | BTC/ETH | sell | 1000 | 0 | 30 | sell2 | STATUS_FILLED | 69 | party1 | BTC/ETH | buy | 1000 | 5 | 100 | iceberg1 | STATUS_ACTIVE | 70 71 # THe iceberg order has 50 volume left to fill, 5 visible and 45 hidden 72 Then the iceberg orders should have the following states: 73 | party | market id | side | visible volume | price | status | reserved volume | 74 | party1 | BTC/ETH | buy | 5 | 1000 | STATUS_ACTIVE | 45 | 75 76 Then the order book should have the following volumes for market "BTC/ETH": 77 | side | price | volume | 78 | buy | 1000 | 5 | 79 | sell | 1000 | 0 |