从入门到精通的深度实战手册 | 覆盖选股、指标、交易系统构建 | 每日更新源码库
在众多技术分析工具中,同花顺 公式编辑器凭借其强大的自定义能力和灵活的编程环境,成为了无数投资者实现量化思维落地的关键工具。不同于简单的看盘软件,它允许用户将抽象的交易逻辑转化为可执行的计算机语言,从而实现对海量数据的自动化筛选与回测。
利用公式编辑器编写复杂的条件组合,瞬间从全市场数千只股票中筛选出符合特定形态、资金流向或技术指标共振的目标标的,极大提升选股的效率与准确率。
当现有指标无法满足个性化需求时,通过自定义编写指标公式,可以结合多因子模型、波动率分析及主力资金监控,打造出独一无二的辅助决策系统。
基于历史数据验证交易策略的有效性。同花顺 公式编辑器支持编写选股公式与预警公式,配合其内置的回测功能,帮助用户在实盘前规避潜在风险,优化参数设置。
值得注意的是,同花顺 公式编辑器不仅是一个代码编写工具,更是一个逻辑思维的演练场。无论是新手学习基础的均线交叉,还是资深玩家构建复杂的多空对冲模型,它都能提供相应的支持。然而,许多用户在初次接触时,往往因为缺乏系统的语法认知,导致编写的公式无法编译或逻辑出现偏差。
掌握公式编辑器的第一步,是理解其独特的编程语言结构。虽然它借鉴了 BASIC 语言的某些特性,但在金融数据处理上有着严格的规范。以下是对核心语法的深度拆解:
在同花顺 公式编辑器中,变量名必须以字母开头,且不能包含特殊符号(除下划线外)。系统预定义了多个常用变量,直接引用即可:
C 或 CLOSE:收盘价O 或 OPEN:开盘价H 或 HIGH:最高价L 或 LOW:最低价V 或 VOL:成交量TOTALDATE:总日期数用户自定义变量通常使用 VAR_NAME := VALUE; 的形式赋值。注意,语句末尾必须加分号 ;,这是新手最容易忽略的细节。
同花顺 公式编辑器内置了丰富的数学与统计函数,以下是高频使用的函数列表:
| 函数类别 | 函数名 | 功能描述 | 示例 |
|---|---|---|---|
| 移动平均 | MA | 计算简单移动平均 | MA(C,5) |
| 指数平滑 | EMA | 计算指数加权移动平均 | EMA(C,12) |
| 交叉判断 | CROSS | 判断两条线是否发生金叉或死叉 | CROSS(MA(C,5), MA(C,10)) |
| 极值查找 | HIGHEST / LOWEST | 求 N 周期内的最高/最低价 | HIGHEST(H, 20) |
| 条件判断 | IF | 条件成立返回真值,否则返回假值 | IF(C>O, 1, 0) |
| 统计计数 | COUNT | 统计满足条件的次数 | COUNT(C>O, 5) |
在构建复杂选股策略时,逻辑运算符至关重要:AND(且)、OR(或)、NOT(非)。例如,想要选出“股价站上 5 日均线”且“成交量放大”的股票,逻辑表达式应为:C > MA(C,5) AND V > MA(V,5)。
理论必须结合实践。本章节通过三个典型的同花顺 公式编辑器应用案例,展示如何一步步将想法转化为代码。请使用下方的选项卡切换不同的策略类型。
应用场景:捕捉趋势启动初期的强势个股,适合稳健型投资者。
逻辑思路:要求 5 日均线大于 10 日均线,10 日均线大于 20 日均线,且 20 日均线大于 60 日均线,形成完美的多头排列结构。
{均线多头排列选股}
M5 := MA(C, 5);
M10 := MA(C, 10);
M20 := MA(C, 20);
M60 := MA(C, 60);
COND1 := M5 > M10;
COND2 := M10 > M20;
COND3 := M20 > M60;
COND4 := M5 > REF(M5, 1); {5 日线向上}
XG: COND1 AND COND2 AND COND3 AND COND4;
使用说明:将上述代码复制到同花顺 公式编辑器的“条件选股公式”中新建文件中,命名为“多头排列”,保存后在“选股平台”中运行即可。
注意:该策略在震荡市中可能会产生较多虚假信号,建议结合大盘环境使用。
应用场景:寻找长期横盘整理后,主力资金突然介入拉升的个股。
逻辑思路:股价经历长时间低位盘整(如 60 日内跌幅不大),今日收盘价创 60 日新高,且成交量显著放大(超过 5 日均量 2 倍)。
{底部放量突破}
N := 60;
LOW_PRICE := LLV(L, N);
HIGH_PRICE := HHV(H, N);
VOL_RATIO := V / MA(V, 5);
PRICE_BREAK := C = HIGH_PRICE AND L <= LOW_PRICE 1.05; {价格创新高且近期未深跌}
VOL_EXPLOSION := VOL_RATIO > 2.0; {成交量放大 2 倍}
XG: PRICE_BREAK AND VOL_EXPLOSION;
关键点:此公式重点在于 LLV 函数的使用,用于获取过去 N 周期的最低价,确保股价处于相对低位区间。
应用场景:短线投机者捕捉急跌后的技术性反抽机会。
逻辑思路:当日跌幅超过 5%,且偏离 5 日均线过远(乖离率过大),同时 RSI 指标进入超卖区。
{超跌反弹预警}
DISP := (C - MA(C, 5)) / MA(C, 5) 100;
RSI_6 := RSI(C, 6);
DROP := (C - REF(C, 1)) / REF(C, 1) 100 < -5;
XG: DROP AND DISP < -10 AND RSI_6 < 20;
风险提示:超跌反弹属于左侧交易策略,风险较高,务必设置好止损位,不可盲目追涨。
在使用同花顺 公式编辑器的过程中,遇到“编译失败”或“结果为空”是最令人头疼的问题。根据大量用户的反馈,我们将高频错误整理如下,供快速查阅:
现象:系统提示“变量 xxx 未定义”。
原因:直接使用了未赋值的变量,或者变量名拼写错误。
解决:确保每个变量在使用前都进行了赋值操作(如 A := B + C;),并检查大小写是否一致(虽然同花顺不区分大小写,但保持一致是好习惯)。
现象:提示“缺少右括号”或“语法错误”。
原因:函数嵌套层数过多,忘记闭合某个括号。
解决:仔细检查每一对 ( ),推荐使用代码编辑器的自动缩进功能辅助定位。
现象:公式编译成功,但选股结果为 0 只股票。
原因:逻辑过于严苛,当前市场环境下无符合条件的股票;或者参数设置不合理。
解决:放宽条件,例如将“涨幅>5%"改为“涨幅>3%",或检查周期设置是否正确。
现象:回测效果极佳,但实盘失效。
原因:使用了 ZIG, PEAK, TROUGH 等未来函数,这些函数会引用未来的数据。
解决:严禁在实盘选股中使用未来函数,仅可用于历史走势分析。
当掌握了基础语法后,如何写出更高效、更优雅的代码?以下几个高级技巧值得深入钻研:
同花顺 公式编辑器的优势在于可以直接调用 Level-2 行情数据。通过 DDX (大单动向)、DDY (涨跌动因) 等函数,可以精准识别主力意图。
示例:编写一个“主力持续买入”的公式:
XG: DDX > 0 AND DDY > 0 AND DDX_REF > 0; (其中 DDX_REF 为昨日 DDX 值,需自行定义引用逻辑)。
除了个股,我们还可以编写针对行业板块的公式。例如,监测“半导体板块”的整体资金流入情况,以此作为择时的参考依据。
在公式编辑器中生成的预警公式,可以设置为“盘中实时预警”或“收盘后提醒”。对于短线交易者,建议将关键点位突破设为实时弹窗,并开启声音提示。
针对社区内的高频提问,我们整理了以下详细解答,希望能解决您的疑惑。
大部分情况下不能直接通用。虽然两者都是中文编程,但底层函数库和变量定义存在差异。例如,通达信的 MA 函数参数顺序可能与同花顺略有不同,且部分特有的函数(如同花顺的 DDX)在通达信中不存在。如果需要跨平台使用,通常需要重新编写代码。
在公式编辑器中,可以通过“参数设置”功能定义可变参数。例如,将 MA(C,5) 中的 5 定义为参数 N,然后在参数面板中设置 N 的最小值、最大值和默认值。这样用户就可以在不修改代码的情况下,灵活调整均线周期。
这通常是因为某些函数不支持分钟级数据,或者数据精度不够。例如,某些基于日成交量的统计函数在分钟图上可能没有足够的样本量。建议在编写公式时,先明确指定适用的周期范围(如仅在日线有效),或使用 IF 函数进行周期判断。
可以通过“公式管理器” -> “导出”功能,将自定义公式保存为 .tne 或 .txt 文件。建议定期备份,以防软件升级或重装系统导致数据丢失。导出后,在新电脑上只需导入即可恢复。