<h1>Trade Testing</h1>

---

<h2>Create Request</h2>

- URL

```
http://localhost:5100/api/trade
```

- Params

|     |                          |                          |
| --- | ------------------------ | ------------------------ |
| id  | 637d9399310737444f12798f | Trade Account Id         |
| key | 179hgolat37c74           | Trade Account Unique Key |

- Headers

|      |                        |
| ---- | ---------------------- |
| Host | live.karbonsignals.com |
| ---- | ---------------------- |

- Body

```
BTCUSDTPERP long buy a481337a63ded80
```

---

Test Steps

Pre test steps

    1. clear temp_trades table
    2. clear logs table
    3. clear trade_signals table
    4. clear trades table or change trade status to 2
    5. check bybit for active trades & close them

- check trading account with id & key

  - perform pre test steps
  - Send create request with invalid id & key params

- check 15 seconds trade signal validation

  - perform pre test steps
  - Send create request & once it finishes send another request within 15 secs
  - Check db logs

- Open Trade

      - disable all trades
      		- perform pre test steps
      		- change trade_type to 4 in system_settings collection
      		- send long buy/ short sell create request
      		- check db logs

      - disable long trades
      		- perform pre test steps
      		- change trade_type to 3 in system_settings collection
      		- send long buy create request
      		- check db logs

      - disable short trades
      		- perform pre test steps
      		- change trade_type to 2 in system_settings collection
      		- send short sell create request
      		- check db logs

      - duplicate active trade (local db check)
      		- perform pre test steps
      		- send long buy create request
      		- check if order was created successfully
      		- perform pre test steps ( skip 4 & 5 )
      		-  send long buy create request
      		- check db logs

      - duplicate active trade (bybit check)
      		- perform pre test steps
      		- send long buy create request
      		- check if order was created successfully
      		- perform pre test steps ( skip 5 )
      		-  send long buy create request
      		- check db logs

      - Overflow trade
      		- create overflow trading account with diff bybit creds
      		- create trade account actions
      		- perform pre test steps
      		- send long buy create request
      		- check if order was created successfully
      		- perform pre test steps ( skip 5 )
      		- send long buy create request
      		- check db logs & bybit

      - !stuck trades
      		- exceed max long running trades
      			- perform pre test steps
      			- change long_limit to 0 in tradeAccount
      			- send long buy create request
      			- check db logs

      		- exceed max short running trades
      			- perform pre test steps
      			- change long_limit to 0 in tradeAccount
      			- send short sell create request
      			- check db logs

      		- exceed max running trades
      			- perform pre test steps
      			- change no_of_trades to 0 in tradeAccount
      			- send long buy / short sell create request
      			- check db logs

      - stuck trades
      		- exceed max long running trades
      			- comment trade view length check or use a short trade with next step
                - duplicate 5 tradeActions with trade_id
                - change long_limit to 0 in tradeAccount
                - perform pre test steps (skip 4)
                - send long buy create request
                - check db logs

      		- exceed max short running trades
      			- comment trade view length check or use long trade with next step
                - duplicate 5 tradeActions with trade_id
                - change short_limit to 0 in tradeAccount
                - perform pre test steps (skip 4)
                - send short sell  create request
                - check db logs

      		- exceed no_of_trades_when_stuck
      			- comment trade view length check or use opposite side trade
                - duplicate 5 tradeActions with trade_id
                - change no_of_trades_when_stuck to 0 in tradeAccount
                - perform pre test steps (skip 4)
                - send  long buy / short sell  create request
                - check db logs

- Close Trade

      - perform pre test steps
      - send  long buy  create request
      - change auto_money_management to 0 in tradeAccount
      - send  flat sell  create request with same tradeOpenId
      - check db logs
      - check bybit for closed trade
