# Other Order Types

## Order Amendments

### Margin Calculation for Amendments

The system calculates the marginal difference between the original and amended order.

```
Additional Margin Required = New Order Margin - Original Order Margin
```

Only positive differences require available margin.

#### Example - Size Increase Amendment
Given:
- Original Order: Sell 1 BTC at $50,000
- Amendment: Increase to 2 BTC
- Initial Margin Rate: 1%
- Maker Fee: 0.02%
- Taker Fee: 0.05%

```
Original Margin = (1 × $50,000 × 0.01) + Maker/Taker Fees = $500 + $35 = $535
New Margin = (2 × $50,000 × 0.01) + Maker/Taker Fees = $1,000 + $70 = $1,070
Additional Margin Required = $1,070 - $535 = $535
```

### Fee Structure Preservation

Amendments maintain the original order's fee structure for margin calculations.

#### Example - Hidden Order Amendment
Given:
- Original Hidden Order: Sell 1 BTC at $50,000
- Amendment: Increase to 1.5 BTC
- Hidden Maker Fee: 0.04%
- Taker Fee: 0.05%

```
Original Margin = $500 + (Hidden Maker Fee + Taker Fee) = $500 + $45 = $545
New Margin = $750 + (Hidden Maker Fee + Taker Fee) = $750 + $67.50 = $817.50
Additional Margin Required = $817.50 - $545 = $272.50
```

### Aggressing Amendments

When an amendment causes an order to aggress, margin is calculated using actual execution prices.

#### Example - Price Amendment Causing Aggression
Given:
- Original Order: Buy 1 BTC at $49,000
- Best Offer: $49,500 for 0.5 BTC, $50,000 for 1 BTC
- Amendment: Change price to $50,000
- Initial Margin Rate: 1%

```
Execution Prices:
0.5 BTC at $49,500
0.5 BTC at $50,000

New Margin = (0.5 × $49,500 × 0.01) + (0.5 × $50,000 × 0.01) + Taker Fees
```

## Post-Only Orders

Post-only orders use the standard resting order margin calculation.

## Reduce-Only Orders

Reduce-only orders are always accepted without margin requirements, as they can only decrease position size and risk.

### Key Characteristics

- No margin requirements
- Automatically accepted regardless of account balance
- Cannot increase position size in either direction
- Useful for risk management and position unwinding

#### Example - Reduce-Only Order
Given:
- Current Position: Long 5 BTC
- Account Balance: $0
- Available Margin: $0
- Reduce-Only Order: Sell 3 BTC at $50,000

```
Result: Order Accepted
Rationale: 
- Order can only reduce position from 5 BTC to 2 BTC
- No margin required as risk is being reduced
- Account balance irrelevant for acceptance
```

#### Example - Invalid Reduce-Only Order
Given:
- Current Position: Long 2 BTC
- Reduce-Only Order: Sell 3 BTC at $50,000

```
Result: Order Rejected
Rationale:
- Order would reverse position direction
- Violates reduce-only constraint
- Rejection occurs before margin check
```

## Market Orders

Market orders calculate margin based on effective execution prices across filled levels.

#### Example - Market Order Execution
Given:
- Market Buy Order: 2 BTC
- Order Book:
  ```
  Ask: 1 BTC at $50,000
       1 BTC at $50,500
  ```
- Initial Margin Rate: 1%

```
Margin for First BTC = 1 × $50,000 × 0.01 = $500
Margin for Second BTC = 1 × $50,500 × 0.01 = $505
Taker Fees = 2 × $50,250 × 0.0005 = $50.25

Total Margin Required = $500 + $505 + $50.25 = $1,055.25
```

## Triggered Orders

### Stop Orders and If-Touched Orders

Margin checks occur at trigger time for:
- Stop Orders
- Stop Limit Orders
- Market If Touched (MIT)
- Limit If Touched (LIT)

If margin is insufficient at trigger time, the order is canceled.

#### Example - Market If Touched Order
Given:
- Current Position: Long 1 BTC
- Market If Touched: Buy 2 BTC when price touches $48,000
- Initial Margin Rate: 1%
- Taker Fee: 0.05%
- Available Balance at Order Entry: $5,000
- Available Balance at Trigger: $500

```
At Trigger Time:
Required Margin = 2 × $48,000 × 0.01 = $960
Required Fees = 2 × $48,000 × 0.0005 = $48
Total Required = $1,008

Result: Order is canceled due to insufficient margin at trigger time
```

This example demonstrates that:
- No margin is reserved at order placement
- Full margin check occurs at trigger
- Order cancels if account lacks sufficient margin when triggered
