行情数据获取与处理
同花顺提供股票、期货的实时行情与历史数据。股票方面,可查看Level-1和Level-2行情,包括十档盘口、逐笔成交、分价表。期货方面,支持国内四大交易所的主力合约、连续合约以及夜盘数据。通过同花顺的“数据导出”功能,用户能将历史K线数据保存为CSV或Excel格式,用于后续的量化策略回测。
同花顺的“问财”自然语言选股工具能快速筛选股票,输入“市盈率小于20且净利润增长率大于30%”即可得到股票池。期货用户可关注“同花顺期货通”中的仓单、基差、展期收益率等指标。

# 使用同花顺iFinD接口获取股票历史数据示例
from iFinDPy import *
# 登录
thsLogin(username='your_username', password='your_password')
# 获取股票日线数据
data = THS_HistoryQuotes('600519.SH', 'close;volume', '2023-01-01', '2023-12-31', 'period=1;adjustflag=1')
print(data)
公式系统与指标编写
同花顺内置公式管理器,支持编写自定义技术指标、条件选股公式和交易系统。语法类似通达信,但函数命名略有差异。股票公式常用函数包括MA、EMA、MACD、KDJ、RSI。期货公式需额外处理合约乘数、保证金和手续费。
用户可创建“技术指标”公式,在K线图上叠加显示。创建“条件选股”公式,盘后扫描全市场股票。同花顺支持公式回测,但回测周期、滑点、手续费设置较基础。
# 同花顺公式示例:基于均线交叉的股票选股条件
# 公式名称:MA_CROSS
MA5 := MA(CLOSE, 5);
MA20 := MA(CLOSE, 20);
CROSS(MA5, MA20) AND VOL > MA(VOL, 5);
期货专用功能
同花顺期货通提供主力合约换月提醒、保证金监控、逐笔盈亏计算。用户可设置条件单,当期货价格突破某一价位时自动发出买卖指令。同花顺支持期货套利分析,包括跨期套利、跨品种套利。
期货量化交易需注意合约到期日。同花顺的“连续合约”数据经过拼接处理,避免价格跳空。用户可编写公式计算期货的ATR、布林带宽度、持仓量变化率。
# 获取期货主力合约连续数据
future_data = THS_HistoryQuotes('IF.CFE', 'open;high;low;close;volume;openInterest', '2023-01-01', '2023-12-31', 'period=1')
量化接口与自动交易
同花顺iFinD提供Python、MATLAB、C++接口,可获取实时行情、财务数据、期货仓单。iFinD的实时行情推送频率为每秒2-3笔,适合中低频策略。自动交易方面,同花顺支持与券商、期货公司的交易接口对接,但需开通相应权限。
用户可通过同花顺的“下单”API实现程序化交易。股票交易需注意T+1规则,期货交易支持T+0。同花顺的模拟交易环境可用于策略验证。
# 同花顺iFinD下单示例(需券商权限)
order = THS_Order('600519.SH', 'buy', 100, price=1800.0)
print(order)
数据导出与外部工具结合
同花顺数据导出功能支持导出股票、期货的财务数据、行情数据、板块数据。用户可将数据导入Python的pandas、numpy进行统计分析。同花顺的板块分类包括行业、概念、地域。期货用户可导出会员持仓排名、库存数据。
将同花顺数据与backtrader、vnpy等框架结合,能构建完整量化流程。注意数据对齐问题,股票除权除息需复权处理,期货主力合约换月需拼接。
# 读取同花顺导出的CSV文件
import pandas as pd
df = pd.read_csv('ths_stock_data.csv', encoding='gbk')
df['ma20'] = df['close'].rolling(20).mean()
常见问题与优化
同花顺公式运行速度较慢,全市场选股可能耗时数分钟。优化方法是减少计算量,使用“最后一根K线”模式。期货公式需处理夜盘与日盘的时间戳。同花顺的财务数据有滞后性,季度报告发布后需更新。
用户应定期校验同花顺数据与交易所原始数据的一致性。股票分红送股会导致价格跳空,回测时必须使用前复权数据。期货主力合约切换时,持仓量会突变,策略需过滤该信号。
# 前复权处理示例
df['adj_close'] = df['close'] * df['adj_factor'] / df['adj_factor'].iloc[-1]
策略回测与评估
同花顺的公式回测系统支持简单统计,如胜率、盈亏比、最大回撤。但缺乏多品种、多周期组合回测。用户可将同花顺信号导出,在Python中自行回测。股票策略需考虑涨跌停无法成交的情况,期货策略需考虑保证金不足被强平。
评估指标包括年化收益率、夏普比率、卡玛比率。同花顺的“策略雷达”可提供部分参考。期货策略需关注隔夜风险,股票策略需关注流动性。
# 简单回测计算
returns = df['close'].pct_change()
sharpe = returns.mean() / returns.std() * (252**0.5)
print(f'夏普比率: {sharpe:.2f}')
移动端与预警设置
同花顺手机APP支持股票、期货行情查看,可设置价格预警、涨跌幅预警、技术指标预警。预警触发后通过推送通知。期货用户可设置保证金预警,避免被强平。股票用户可设置股东减持、业绩预告预警。
移动端与PC端数据同步,自选股、公式、预警条件均云端保存。同花顺的“眼”功能可监控主力资金流向,但需付费。
# 预警设置示例(伪代码)
set_alert('600519.SH', condition='price > 1900', action='notify')
风险控制与资金管理
同花顺提供仓位计算器,可输入股票、期货的保证金比例、止损价位,计算可开仓手数。股票融资融券需关注维持担保比例。期货需关注当日无负债结算。
量化策略应设置单笔最大亏损、总仓位上限、最大回撤止损。同花顺的“条件单”可实现移动止损、跟踪止盈。股票T+1规则下,止损只能次日执行。
# 凯利公式计算仓位
win_rate = 0.55
win_loss_ratio = 1.5
kelly = win_rate - (1 - win_rate) / win_loss_ratio
position = max(0, min(kelly, 0.25)) # 限制最大25%仓位
print(f'建议仓位: {position:.2%}')
社区与学习资源
同花顺论坛提供公式分享、策略讨论、数据下载。用户可搜索“同花顺公式”“同花顺量化”等关键词。官方帮助文档详细说明每个函数用法。期货用户可关注“同花顺期货通”的研报专栏。
同花顺的“模拟炒股”和“模拟期货”适合新手练习。量化交易需补充Python、统计学、市场微观结构知识。同花顺数据可与Tushare、AkShare等开源库交叉验证。
# 对比同花顺与AkShare数据
import akshare as ak
ak_data = ak.stock_zh_a_hist(symbol='600519', period='daily', start_date='2023-01-01', end_date='2023-12-31')
print(ak_data.head())