交易所特殊说明

  • 富途证券 支持富途牛牛实盘交易、模拟盘交易,需要下载FutuOpenD软件。 使用FutuOpenD接入模拟交易时,部分股票代码不支持,因此无法交易,但富途牛牛手机APP可以进行模拟交易。 在发明者量化平台配置交易所对象、运行FutuOpenD软件等操作,请参阅富途证券配置说明文档

    • 接口调用频率 对于GetOrderGetOrdersGetPositionsGetAccount函数,默认使用缓存数据,因此不限制调用频率。 当有新数据时,FutuOpenD会自动更新数据,缓存数据也会同步更新。

    调用exchange.IO("refresh", true)函数可以禁用缓存。如果禁用缓存,则调用频率限制为每30秒内最多请求10次查询,超过频率限制会报错。

    • 股票代码 例如:600519.SH
      • HK 港股
      • US 美股
      • SH 沪股
      • SZ 深股

    策略代码中使用exchange.SetContractType()函数设置股票代码,例如:

    function main() {
        var info = exchange.SetContractType("600519.SH")    // Set to stock 600519.SH (Moutai), account switches to mainland market
        Log(info)
        Log(exchange.GetAccount())                          // Current stock is Moutai, calling GetAccount function gets account assets for mainland market
        Log(exchange.GetTicker())                           // Get current price information for Moutai stock
    }
    
    def main():
        info = exchange.SetContractType("600519.SH")
        Log(info)
        Log(exchange.GetAccount())
        Log(exchange.GetTicker())
    
    void main() {
        auto info = exchange.SetContractType("600519.SH");
        Log(info);
        Log(exchange.GetAccount());
        Log(exchange.GetTicker());
    }
    

    设置交易方向的函数exchange.SetDirection、下单函数exchange.Buy/exchange.Sell、撤单函数exchange.CancelOrder、查询订单函数exchange.GetOrder等使用方法均与期货市场相同。

    • 账户信息数据格式: 使用TrdMarket定义市场,用于区分香港市场美国市场大陆市场

    摘录自Futu API文档:

    const (
        TrdMarket_TrdMarket_Unknown TrdMarket = 0 //Unknown market
        TrdMarket_TrdMarket_HK      TrdMarket = 1 //Hong Kong market
        TrdMarket_TrdMarket_US      TrdMarket = 2 //US market
        TrdMarket_TrdMarket_CN      TrdMarket = 3 //Mainland market
        TrdMarket_TrdMarket_HKCC    TrdMarket = 4 //Hong Kong Stock Connect market
        TrdMarket_TrdMarket_Futures TrdMarket = 5 //Futures market
    )
    

    获取账户信息数据时,exchange.GetAccount()函数返回:

    {
        "Info": [{
            "Header": {
                ...                 // Omitted
                "TrdMarket": 1      // Market ID in Info raw data, indicates account assets for Hong Kong market trading
            },
            "Funds": {              // Account asset information in this market
                ...
            }
        }, ...],
        "Stocks": 0,
        "FrozenStocks": 0,
        "Balance": 1000000,       // Asset value in current market
        "FrozenBalance": 0
    }
    
    • FutuOpenD根据登录的IP地址进行地区区分 对于非大陆IP地址登录的账户,在获取行情数据时有所限制,具体请查阅FutuOpenD(富途)官方文档。
  • 盈透证券 配置交易所: 使用盈透证券需要在托管者所在系统环境运行「IB Gateway」或「TWS (Trader Workstation)」软件。以「TWS」软件为例,运行「TWS」并登录后,在软件右上角点击配置按钮打开软件配置界面。

    • 选择:「配置」->「API」->「设置」,不要勾选「只读API」选项,需要勾选「启用ActiveX和套接字客户端」选项,注意配置中的「套接字端口」(TWS默认端口为7496实盘/7497模拟盘)。
    • 在平台的添加交易所页面「https://www.fmz.com/m/platforms/add」选择**盈透证券(Interactive Brokers)**,配置参数。在「服务器地址」配置项中填写「TWS」软件对应的地址(如127.0.0.1或localhost)和端口即可,例如:localhost:7496

支持市场: - 目前仅支持美股市场,暂不支持其他期货、外汇等市场。 - 美股市场股票代码格式示例: 苹果公司(Apple Inc.)在纳斯达克(NASDAQ)交易所的股票代码:AAPL.US。 特斯拉公司(Tesla, Inc.)在纳斯达克(NASDAQ)交易所的股票代码:TSLA.US。 - Futures_Binance 支持币安的中文交易对:

  function main() {
      let ticker = exchange.GetTicker("币安人生_USDT.swap")
      Log("ticker:", ticker)   // {"Info":{...},"Symbol":"币安人生_USDT.swap","Open":0.29622,"High":0.31661, ...}
  }

关于币安期货的exchange.IO()切换功能(双向持仓、逐仓/全仓、统一账户、STP模式等),请参考{@fun/Trade/exchange.IO exchange.IO}函数文档。 - Futures_HuobiDM - 切换地址: 使用exchange.IO("base", "https://xxx.xxx.xxx")exchange.SetBase("https://xxx.xxx.xxx")切换交易所接口的基地址。

支持火币的中文交易对:

  function main() {
      let ticker = exchange.GetTicker("币安人生_USDT.swap")
      Log("ticker:", ticker)   // {"Info":{...},"Symbol":"币安人生_USDT.swap","Open":0.29622,"High":0.31661, ...}
  }

关于火币期货的exchange.IO()切换功能(signHost、逐仓/全仓、持仓单向/双向、统一账户等),请参考{@fun/Trade/exchange.IO exchange.IO}函数文档。 - Huobi - 切换特殊交易对: 支持火币现货杠杆代币,例如:LINK*(-3),交易所定义的代码为:link3susdt,在发明者量化交易平台设置该交易对时写作LINK3S_USDT。 也可以在策略中切换交易对:

```js
function main() {
    exchange.SetCurrency("LINK3S_USDT")
    Log(exchange.GetTicker())
}
```

```python
def main():
    exchange.SetCurrency("LINK3S_USDT")
    Log(exchange.GetTicker())
```

```cpp
void main() {
    exchange.SetCurrency("LINK3S_USDT");
    Log(exchange.GetTicker());
}
```

支持火币的中文交易对:

  function main() {
      let ticker = exchange.GetTicker("币安人生_USDT")
      Log("ticker:", ticker)   // {"Info":{...},"Symbol":"币安人生_USDT","Open":0.29622,"High":0.31661, ...}
  }
  • Futures_Bibox
    • 不支持的接口: 交易所不支持查询当前挂单,不支持查询市场历史成交记录的接口,因此不支持GetOrdersGetTrades函数。
  • BitMEX
    • 市价单买单 BitMEX现货交易下单接口中,市价单买单的下单量不是金额,而是交易币数。
  • Bitfinex
    • 市价单买单 Bitfinex现货交易下单接口中,市价单买单的下单量不是金额,而是交易币数。
  • AscendEx
    • 市价单买单 AscendEx现货交易下单接口中,市价单买单的下单量不是金额,而是交易币数。
  • Futures_Phemex
    • K线接口 该交易所K线接口响应的数据不包含当前Bar数据。
    • 切换逐仓/全仓: 该交易所未提供切换全仓/逐仓的接口,需要在交易所端设置。
  • Futures_Aevo
    • 订单Id说明: 该交易所订单Id由实际Id和订单时间戳组成,时间戳和实际订单Id使用英文逗号间隔。目的是为了支持exchange.GetOrder(Id)函数查询订单。由于交易所返回的数据中订单时间戳会随订单状态变化,如果本地需要记录订单Id等信息,请分离出实际订单Id进行记录。
  • Futures_dYdX 目前支持的是dYdX v4版本,请参考dYdX v4 使用指南
  • Futures_Hyperliquid 请参考Hyperliquid 使用指南

关于Hyperliquid期货的exchange.IO()切换功能(逐仓/全仓、主网/测试网、vaultAddress、walletAddress、expiresAfter等),请参考{@fun/Trade/exchange.IO exchange.IO}函数文档。 - Futures_Lighter - 切换测试环境: 测试环境可以在配置交易所对象时勾选设置,也可以使用exchange.SetBase()函数修改REST API端点切换到测试环境。

关于Futures_Lighter的exchange.IO()切换功能(逐仓/全仓、订单过期时间等),请参考{@fun/Trade/exchange.IO exchange.IO}函数文档。