模糊逻辑介绍(基础篇)
📘

模糊逻辑介绍(基础篇)

第 1/3 篇

「把「非黑即白」换成隶属度」

经典布尔逻辑里,一个命题只有真(1)或假(0)。但在价格行为里,把「趋势强」硬判成 0 或 1 往往失真——一段行情可能「偏强但没强透」。模糊逻辑用隶属度 μ∈[0,1] 描述这种中间状态,例如 μ=0.7 表示「70% 像上升趋势」。 在 MT5 里这套思路可直接落地。MQL5 没有内建 fuzzy 库,但用普通数组就能写隶属函数。下面这段用三角形隶属函数给「波动率」分三档,回测窗口取 2015 年 10 月发布示例后 EURUSD H1 数据,参数经手调可复现。 外汇与贵金属属高风险品类,隶属度只描述概率倾向,不构成方向保证。

MQL5 / C++
class="type">class="kw">double TriMembership(class="type">class="kw">double x, class="type">class="kw">double a, class="type">class="kw">double b, class="type">class="kw">double c)
{
   if(x <= a || x >= c) class="kw">return class="num">0.0;      class=class="str">"cmt">// 完全不在三角形底边区间,隶属度 class="num">0
   if(x == b) class="kw">return class="num">1.0;                class=class="str">"cmt">// 顶点处完全隶属
   if(x > a && x < b) class="kw">return (x-a)/(b-a); class=class="str">"cmt">// 左侧线性上升
   class="kw">return (c-x)/(c-b);                    class=class="str">"cmt">// 右侧线性下降
}

◍ 模糊逻辑从理论到控制的演化

模糊集合与模糊逻辑的数学根基可追溯到 1965 年,由加州大学伯克利分校的卢特菲·扎德教授在《信息与控制》学报论文中首次提出。它让精确数学能够容纳“模糊概念”,在软计算路径上给出了一套不同于传统二值判定的问题解法,后续也被用于专家系统与神经网络的构建。 但在交易与工程语境里,模糊逻辑真正落地的主干并不在纯理论,而是自动化控制。它催生了“模糊模型”这一数学模型的特例,用隶属度替代非黑即白的阈值,更适合处理外汇与贵金属中高噪声、高风险的价格状态。 对 MT5 使用者来说,这意味着你可以把“趋势强 / 弱”“超买 / 未超买”写成隶属函数,而不是硬切条件。这类写法在震荡行情里可能比固定阈值更少被假突破洗掉,但杠杆品种风险仍高,需自行回测验证。

从非黑即白到隶属度

经典数理逻辑里,一个对象对某个集合的隶属关系只有两个离散值:1 表示属于,0 表示不属于。这种二值判定在价格状态划分上很死板——一段行情要么算「趋势」,要么算「非趋势」,中间地带直接被丢掉。 扎德把「隶属」从离散概念推开,引入「隶属度」来替代原来的硬边界,集合也随之变成模糊集合。也就是说,某个价格形态可以同时以 0.3 的程度属于「震荡」、以 0.7 的程度属于「趋势」,而不是被迫二选一。 对做价格行为的人而言,这解释了为什么手工划线的支撑阻力总带点弹性:你脑子里的「有效破位」本来就是个程度问题,不是开关量。用模糊集合重述这类状态,比硬套二值条件更贴近盘感。

「模糊集合与隶属度怎么落地到交易变量」

把「模糊」引入价格行为分析,第一步是放弃非黑即白的分类。模糊集合在论域上由元素与其隶属度配对构成,隶属度落在 [0,1] 区间:0 代表完全不属此集,1 代表完全属于,中间值才是模糊集区别于普通集的关键。 隶属函数负责算某个随机元素进集合的程度,域必须限制在 [0,1],多数情形是连续单调函数。语义变量用自然语言词做值,比如「趋势强度」「波动状态」,它的特征集合由任务主观决定,每个特征的隶属函数通常唯一,可经直接、间接或相对次数法构造。 用「年龄」做例:论域设 [0,80],特征集合含「青年 / 中年 / 老年」。取 30 岁作垂线,与三条隶属函数交于 (30,0)、(30,0.29)、(30,0.027)——即老年隶属度 0、中年 0.29、青年 0.027。可见 30 岁者不属老年,中年略占优但 0.29 仍低,青年反而更贴实。 去模糊化把模糊集转成具体数,现有超 20 种方法且结果差异明显;重心法迄今倾向给出较优结果。外汇与贵金属波动非线性,用此类语义变量刻画状态前,务必先在 MT5 用历史数据验证隶属函数划分是否合理,高风险品种尤忌直接套用。

◍ 模糊模型落地的三阶段与权重陷阱

模糊逻辑把'真/假'换成程度,允许语义变量带灰度。它和传统集合算法一样能并交补,只是计算更重;多集合叠加仍可合成一个模糊集,但这层主观映射若拍得太粗,误差会直接放大。 模糊模型适合弱形式化对象:当贵金属波动的数学描述太复杂或根本未知时,用'if-then'规则库顶上。模型输出质量死死绑在建库专家身上,想降错只能把规则画全,再拿学习机和大训练集去磨。 构建分三步:定输入输出特征、建知识库、选推理法。第一步定调后面两步。规则库无数量上限,每条带权重因子,区间[0,1];很多文献不写权重,实际是默认每条固定为1,这坑容易让人误以为规则等权。规则分简单(单模糊变量)和复杂(多变量),推理主用 Mamdani 或 Sugeno。 外汇和贵金属杠杆高、滑点狠,模糊规则权重拍脑袋设1,回测好看实盘也可能翻车,开 MT5 接 fuzzylite 前先把手写权重列出来核对。

常见问题

可以。把金叉当成隶属度而非布尔信号,例如均线间距占ATR的比例映射为0~1,低于阈值就不算真金叉,能过滤部分假突破。
不一定。可设RSI 60~80线性隶属“超买”,70时隶属度0.5,配合价格偏离均线程度加权,比单线cutoff更稳。
小布可直接对品种做多变量模糊诊断,把动量、波动率、乖离率转成隶属度面板,你只看红绿强弱,不用手算。
权重陷阱会让某变量 dominate 输出。例如波动率权重过大,信号全随震荡翻转,回测漂亮实盘必崩,建议做权重敏感性检验。
要。亚盘与美盘ATR差2~3倍,直接用日隶属函数会钝化,按时段分别标定或除以时段ATR归一化更靠谱。