文章 "用于一组指标信号的朴素贝叶斯分类器"

 

新文章 用于一组指标信号的朴素贝叶斯分类器已发布:

本文通过运用多个独立指标的信号, 分析贝叶斯公式在提高交易系统可靠性方面的应用。理论计算可由一款简单的通用 EA 进行验证, 配置为使用任意指标。

其中 N 是指标数量。

N 的各种数值的函数图形显示在如图例 1 当中。

带有不同数量随机变量的联合概率的外貌

图例. 1. 带有不同数量随机变量的联合概率的外貌

作者:Stanislav Korotky

 

编程部分一如既往地达到了最高水平!由于理论准备不足,实践部分我几乎没看懂。


看 fmtprnt2.mqh,有很多警告。他们为什么决定制作这样的模板样式?

    template<typename T>
    CFormatOut *operator<<(const T v)
    {
      if(typename(v) == "int" || typename(v) == "uint"
      || typename(v) == "long" || typename(v) == "ulong"
      || typename(v) == "short" || typename(v) == "ushort")

毕竟,可以为每种类型编写不同的运算符变体,从而避免相应的编译器警告


ZЫ 我想我明白了。圣经》写成的时候,语言还不允许 这样做。

 
fxsaber:

查看 fmtprnt2.mqh,有很多警告。他们为什么决定采用这种模板样式呢?

毕竟,可以为每种类型编写不同的运算符变体,从而避免相应的编译器警告

ZЫ 我想我明白了。圣经》是在语言还不允许的情况下写成的。

我可以澄清一下吗?一般来说,就警告的数量而言,这个文件并不是最重要的。有些东西确实可以清理。

如果我们讨论的是具有特定类型的函数,事实上,我们总是希望在一个模板中统一描述所有内容,而不是复制具有不同类型的变体,因为那样我们为什么需要模板呢?

 
Stanislav Korotky:

我能说明一下吗?一般来说,这个文件的警告并不是最多的。有些地方确实可以清理一下。

如果我们讨论的是具有特定类型的函数,事实上,我们总是希望在一个模板中统一描述所有内容,而不是复制具有不同类型的变体,因为这样我们为什么还需要模板呢?

我给出了上面的链接。在那里可以识别 Enum。
 

我对公式的理解是否正确:P(H|E) = P(E|H) * P(H) / P(E) (1),计算如下:

P(H|E) = K2 *(1 / K1 )

在这种情况下,我考虑买入的指标,如果它大于零,我就买入。

K2=指标高于零且 交易有利可图条数/总条数相除(比率)的结果。

K1= 指标高于零的条数与总条数之比

 
forexman77:

我对公式的理解是否正确:P(H|E) = P(E|H) * P(H) / P(E) (1),计算过程如下:

P(H|E) = K2 *(1 / K1 )

在这种情况下,我考虑买入的指标,如果高于零,我就买入。

K2= 是指标高于零且 交易盈利的条数/总条数相除(比率)的结果。

K1= 指标高于零的条数与总条数之比

是的,但采用这种方法时,我们要么将交易持续时间定为 1 条,要么在智能交易系统中允许多个未结头寸,要么不通过盈利头寸的百分比来计算概率,而是通过盈利大小对指标值的依赖性(正或负)来计算概率,也就是说,我们应该改用概率密度。
 
Stanislav Korotky:
是的,但这种方法要求交易持续时间为 1 个交易日,或者在智能交易系统中允许多个未结头寸,或者不通过盈利头寸的百分比来计算概率,而是通过盈利大小与指标值(正或负)的关系来计算概率,即转换为概率密度。


是的,这种方法的结果会比较模糊。我可能会用指标越过 零点的条形图来代替零点以上的指标。

我计划在此基础上制作一个指标,其中的交易将是虚拟的,看看它会显示什么。也许可以看到一些重要的极值。

 
我想知道,因为贝叶斯公式允许你根据另一个相关事件的概率来计算一个事件的概率,而指标(至少文章中给出的指标)是相同的价格,只不过是从侧面看。也就是说,这不就是试图根据三明治落在地板上的哪一面来计算三明治向下掉落的概率吗?
 
fxsaber:

编程部分一如既往地达到了最高水平!由于理论准备不足,实践部分我几乎没听懂。

我试着用自己的话简单地复述一下:

1.假设有三个策略

  • 基于指标 A 的策略 Strat_A,交易获胜概率 P(Win|A) =0.63
  • 基于指标 B 的策略 Strat_B,交易获胜概率 P(Win|B) =0.58
  • 基于指标 C 的策略 Strat_C,获胜概率 P(Win|C) =0.57

2.所有三个指标 A、B 和 C 互不相关,即它们发出的入市信号互不相关。

需要计算 Start_ABC 策略的理论获胜交易百分比,在该策略中,只有当三个指标同时显示同方向入市时才会入市。

那么 P(Win|ABC) = P(Win|A)* P(Win|B)* P(Win|C) /[ P(Win|A)* P(Win|B)* P(Win|C) - (1 - P(Win|A))*(1 - P(Win|B))*(1 - P(Win|C)))]


对吧,@Stanislav Korotky

 
Rashid Umarov:

我试着用自己的语言更简单地复述一下:

对吧,@Stanislav Korotky

是的,我就是这么说的;-)

 
Stanislav Korotky:

是的,这几乎就是我要说的;-)

那么另一篇文章的主题就是--如何自动找到相互独立的指标?

然后,我们几乎就有了一个简单的 "KnowHow",可以从任何指标集合中创建机器人。此外,您还可以通过MQL5 向导 在基本算法中添加追踪、mani-management 等功能。