用同花顺API做量化交易怎样选出赚钱的策略

企业微信

先搞懂同花顺API能给你什么

同花顺API不是印钞机,它是一根管子,把行情数据、交易指令、账户信息连起来。你能拿到实时报价、历史K线、财务数据,也能下单撤单查持仓。期货和股票都能做,区别在于期货带杠杆、有夜盘、合约会到期,股票没有这些麻烦。

选策略之前,先摸清这根管子的脾气。同花顺API的行情推送有延迟,不同券商接口的订单响应速度不一样。你拿到的tick数据是快照,不是逐笔成交。这些细节决定了你的策略能不能跑通。

策略选择的第一道门槛 数据频率

你用什么频率的数据,就只能做什么频率的策略。

日线数据做不了日内高频。分钟线数据做不了趋势跟踪。同花顺API提供1分钟、5分钟、15分钟、30分钟、60分钟和日线数据。你想做日内回转,至少得用1分钟线。你想做波段,30分钟或60分钟够用。你想做长线配置,日线就行。

用同花顺API做量化交易怎样选出赚钱的策略

数据频率还决定了回测的样本量。1分钟线一天240根K线,一年6万根左右。日线一年250根。样本太少,回测结果不可信。样本太多,计算量暴涨,同花顺API的请求频率也有限制。

策略必须匹配你的交易成本

股票交易有佣金、印花税、过户费。期货交易有手续费、交易所规费、保证金利息。同花顺API下单,券商还会收通道费。

一个策略回测年化收益20%,听起来很美。扣掉双边万三佣金、千一印花税、滑点两个点,实盘可能只剩5%。期货更狠,杠杆放大收益也放大成本,日内平今仓手续费可能是开仓的十倍。

选策略先算一笔账。你的策略平均每笔盈利多少点,成本占多少。股票日内策略,一个来回成本至少0.15%。期货螺纹钢,一个来回成本大约2到4个点。策略的止盈止损空间必须远大于成本,否则就是给券商打工。

滑点是策略的隐形杀手

同花顺API报单,从你发出指令到交易所撮合,有时间差。这个时间差里价格可能已经变了。流动性好的品种,滑点小。流动性差的品种,滑点能吃掉全部利润。

期货里,螺纹钢、豆粕、甲醇流动性好,滑点小。苹果、红枣、纤板流动性差,滑点大。股票里,大盘股滑点小,小盘股滑点大。

选策略时,回测必须加滑点。股票加0.1%到0.2%,期货加1到2个最小变动价位。不加滑点的回测都是耍流氓。

策略类型要匹配你的时间和资金

股票策略分几类。

趋势跟踪 用均线、布林带、MACD判断方向。适合日线或60分钟线,持仓几天到几周。回撤大,胜率低,盈亏比高。需要耐心。

均值回归 用RSI、KDJ、乖离率找超买超卖。适合震荡市,持仓几小时到几天。胜率高,盈亏比低。遇到单边趋势会死得很惨。

日内回转 用1分钟或5分钟线,抓小波动。持仓几分钟到几小时。对滑点和手续费极度敏感。同花顺API的延迟决定了你只能做中低频日内,做不了高频。

事件驱动 用财报、公告、新闻做决策。同花顺API能拿到财务数据和公告,但新闻接口不一定全。这类策略容量小,适合小资金。

期货策略类似,但多了一个维度 期限结构。

展期收益 做多近月做空远月,赚取展期收益。适合能交割的机构,散户做不了。

跨期套利 同品种不同月份合约价差回归。同花顺API能同时拿多个合约行情,适合做这个。风险低,收益低,需要大资金。

跨品种套利 螺纹钢和热卷、豆油和棕榈油。价差有基本面锚定,比单边安全。同花顺API的下单速度够用。

趋势跟踪 和股票一样,但期货带杠杆,回撤放大,仓位管理更严格。

策略验证的三步走

第一步 历史回测。用同花顺API拿三年以上数据,分牛市、熊市、震荡市。看最大回撤、夏普比率、胜率、盈亏比。最大回撤超过30%的策略,实盘很难扛住。

第二步 模拟盘。同花顺API支持模拟交易。跑一到三个月,看实盘滑点和回测差多少。模拟盘和实盘的情绪不一样,但至少能验证代码有没有bug。

第三步 小资金实盘。拿总资金的5%到10%跑。跑满一个月,对比模拟盘和回测。偏差超过20%,说明策略对市场环境敏感,需要调整参数或换策略。

仓位管理和风控是策略的一部分

同花顺API能查账户权益,能算保证金占用。股票满仓一只票,一个跌停就伤筋动骨。期货满仓,一个反向停板就爆仓。

单笔交易风险控制在总资金的1%到2%。股票用固定比例止损,期货用ATR算止损距离。总仓位上限,股票不超过80%,期货不超过50%。

同花顺API可以设置条件单,达到止损线自动平仓。代码里也要有硬止损,防止API断线或程序卡死。

代码示例 一个简单的双均线策略框架

用同花顺API的Python接口,伪代码逻辑如下。


# 获取历史数据

data = api.get_kline(symbol='600519', period='1d', count=100)

# 计算均线

data['ma5'] = data['close'].rolling(5).mean()

data['ma20'] = data['close'].rolling(20).mean()

# 生成信号

data['signal'] = 0

data.loc[data['ma5'] > data['ma20'], 'signal'] = 1

data.loc[data['ma5'] < data['ma20'], 'signal'] = -1

# 下单逻辑

position = api.get_position('600519')

if data['signal'].iloc[-1] == 1 and position == 0:

    api.buy('600519', price=data['close'].iloc[-1], amount=100)

elif data['signal'].iloc[-1] == -1 and position > 0:

    api.sell('600519', price=data['close'].iloc[-1], amount=position)

这只是骨架。实盘还要加滑点过滤、成交量过滤、止损止盈、仓位计算。期货还要处理合约换月。

多策略组合比单策略靠谱

一个策略总有失效的时候。趋势策略在震荡市亏钱,均值回归在趋势市亏钱。把两个策略组合,资金分两半,回撤能降下来。

同花顺API能同时跑多个策略,各自独立下单。注意保证金和资金占用,别让两个策略同时满仓。

组合策略的相关性要低。趋势和均值回归是负相关,股票和期货是低相关。相关性高的策略组合,等于没组合。

持续迭代 没有一劳永逸的策略

市场结构在变。注册制改变股票波动特征,期货新品种上市改变资金流向。同花顺API的接口也在更新。

每季度复盘一次策略表现。连续三个月跑输基准,就要检查是参数失效还是逻辑失效。参数失效就重新优化,逻辑失效就换策略。

策略的生命周期通常一到三年。别指望一个策略吃一辈子。

转载请注明出处:https://www.lianghuajiaoyi.top/wenzhang/tonghuashun-API-lianghua-jiaoyi-678.html