企业微信

同花顺开发者到底是个什么工具

很多做股票和期货的朋友听过同花顺开发者,但搞不清它跟普通同花顺软件有什么区别。普通同花顺是给手动下单的人看的行情软件。同花顺开发者是一套接口和工具包,让会写代码的人用程序去获取行情、计算指标、自动下单。你不需要盯着屏幕点鼠标,写好的策略可以自己跑。

它支持股票和期货两个市场。股票方面能拿到实时报价、历史K线、财务数据。期货方面能拿到主力合约、分钟级tick、持仓量。这些数据通过Python、C++、C#等语言调用。你写一段逻辑,比如均线金叉买入,程序就按这个逻辑执行。

股票程序化交易的关键步骤

第一步 拿到干净的数据

很多新手直接拿同花顺开发者接口拉数据就写策略。正确做法是先检查数据质量。股票有除权除息,期货有主力换月。不处理这些,回测结果全是假的。同花顺开发者提供复权因子接口,你调用它把历史价格统一成后复权价。否则一根大阴线可能只是分红导致的。

第二步 写一个能回测的策略

股票T+1,当天买不能当天卖。期货T+0,可以做日内。同花顺开发者的回测框架允许你设置这些规则。你写一个双均线策略,5日均线上穿20日均线开多,下穿平仓。回测时要把手续费和滑点算进去。股票印花税千分之一,期货手续费按手数或成交额算。滑点按一跳或者两跳估算。很多策略回测赚钱,一加滑点就亏。

同花顺开发者能帮你实现哪些股票期货量化交易功能

第三步 实盘对接注意风控

同花顺开发者支持仿真交易和实盘交易。实盘前先用仿真跑两周。实盘接口有频率限制,一秒最多几次报单。你策略里不能写死循环报单。另外期货有夜盘,股票没有。你的程序要区分交易时段。股票集合竞价和连续竞价规则不同,期货有涨跌停板。这些细节不处理,实盘会出乱子。

期货量化交易的特殊之处

期货自带杠杆,保证金交易。同花顺开发者返回的期货行情包含买卖各五档盘口。你写策略要关注合约乘数。螺纹钢一手10吨,原油一手1000桶。计算仓位时不能用股票那套。期货还有交割月限制,个人客户不能进入交割月。程序要自动在交割月前平仓或移仓。

同花顺开发者提供期货主力合约代码,比如螺纹钢主力是RB888。你直接拉这个代码就能拿到连续主力数据。自己拼接主力合约会碰到换月跳空。用官方主力代码省事。期货策略更看重止损。杠杆放大亏损,一笔单子亏2%可能就爆仓。程序里必须设硬止损。

一套能跑通的代码结构长什么样

不用复杂框架,一个最小可用的股票策略代码结构如下。这段代码用同花顺开发者的Python接口。


from ths_api import THSClient

import time

client = THSClient(user='your_id', password='your_pwd')

client.connect()

def get_data(symbol):

    df = client.get_kline(symbol, period='1d', count=100)

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

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

    return df

def check_signal(df):

    last = df.iloc[-1]

    prev = df.iloc[-2]

    if prev['ma5'] <= prev['ma20'] and last['ma5'] > last['ma20']:

        return 'buy'

    if prev['ma5'] >= prev['ma20'] and last['ma5'] < last['ma20']:

        return 'sell'

    return 'hold'

while True:

    df = get_data('600519')

    signal = check_signal(df)

    if signal == 'buy':

        client.order('600519', price=df.iloc[-1]['close'], amount=100, direction='buy')

    elif signal == 'sell':

        client.order('600519', price=df.iloc[-1]['close'], amount=100, direction='sell')

    time.sleep(3600)

这段代码每小时检查一次贵州茅台。金叉买入100股,死叉卖出100股。实盘前把client.order换成仿真模式。期货代码类似,只需改symbol和amount单位。期货amount是手数,不是股数。

同花顺开发者的数据延迟和费用

免费版同花顺开发者有15分钟延迟。股票和期货都是这个延迟。做日内高频不能用免费版。付费版提供实时Level-1行情。期货Level-2要另买。费用按年收,个人用户大概几千到一万。你策略的预期年化收益必须覆盖这个成本。如果策略一年只赚5%,扣掉数据费就不剩多少。

另外同花顺开发者不提供历史tick数据。你要自己每天收盘后拉当日tick存下来。积累几个月才有足够数据做日内回测。股票tick数据量小,期货tick数据量大。螺纹钢一天几百万条。存本地数据库用parquet格式,别用csv。

散户用同花顺开发者最容易踩的坑

第一个坑是过拟合。拿历史数据调参数,调到回测曲线完美。实盘一跑就亏。正确做法是留出最近一年数据做样本外测试。样本外赚钱才考虑实盘。

第二个坑是忽略流动性。股票你选小盘股,回测时假设按收盘价成交。实盘时买一卖一价差大,你挂单成交不了。期货远月合约流动性差,滑点比主力合约大好几倍。同花顺开发者能拉盘口数据,你回测时用买一卖一中间价加两跳滑点。

第三个坑是不做仓位管理。每次满仓干,遇到连续亏损直接爆仓。凯利公式或者固定比例法都行。单笔风险控制在总资金2%以内。股票和期货都一样。

同花顺开发者是工具,不是印钞机。它帮你把想法变成代码,把代码变成订单。能不能赚钱取决于你的策略逻辑、风控和执行力。先仿真跑三个月,再拿小资金实盘。别一上来就梭哈。