富途证券
支持富途牛牛实盘交易、模拟盘交易,需要下载FutuOpenD软件。
当使用FutuOpenD接入模拟交易时,某些股票代码不受支持因此无法交易,但富途牛牛手机APP可以进行模拟交易。
在优宽量化上配置交易所对象、运行FutuOpenD软件等操作请参阅富途证券配置说明文档。
GetOrder、GetOrders、GetPositions、GetAccount函数默认使用缓存数据,因此不限制调用频率。
当有新数据时,FutuOpenD会自动更新数据,缓存数据也会同步更新。调用exchange.IO("refresh", true)函数可以禁用缓存。如果禁用缓存,则调用频率为每30秒内最多请求10次查询,超过频率限制将报错。
600519.SH
策略代码中使用exchange.SetContractType()函数设置股票代码,例如:
function main() {
    var info = exchange.SetContractType("600519.SH")    // 设置为股票600519.SH即贵州茅台,账户即切换到大陆市场
    Log(info)
    Log(exchange.GetAccount())                          // 当前设置的股票为贵州茅台,此时调用GetAccount函数获取账户资产,获取的为大陆市场账户资产
    Log(exchange.GetTicker())                           // 获取股票贵州茅台当前的价格信息
}
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 //未知市场
    TrdMarket_TrdMarket_HK      TrdMarket = 1 //香港市场
    TrdMarket_TrdMarket_US      TrdMarket = 2 //美国市场
    TrdMarket_TrdMarket_CN      TrdMarket = 3 //大陆市场
    TrdMarket_TrdMarket_HKCC    TrdMarket = 4 //香港A股通市场
    TrdMarket_TrdMarket_Futures TrdMarket = 5 //期货市场
)
获取账户信息数据,exchange.GetAccount()函数返回:
{
    "Info": [{
        "Header": {
            ...                 // 省略
            "TrdMarket": 1      // Info原始信息中,市场ID,表示该账户资产用于香港市场交易
        },
        "Funds": {              // 账户在该市场的资产信息
            ...
        }
    }, ...],
    "Balance": 1000000,        // 当前市场的资产数值
    "FrozenBalance": 0
}
FutuOpenD根据登录的IP地址作为地区区分
对于非大陆IP地址登录的账户,在获取行情数据时有所限制,具体请查阅FutuOpenD(富途)官方文档。