企业微信

哪些证券公司软件支持股票自动交易

股票自动交易依赖证券公司提供的程序化接口或第三方量化平台。国内主流券商中,华泰证券的MATIC交易接口、国泰君安的君弘量化、中金财富的量化接口、银河证券的APIs、广发证券的易淘金量化、招商证券的智远量化均支持自动下单。部分券商要求客户资产达到一定门槛(通常50万以上)并签署程序化交易协议。

第三方平台如聚宽、米筐、优矿支持生成信号后通过券商接口执行。迅投QMT和恒生PTrade是券商采购较多的极速交易系统,个人投资者可向所在券商申请开通。QMT支持Python编写策略,直接调用账户资金、持仓、委托数据,实现股票自动交易。

期货自动交易的软件与接口

期货市场自动交易更成熟。文华财经的WH8、WH9支持麦语言编写策略并自动下单。交易开拓者TBQuant使用TB语言,支持多品种期货自动交易。金字塔决策交易系统支持VBA和Python。达钱MultiCharts支持PowerLanguage。这些软件直接连接期货公司柜台,实现开平仓、止损止盈。

哪个证券公司软件支持股票自动交易?期货自动交易又该如何实现?

期货公司如永安期货、中信期货、国泰君安期货提供CTP接口。CTP是上期技术开发的综合交易平台,支持C++、Python、Java等语言通过API连接。个人投资者可申请CTP仿真或实盘权限,使用vn.py、pyctp等开源框架构建自动交易系统。

股票与期货自动交易的核心区别

股票自动交易受T+1限制,当日买入不能卖出,融券卖出可当日还券但成本高。期货实行T+0,当日可多次开平,自动交易策略更灵活。股票无杠杆(融资融券除外),期货有5-15倍杠杆,风险控制要求更高。

股票自动交易接口通常有频率限制,如每秒不超过2笔。期货CTP接口支持高频报单,但交易所对自成交、频繁撤单有监管。股票自动交易佣金包含规费,期货自动交易手续费按手数或成交额收取。

如何用Python实现股票自动交易

以华泰证券MATIC接口为例,需要安装matiz库,登录账户后查询资金持仓,编写信号生成逻辑,调用order_target_percent调整仓位。以下代码演示简单双均线策略自动交易。


from matic import MatiClient

import pandas as pd

import time

client = MatiClient()

client.login('账号', '密码')

symbol = '600519.SH'

short_window = 5

long_window = 20

def get_price(symbol, count=30):

    bars = client.get_bars(symbol, '1d', count=count)

    df = pd.DataFrame(bars)

    df['close'] = df['close'].astype(float)

    return df

def signal(df):

    df['ma_short'] = df['close'].rolling(short_window).mean()

    df['ma_long'] = df['close'].rolling(long_window).mean()

    if df['ma_short'].iloc[-1] > df['ma_long'].iloc[-1] and df['ma_short'].iloc[-2] <= df['ma_long'].iloc[-2]:

        return 'buy'

    if df['ma_short'].iloc[-1] < df['ma_long'].iloc[-1] and df['ma_short'].iloc[-2] >= df['ma_long'].iloc[-2]:

        return 'sell'

    return 'hold'

while True:

    df = get_price(symbol)

    sig = signal(df)

    pos = client.get_position(symbol)

    if sig == 'buy' and pos == 0:

        client.order_target_percent(symbol, 0.95)

    elif sig == 'sell' and pos > 0:

        client.order_target_percent(symbol, 0)

    time.sleep(60*60*4)

该策略每4小时检查一次日线均线交叉,金叉买入95%仓位,死叉清仓。实盘需加入滑点、手续费、停牌处理。

期货自动交易代码演示

使用vn.py连接CTP接口,订阅螺纹钢主力合约,实现布林带突破自动交易。


from vnpy_ctp import CtpGateway

from vnpy.trader.engine import MainEngine

from vnpy.trader.object import TickData, BarData

import numpy as np

main_engine = MainEngine()

ctp_gateway = main_engine.add_gateway(CtpGateway)

ctp_gateway.connect({'用户名': 'xxx', '密码': 'xxx', '经纪商代码': '9999', '交易服务器': 'tcp://...', '行情服务器': 'tcp://...'})

symbol = 'rb2410'

period = 15

boll_window = 20

boll_dev = 2

bars = []

def on_bar(bar: BarData):

    bars.append(bar.close_price)

    if len(bars) < boll_window:

        return

    ma = np.mean(bars[-boll_window:])

    std = np.std(bars[-boll_window:])

    upper = ma + boll_dev * std

    lower = ma - boll_dev * std

    pos = main_engine.get_engine('pos').get_position(symbol)

    if bar.close_price > upper and pos == 0:

        main_engine.send_order(symbol, 'buy', 'open', 1, bar.close_price)

    elif bar.close_price < lower and pos > 0:

        main_engine.send_order(symbol, 'sell', 'close', 1, bar.close_price)

策略在15分钟K线突破布林上轨时开多,跌破下轨时平多。期货自动交易需设置止损单,防止极端行情穿仓。

自动交易的风险与合规要求

证券公司对程序化交易有报备要求,未报备的自动交易可能被限制。期货自动交易需注意交易所对日内开仓手数、撤单次数的限制。股票自动交易接口可能产生额外费用,如QMT每月数百元。自动交易策略需经过历史回测和仿真测试,避免逻辑错误导致大额亏损。网络延迟、服务器故障、接口断连均可能造成订单异常,需设计心跳检测和重连机制。

选择证券公司软件时,确认是否支持Python或C++接口,是否提供仿真环境,佣金是否包含规费。期货自动交易优先选择CTP接口,因其开放性和稳定性。个人投资者可从模拟盘开始,逐步过渡到小资金实盘。