# Trade (Futures)

## Place Order

{% hint style="info" %}
Please refer to the official Bitget API Docs for the required parameters.

<https://bitgetlimited.github.io/apidoc/en/mix/#place-order>
{% endhint %}

#### Function name:

```javascript
placeOrderFutures(options)
```

#### Usage:&#x20;

```javascript
import { createExchange } from "./exchanges/exchange.js";

  let myBitgetAccount = createExchange({
      exchange: "bitget",
      authenticate: "true",
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "bitget",
      marginType: "usdt",
      testnet: "false"
});

async function placeOrderFutures(exchange, options) {
    try {
        let result = await exchange.placeOrderFutures(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

const result = await placeOrderFutures(myBitgetAccount, 
    {
        symbol: "BTCUSDT_UMCBL",
        marginCoin: "USDT",
        size: "0.01",
        side: "open_long",
        orderType: "market"
    });
```

## Batch Order

{% hint style="info" %}
Please refer to the official Bitget API Docs for the required parameters.

<https://bitgetlimited.github.io/apidoc/en/mix/#batch-order>
{% endhint %}

#### Function name:

```javascript
placeBatchOrderFutures(options)
```

#### Usage:&#x20;

```javascript
import { createExchange } from "./exchanges/exchange.js";

  let myBitgetAccount = createExchange({
      exchange: "bitget",
      authenticate: "true",
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "bitget",
      marginType: "usdt"
});

async function placeBatchOrderFutures(exchange, options) {
    try {
        let result = await exchange.placeBatchOrderFutures(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

const result = await placeBatchOrderFutures(myBitgetAccount, 
    {
        symbol: "BTCUSDT_UMCBL",
        marginCoin: "USDT",
        orderDataList:[
      {
          size: "0.003",
          side: "open_long",
          orderType: "limit",
          price: "10000"

      },
      {
          size: "0.004",
          side: "open_long",
          orderType: "limit",
          price: "10000"
      }]
    });
```

## Cancel Order

{% hint style="info" %}
Please refer to the official Bitget API Docs for the required parameters.

<https://bitgetlimited.github.io/apidoc/en/mix/#cancel-order>
{% endhint %}

#### Function name:

```javascript
cancelOrderFutures(options)
```

#### Usage:&#x20;

```javascript
import { createExchange } from "./exchanges/exchange.js";

  let myBitgetAccount = createExchange({
      exchange: "bitget",
      authenticate: "true",
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "bitget",
      marginType: "usdt"
});

async function cancelOrderFutures(exchange, options) {
    try {
        let result = await exchange.cancelOrderFutures(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

const result = await cancelOrderFutures(myBitgetAccount
    {
        symbol: "BTCUSDT_UMCBL",
        marginCoin: "USDT",
        orderId: "1009818807293329409"
    });
```

## Batch Cancel Order

{% hint style="info" %}
Please refer to the official Bitget API Docs for the required parameters.

<https://bitgetlimited.github.io/apidoc/en/mix/#batch-cancel-order>
{% endhint %}

#### Function name:

```javascript
cancelBatchOrdersFutures(options)
```

#### Usage:&#x20;

<pre class="language-javascript"><code class="lang-javascript">import { createExchange } from "./exchanges/exchange.js";

  let myBitgetAccount = createExchange({
      exchange: "bitget",
      authenticate: "true",
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "bitget",
      marginType: "usdt"
});

async function cancelBatchOrdersFutures(exchange, options) {
    try {
        let result = await exchange.cancelBatchOrdersFutures(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

const result = await cancelBatchOrdersFutures(myBitgetAccount,
<strong>    {
</strong>      symbol: "BTCUSDT_UMCBL",
      marginCoin: "USDT",
      orderIds:["1011271303899529219", "1011271303903723526"]
    });
</code></pre>

## Cancel All Order

{% hint style="info" %}
Please refer to the official Bitget API Docs for the required parameters.

<https://bitgetlimited.github.io/apidoc/en/mix/#cancel-all-order>
{% endhint %}

#### Function name:

```javascript
cancelAllOrdersFutures(options)
```

#### Usage:&#x20;

```javascript
import { createExchange } from "./exchanges/exchange.js";

  let myBitgetAccount = createExchange({
      exchange: "bitget",
      authenticate: "true",
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "bitget",
      marginType: "usdt"
});

async function cancelAllOrdersFutures(exchange, options) {
    try {
        let result = await exchange.cancelAllOrdersFutures(optionsoptions);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

const result = await cancelAllOrdersFutures(myBitgetAccount,
    {
        productType: "umcbl",
        marginCoin: "USDT"
    });
```

## Get Open Order

{% hint style="info" %}
Please refer to the official Bitget API Docs for the required parameters.

<https://bitgetlimited.github.io/apidoc/en/mix/#get-open-order>
{% endhint %}

#### Function name:

```javascript
getOpenOrdersFutures(options)
```

#### Usage:&#x20;

```javascript
import { createExchange } from "./exchanges/exchange.js";

  let myBitgetAccount = createExchange({
      exchange: "bitget",
      authenticate: "true",
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "bitget",
      marginType: "usdt"
});

async function getOpenOrdersFutures(exchange, options) {
    try {
        let result = await exchange.getOpenOrdersFutures(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

const result = await getOpenOrdersFutures(myBitgetAccount, 
    {
        symbol: "BTCUSDT_UMCBL"
    });
```

## Get All Open Order

{% hint style="info" %}
Please refer to the official Bitget API Docs for the required parameters.

<https://bitgetlimited.github.io/apidoc/en/mix/#get-all-open-order>
{% endhint %}

#### Function name:

```javascript
getAllOpenOrdersFutures()
```

#### Usage:&#x20;

```javascript
import { createExchange } from "./exchanges/exchange.js";

  let myBitgetAccount = createExchange({
      exchange: "bitget",
      authenticate: "true",
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "bitget",
      marginType: "usdt"
});

async function getAllOpenOrdersFutures(exchange, options) {
    try {
        let result = await exchange.getAllOpenOrdersFutures(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

const result = await getAllOpenOrdersFutures(myBitgetAccount,
    {
        productType: "umcbl",
        marginCoin: "USDT"
    });
```

## Get History Orders

{% hint style="info" %}
Please refer to the official Bitget API Docs for the required parameters.

<https://bitgetlimited.github.io/apidoc/en/mix/#get-history-orders>
{% endhint %}

#### Function name:

```javascript
getOrdersHistoryFutures(options)
```

#### Usage:&#x20;

<pre class="language-javascript"><code class="lang-javascript">import { createExchange } from "./exchanges/exchange.js";

  let myBitgetAccount = createExchange({
      exchange: "bitget",
      authenticate: "true",
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "bitget",
      marginType: "usdt"
});

<strong>async function getOrdersHistoryFutures(exchange, options) {
</strong>    try {
        let result = await exchange.getOrdersHistoryFutures(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

const result = await getOrdersHistoryFutures(myBitgetAccount,
    {
        symbol: "BTCUSDT_UMCBL",
        startTime: "1659403328000", 
        endTime: "1659410528000",
        pageSize: "20"
    });
</code></pre>

## Get ProductType History Orders

{% hint style="info" %}
Please refer to the official Bitget API Docs for the required parameters.

<https://bitgetlimited.github.io/apidoc/en/mix/#get-producttype-history-orders>
{% endhint %}

#### Function name:

```javascript
getOrdersHistoryByProductTypeFutures(options)
```

#### Usage:&#x20;

```javascript
import { createExchange } from "./exchanges/exchange.js";

  let myBitgetAccount = createExchange({
      exchange: "bitget",
      authenticate: "true",
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "bitget",
      marginType: "usdt"
});

async function getOrdersHistoryByProductTypeFutures(exchange, options) {
    try {
        let result = await exchange.getOrdersHistoryByProductTypeFutures(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

const result = await getOrdersHistoryByProductTypeFutures(myBitgetAccount,
    {
        productType: "umcbl",
        startTime: "1659403328000", 
        endTime: "1659410528000",
        pageSize: "20"
    });
```

## Get Order Details

{% hint style="info" %}
Please refer to the official Bitget API Docs for the required parameters.

<https://bitgetlimited.github.io/apidoc/en/mix/#get-order-details>
{% endhint %}

#### Function name:

```javascript
getOrderDetailsFutures(options)
```

#### Usage:&#x20;

```javascript
import { createExchange } from "./exchanges/exchange.js";

  let myBitgetAccount = createExchange({
      exchange: "bitget",
      authenticate: "true",
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "bitget",
      marginType: "usdt"
});

async function getOrderDetailsFutures(exchange, options) {
    try {
        let result = await exchange.getOrderDetailsFutures(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

const result = await getOrderDetailsFutures(myBitgetAccount, 
    {
        symbol: "BTCUSDT_UMCBL",
        orderId: "12345"
    });
```

## Get Order Fill Details

{% hint style="info" %}
Please refer to the official Bitget API Docs for the required parameters.

<https://bitgetlimited.github.io/apidoc/en/mix/#get-order-fill-detail>
{% endhint %}

#### Function name:

```javascript
getOrderFillDetailFutures(options)
```

#### Usage:&#x20;

```javascript
import { createExchange } from "./exchanges/exchange.js";

  let myBitgetAccount = createExchange({
      exchange: "bitget",
      authenticate: "true",
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "bitget",
      marginType: "usdt"
});

async function getOrderFillDetailFutures(exchange, options) {
    try {
        let result = await exchange.getOrderFillDetailFutures(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

const result = await getOrderFillDetailFutures(myBitgetAccount,
    {
      symbol: "BTCUSDT_UMCBL",
      startTime: "1659403328000", 
      orderId: "1010182528922435618"
  });
```

## Get ProductType Order Fill Details

{% hint style="info" %}
Please refer to the official Bitget API Docs for the required parameters.

<https://bitgetlimited.github.io/apidoc/en/mix/#get-producttype-order-fill-detail>
{% endhint %}

#### Function name:

```javascript
getProductTypeOrderFillDetailFutures(options)
```

#### Usage:&#x20;

{% hint style="warning" %}
API requires either endTime and startTime or lastEndId as parameters
{% endhint %}

```javascript
import { createExchange } from "./exchanges/exchange.js";

  let myBitgetAccount = createExchange({
      exchange: "bitget",
      authenticate: "true",
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "bitget",
      marginType: "usdt"
});

async function getProductTypeOrderFillDetailFutures(exchange, options) {
    try {
        let result = await exchange.getProductTypeOrderFillDetailFutures(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

const result = await getProductTypeOrderFillDetailFutures(myBitgetAccount,
    {
        productType: "umcbl",
        startTime: "0",
        endTime: "1676832767000"
    });
```

## Place Plan Order

{% hint style="info" %}
Please refer to the official Bitget API Docs for the required parameters.

<https://bitgetlimited.github.io/apidoc/en/mix/#place-plan-order>
{% endhint %}

#### Function name:

```javascript
placePlanOrderFutures(options)
```

#### Usage:&#x20;

```javascript
import { createExchange } from "./exchanges/exchange.js";

  let myBitgetAccount = createExchange({
      exchange: "bitget",
      authenticate: "true",
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "bitget",
      marginType: "usdt"
});

async function placePlanOrderFutures(exchange, options) {
    try {
        let result = await exchange.placePlanOrderFutures(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

const result = await placePlanOrderFutures(myBitgetAccount, 
    {
        symbol: "BTCUSDT_UMCBL",
        marginCoin: "USDT",
        size: "0.05",
        side: "open_long",
        orderType: "market",
        triggerPrice: "22000",
        triggerType: "market_price"
    });
```

## Modify Plan Order

{% hint style="info" %}
Please refer to the official Bitget API Docs for the required parameters.

<https://bitgetlimited.github.io/apidoc/en/mix/#modify-plan-order>
{% endhint %}

#### Function name:

```javascript
modifyPlanOrderFutures(options)
```

#### Usage:&#x20;

```javascript
import { createExchange } from "./exchanges/exchange.js";

  let myBitgetAccount = createExchange({
      exchange: "bitget",
      authenticate: "true",
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "bitget",
      marginType: "usdt"
});

async function modifyPlanOrderFutures(exchange, options) {
    try {
        let result = await exchange.modifyPlanOrderFutures(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

const result = await modifyPlanOrderFutures(myBitgetAccount,
    {
        symbol: "BTCUSDT_UMCBL",
        marginCoin: "USDT",
        orderId: "12345",
        side: "open_long",
        orderType: "market",
        triggerPrice: "21000",
        triggerType: "market_price"
    });
```

## Modify Plan Order TPSL

{% hint style="info" %}
Please refer to the official Bitget API Docs for the required parameters.

<https://bitgetlimited.github.io/apidoc/en/mix/#modify-plan-order-tpsl>
{% endhint %}

#### Function name:

```javascript
modifyPlanOrderTpslFutures(options)
```

#### Usage:&#x20;

```javascript
import { createExchange } from "./exchanges/exchange.js";

  let myBitgetAccount = createExchange({
      exchange: "bitget",
      authenticate: "true",
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "bitget",
      marginType: "usdt"
});

async function modifyPlanOrderTpslFutures(exchange, options) {
    try {
        let result = await exchange.modifyPlanOrderTpslFutures(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

const result = await modifyPlanOrderTpslFutures(myBitgetAccount,
    {
        symbol: "BTCUSDT_UMCBL",
        marginCoin: "USDT",
        orderId: "12345"
    });
```

## Place Stop Order

{% hint style="info" %}
Please refer to the official Bitget API Docs for the required parameters.

<https://bitgetlimited.github.io/apidoc/en/mix/#place-stop-order>
{% endhint %}

#### Function name:

```javascript
placeStopOrderFutures(options)
```

#### Usage:&#x20;

```javascript
import { createExchange } from "./exchanges/exchange.js";

  let myBitgetAccount = createExchange({
      exchange: "bitget",
      authenticate: "true",
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "bitget",
      marginType: "usdt"
});

async function placeStopOrderFutures(exchange, options) {
    try {
        let result = await exchange.placeStopOrderFutures(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

const result = await placeStopOrderFutures(myBitgetAccount,
    {
        symbol: "BTCUSDT_UMCBL",
        marginCoin: "USDT",
        size: "0.001",
        planType: "profit_plan",
        triggerPrice:"23555.5",
        holdSide:"long"
    });  
```

## Place Trailing Stop Order

{% hint style="info" %}
Please refer to the official Bitget API Docs for the required parameters.

<https://bitgetlimited.github.io/apidoc/en/mix/#place-trailing-stop-order>
{% endhint %}

{% hint style="warning" %}
This function is under construction
{% endhint %}

#### Function name:

```javascript
placeTrailingStopOrderFutures(options)
```

#### Usage:&#x20;

```javascript
import { createExchange } from "./exchanges/exchange.js";

  let myBitgetAccount = createExchange({
      exchange: "bitget",
      authenticate: "true",
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "bitget",
      marginType: "usdt"
});

async function placeTrailingStopOrderFutures(exchange, options) {
    try {
        let result = await exchange.placeTrailingStopOrderFutures(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

const result = await placeTrailingStopOrderFutures(myBitgetAccount,
    {
      symbol: "BTCUSDT_UMCBL",
      marginCoin: "USDT",
      triggerPrice:"22000",
      holdSide: "long",
      rangeRate: "1"
  });  
```

## Place Position TPSL

{% hint style="warning" %}
This Function is currently under construction
{% endhint %}

{% hint style="info" %}
Please refer to the official Bitget API Docs for the required parameters.

<https://bitgetlimited.github.io/apidoc/en/mix/#place-position-tpsl>
{% endhint %}

#### Function name:

```javascript
placePositionTpslFutures(options)
```

#### Usage:&#x20;

```javascript
import { createExchange } from "./exchanges/exchange.js";

  let myBitgetAccount = createExchange({
      exchange: "bitget",
      authenticate: "true",
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "bitget",
      marginType: "usdt"
});

async function placePositionTpslFutures(exchange, options) {
    try {
        let result = await exchange.placePositionTpslFutures(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

const result = await placePositionTpslFutures(myBitgetAccount,
    {
        symbol: "BTCUSDT_UMCBL",
        marginCoin: "USDT",
        planType: "pos_profit",
        triggerPrice:"24720",
        holdSide:"long"
    });
```

## Modify Stop Order

{% hint style="info" %}
Please refer to the official Bitget API Docs for the required parameters.

<https://bitgetlimited.github.io/apidoc/en/mix/#modify-stop-order>
{% endhint %}

#### Function name:

```javascript
modifyStopOrderFutures(options)
```

#### Usage:&#x20;

```javascript
import { createExchange } from "./exchanges/exchange.js";

  let myBitgetAccount = createExchange({
      exchange: "bitget",
      authenticate: "true",
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "bitget",
      marginType: "usdt"
});

async function modifyStopOrderFutures(exchange, options) {
    try {
        let result = await exchange.modifyStopOrderFutures(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

const result = await modifyStopOrderFutures(myBitgetAccount,
    {
        symbol: "BTCUSDT_UMCBL",
        marginCoin: "USDT",
        orderId: "1010239532700766209",
        planType: "pos_profit",
        triggerPrice:"24620",
        holdSide:"long"
    });  
```

## Cancel Plan Order TPSL

{% hint style="info" %}
Please refer to the official Bitget API Docs for the required parameters.

<https://bitgetlimited.github.io/apidoc/en/mix/#cancel-plan-order-tpsl>
{% endhint %}

#### Function name:

```javascript
cancelPlanOrderTpslFutures(options)
```

#### Usage:&#x20;

```javascript
import { createExchange } from "./exchanges/exchange.js";

  let myBitgetAccount = createExchange({
      exchange: "bitget",
      authenticate: "true",
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "bitget",
      marginType: "usdt"
});

async function cancelPlanOrderTpslFutures(exchange, options) {
    try {
        let result = await exchange.cancelPlanOrderTpslFutures(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

const result = await cancelPlanOrderTpslFutures(myBitgetAccount,
    {
        symbol: "BTCUSDT_UMCBL",
        marginCoin: "USDT",
        orderId: "1010239532700766209",
        planType: "pos_profit"
        
    });  
```

## Cancel All Trigger Order TPSL

{% hint style="info" %}
Please refer to the official Bitget API Docs for the required parameters.

<https://bitgetlimited.github.io/apidoc/en/mix/#cancel-all-trigger-order-tpsl>
{% endhint %}

#### Function name:

```javascript
cancelAllTriggerOrdersTpslFutures(options)
```

#### Usage:&#x20;

```javascript
import { createExchange } from "./exchanges/exchange.js";

  let myBitgetAccount = createExchange({
      exchange: "bitget",
      authenticate: "true",
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "bitget",
      marginType: "usdt"
});

async function cancelAllTriggerOrdersTpslFutures(exchange, options) {
    try {
        let result = await exchange.cancelAllTriggerOrdersTpslFutures(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

const result = await cancelAllTriggerOrdersTpslFutures(myBitgetAccount,
    {
        productType: "umcbl",
        planType: "pos_profit"
        
    });  
```

## Get Plan Order TPSL List

{% hint style="info" %}
Please refer to the official Bitget API Docs for the required parameters.

<https://bitgetlimited.github.io/apidoc/en/mix/#get-plan-order-tpsl-list>
{% endhint %}

#### Function name:

```javascript
getPlanOrderListTpslFutures(options)
```

#### Usage:&#x20;

```javascript
import { createExchange } from "./exchanges/exchange.js";

  let myBitgetAccount = createExchange({
      exchange: "bitget",
      authenticate: "true",
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "bitget",
      marginType: "usdt"
});

async function getPlanOrderListTpslFutures(exchange, options) {
    try {
        let result = await exchange.getPlanOrderListTpslFutures(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

const result = await getPlanOrderListTpslFutures(myBitgetAccount,
    {
        symbol: "BTCUSDT_UMCBL"
    });
```

## Get History Plan Orders TPSL

{% hint style="info" %}
Please refer to the official Bitget API Docs for the required parameters.

<https://bitgetlimited.github.io/apidoc/en/mix/#get-history-plan-orders-tpsl>
{% endhint %}

#### Function name:

```javascript
getHistoryPlanOrdersTpslFutures(options)
```

#### Usage:&#x20;

```javascript
import { createExchange } from "./exchanges/exchange.js";

  let myBitgetAccount = createExchange({
      exchange: "bitget",
      authenticate: "true",
      key: "myKeys",
      secret: "mySecret",
      passphrase: "myPassphrase",
      label: "bitget",
      marginType: "usdt"
});

async function getHistoryPlanOrdersTpslFutures(exchange, options) {
    try {
        let result = await exchange.getHistoryPlanOrdersTpslFutures(options);
        console.log(result);
    } catch (error) {
        console.log(error.message);
    }
}

const result = await getHistoryPlanOrdersTpslFutures(myBitgetAccount,
    {
        symbol: "BTCUSDT_UMCBL",
        startTime: "1659403328000", 
        endTime: "1659410528000",
        pageSize: "20"
    });
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.compendium.finance/pendax/using-pendax-sdk/bitget-functions/trade-futures.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
