記事"一連の指標シグナルに対する単純ベイズ分類器"についてのディスカッション

 

新しい記事 一連の指標シグナルに対する単純ベイズ分類器 はパブリッシュされました:

本稿では、複数の独立した指標からのシグナルを使用して取引システムの信頼性を向上させるベイズの公式の適用を分析します。理論計算は、任意の指標で動作するように構成された単純な汎用EAで検証されます。

上記の公式は、分析されたランダムプロセスの独立性を前提としています。この場合でのプロセスは指標シグナルです。しかし、この条件は満たされているのでしょうか。

明らかに、標準指標の多くを含むいくつかの指標には共通点が多いです。図2は視覚的な例として組み込み指標のいくつかを示しています。

類似の標準指標グループ

図2 類似の標準指標グループ

作者: 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Ы わかる気がします。聖書は、言語がまだそれを許さなかったときに書かれたんだ。

その考えをはっきりさせてもいいですか?一般的に、このファイルは警告の数という点では最も重要ではありません。本当にきれいにできるものもあります。

もし私たちが特定の型を持つ関数について話しているのであれば、実際、私たちは常に1つのテンプレートにすべてを統一して記述したいのであって、異なる型を持つ変種をコピーしたいわけではありません。

 
Stanislav Korotky:

考えをはっきりさせてもいいですか?一般的に、このファイルは警告の点では最高ではない。いくつかのことは本当にきれいにすることができます。

もし私たちが特定の型を持つ関数について話しているのであれば、実際、私たちは常に1つのテンプレートにすべてを統一して記述したいのであって、異なる型を持つバリアントをコピーしたいわけではありません。

なぜテンプレートが必要なのでしょうか?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バーとするか、Expert Advisorで複数のオープンポジションを許可するか、または確率を収益性の高いものの割合ではなく、例えば、利益サイズのインジケータ値への依存性(プラスまたはマイナス)としてカウントする必要があります。
 
Stanislav Korotky:
しかし、このアプローチでは、取引時間を1小節にするか、Expert Advisorで複数のオープンポジションを許可するか、確率を利益率のパーセンテージではなく、例えば利益額の指標値依存性(プラスまたはマイナス)として計算するか、つまり確率密度に切り替える必要があります。


たしかに、この方法では結果はぼやけるだろう。ゼロ以上のインジケーターを、インジケーターが ゼロを超えたバーに置き換えることになるでしょう。

これに基づいてインジケータを作成し、その中のトレードをバーチャルなものにして、それが何を示すかを見るつもりです。もしかしたら、重要な極端値が表示されるかもしれません。

 
というのも、ベイズの公式は、ある事象の確率を、関連する別の事象の確率によって計算することができる。つまり、サンドイッチが床のどちらに落ちるかで、下に落ちる確率を計算しようとしているのではないだろうか?
 
fxsaber:

プログラミングの部分はいつものように最高レベルだ!実践的な部分は、理論的な準備が不十分だったため、ほとんど理解できなかった。

もっと簡単に自分の言葉で説明しよう:

1.3つのストラテジーがあるとする:

  • インジケーター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.3つの指標A、B、Cはすべて互いに相関がない、つまり、互いに独立して市場に参入するシグナルを出す。

3.Start_ABC戦略の理論的な勝率を計算する必要があり、この戦略では3つの指標すべてが同時に同じ方向へのエントリーを示した場合にのみマーケットエントリーが発生する。

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:

そう、私が言いたかったのはほとんどそのことだ。)

そして、別の記事のテーマである、互いに独立したインジケーターを自動的に見つけるには?

そうすれば、どんなインジケータ・コレクションからでもロボットを作るための簡単なノウハウができそうです。さらに、MQL5ウィザードを使って、基本的なアルゴリズムにトレーリングやマニファクチャリングなどを追加することができます。