記事「インディケーター情報の測定」についてのディスカッション

 

新しい記事「インディケーター情報の測定」はパブリッシュされました:

機械学習は、ストラテジー開発の手法として注目されています。これまで、収益性と予測精度の最大化が重視される一方で、予測モデル構築のためのデータ処理の重要性はあまり注目されてきませんでした。この記事では、Timothy Masters著の書籍「Testing and Tuning Market Trading Systems」に記載されているように、予測モデル構築に使用するインディケーターの適切性を評価するために、エントロピーの概念を使用することについて考察しています。

例として、上記で分析した2つのインディケーターについて、統計的な性質を調べてみます。

ウィリアムパーセンテージレンジ

ウィリアムパーセンテージレンジの分布を見ると、ほとんどすべての値が全範囲に広がっており、マルチモーダルであることを除けば、分布はかなり均一であることがわかります。このような分布は理想的であり、エントロピー値にも反映されます。

Market Facilitation Index
これは、マーケットファシリテーションインデックスの分布がロングテールであるのとは対照的です。このようなインディケーターは、ほとんどの学習アルゴリズムにとって問題があり、値の変換が必要です。値を変換することで、インディケーターの相対エントロピーを向上させることができるはずです。

作者: Francis Dube

 
MetaQuotes:

Measuring(指標の情報性の測定)という記事が掲載されました:

著者:フランシス・ドゥベ

なぜこんなに文字数が多いのか?著者は何か価値のある指標を見つけたのだろうか?つまり、彼は生地のために何かを見つけましたか?ポイントは単純である - 高確率で利益を上げるお金のためのツールはありますか?それとも、ルーレットのように、儲かるか儲からないかは同じなのだろうか。
何百万人ものユーザー、何百万人ものストラテジスト、取引の何年も何年も、市場はまだ新しいKlondikerから崩壊していない。彼らは価値のあるオプションを持って来なかったように、彼らは自分自身のように、もたらすことはありません - セルフピック。著者は聖杯を掘り起こしたか、それは学術であり、著者はデポの成長を保証するものではありません?へー
 
この記事はスーパーだ! こういうジャンルこそ、MQl5に欠けているものだ。ありがとう
 

この話題を取り上げていただきありがとうございます。

記事の2つの部分を引用し、やや矛盾した情報についてコメントをお願いします:

"

連続変数にエントロピー方程式を適用するには、指標値を離散化しなければならない。これは、値の範囲を 等しい大きさの区間に分割し、各区間内に入る値の数を数えることによって行われる。この方法を用いると、すべての指標値の最大範囲を列挙した元の集合は、それぞれが選択された区間を表す部分集合に置き換えられる。

...

区間 - サンプリングする区間数。TTMTSの著者は、数千のサンプル・サイズに対して20の区間を指定しており、2がハードな最小値です。私は、サンプルサイズに対して区間数を変化させる機能を実装することで、適切な値に対する独自のアプローチを追加しました。このオプションは、ユーザーが2より小さい値を入力した場合に利用可能です。したがって、Intervalを2より小さい値に設定することで、分析されるバーの数に応じて使用されるインターバルの数が変わります。

"

質問、これは同じことですか?もしそうなら、なぜ指標値範囲の区切り線の数がバーの数に依存するのでしょうか?ここのロジックは何ですか?今のところ、累積的な要素を持つインジケーターにのみ有効であると推測できます。

そうでない場合、レンジの区切り線の数は何に相当するのでしょうか?


この記事には、指標値を変換することの利点を明確に示す表がありません。

 
MetaQuotes:

新しい記事「Measuring Indicator Information」が掲載されました:

著者フランシス・ドゥベ

こんにちは、フランシス

EntrophyAnalysisのカスタムインジケータのテスト方法を詳しく教えてください。

以下のように使用しようとしています:

input ENUM_TIMEFRAMES Timeframe=PERIOD_H1;

input ENUM_INDICATOR IndicatorType=IND_CUSTOM;

input string CustomIndicatorName="Indicators";

input bool UseDefaults=true;

input string IndicatorParameterTypes="int,CENUM_APPLIED_PRICE";

入力文字列 IndicatorParameterValues="34,priceHA_WEIGHTED";

と入力すると、以下のようなエラーが発生します

2025.03.26 19:53:11.282 EntropyIndicatorAnalysis (XAUUSD,H1) カスタムインジケータ 'IndicatorsNKGold\Regression\iNonLinRegress.ex5' cannot load [4802].

2025.03.26 19:53:11.282 EntropyIndicatorAnalysis (XAUUSD,H1) Invalid indicator handle, error code:4802


 
Ivbmw #:
なぜこんなに文字数が多いのか?著者は有効な指標を見つけたのだろうか?言い換えれば、彼はお金になる何かを見つけたのだろうか?疑問は単純だ。高確率で儲かるツールはあるのだろうか?それとも、ルーレットのように、すべて同じなのだろうか。
何百万人というユーザー、何百万人というストラテジスト、何年も何年もトレードを続けているにもかかわらず、新しいクロンディカーのせいで市場が崩壊することはない。彼らは有効な選択肢を持ち合わせていないため、彼ら自身と同様、セルフピックも持ち合わせていない。著者は聖杯を発掘したのだろうか、それともこれは学術的なもので、著者はデポの成長を保証しないのだろうか?へー

この記事は、紙幣を確実に印刷する聖杯を発見したとは主張していない。その目的はもっと控えめで、ある指標が学習モデルにもたらす情報の豊かさを測定する方法を 示すことである。

  • エントロピーのスコアが高いということは、その変数が自明でない(アルゴリズムが学習するのに十分な変化がある)ことを意味するだけである。方向性、タイミング、勝率の高い資金運用を保証するものではありません。

  • 情報量の多いインジケータであっても、選択したホライズンにおいて市場がすでに効率的である場合、取引コストがシグナルを吸収してしまう場合、あるいはモデルの設計が不十分である場合には、予測不可能であることが判明する可能性があります。

  • 実際には、優れたエントロピーを持つ指標の選択、厳密なアウト・オブ・サンプル・テスト、リスク管理、ロバストな執行、リアルタイムのモニタリングなど、多くの構成要素が積み重ねられる。これらのステップをすべて組み合わせることで、初めて小さなエッジを達成することができる。

  • 著者は学術的な診断ツールを提供している。成功を保証するものではない。自分の特徴を洗練させるために使ったり、逆にお気に入りのインジケーターが何も新しいものを加えていないことに気づくために使ったりするのは自由である。

要するに、エントロピーは温度計で あり、万能薬ではない。エントロピーのおかげで、枯れた変数や十分に活用されていない変数を素早く見つけることができる。戦略やリスクコントロールの代わりにはならない。

 
Aleksey Vyazmikin 値の範囲を 同じ大きさの区間に分割し、各区間内の値の数を数える。この方法を用いると、すべての指標値の最大範囲をリストした初期集合が、選択された各区間を表す部分集合に置き換えられます。

...

Intervals - サンプリングする区間数。TTMTSの著者は、数千人のサンプルに対して20区間を指定しており、2区間が絶対最小です。私は、標本サイズに関連して区間数を変化させる機能を実装することによって、適切な値への私自身のアプローチを追加しました。このオプションは、ユーザーが2より小さい値を入力した場合に利用できます。したがって、Intervalを2より小さい値に設定することで、分析されたバーの数に応じて使用される区間数が変わります。

"

質問:これは同じことですか?もしそうなら、なぜ指標値の範囲内の区切り線の数が棒グラフの数に依存するのでしょうか?この背後にあるロジックは何ですか?今のところ、これは累積的な要素を持つインジケータに有効であるとしか考えられません。

そうでない場合、範囲内の区切り線の数は何に対応するのでしょうか?


この記事には、指標値を変換することの利点を明確に示す表が欠けている。

連続 変数のエントロピーを推定するには、値の範囲を等しい区間に分割して、各区間でのオブザベーションをカウントします。スクリプトは、区間の 数を選択できます。< 2(またはデフォルト値のまま)を入力すると、スクリプトはそれ自身のヒューリスティックを起動します:1,000オブザベーションあたり51区間、つまり標本サイズに比例する数です。2より大きい値を入力すると、それをそのまま使うので、これらは競合する2つの手法ではありません。1つはコンセプトを 説明し、もう1つは、自分でパラメータを 設定しないときに、コードがどのようにパラメータを選択するかを 説明します。


区間が少なすぎると、人為的に値をくっつけてしまう。エントロピーは過小評価される(バイアス)。小さな標本に対して区間が多すぎると、空のビンや1オブザベーションのビンが多くなります。ヒストグラムには,いくつかの自動ルールが存在する:Sturges, square root, Freedman-Diaconis, Scott など).それらはすべて同じアイデアを持っています:より多くのデータがあるときに解像度を上げること。


1,000本の棒グラフの場合、分布が一様であれば、51区間 => 1ビンあたり20ポイント。この比率(15~30オブザーブ/クラス)は、著者が文献から引用した古典的な妥協点である。これは指標が累積的であるかどうかとは関係ありません。ロジックは純粋に統計的なものである。グリッドの精巧さは、利用可能な情報量に適応している。


ヒストグラムの縦棒の数が多ければ多いほど :
  • インジケータの細かい分布がより見やすくなります、

  • エントロピーの計算がより詳細(山と谷)を捉えることができます、

  • しかし、これらの頻度が安定するためには、より多くのデータが必要です。


しかし、これらの頻度が安定するためには、より多くのデータが必要です。 例えば、変換前と変換後の同じインジケータのエントロピーを示すことができれば、この記事は有益であったことは事実です。 しかし、デモンストレーションは自分で簡単にできます。スクリプトのApplyTransform=trueにチェックを入れ、before/afterの二重出力を読むだけです。このコードでは、誰もが自分の資産と水平線をテストできるように、この部分を意図的にインタラクティブにしてあります。

 
niouininon #:
ヒストグラムの縦棒が多いほど
  • 指数の微妙な分布がより顕著になる、

  • エントロピーの計算がより詳細(山と谷)を捉えることができる、

  • しかし、これらの度数を安定させるためには、より多くのデータが必要となる。

私の理解では、ヒストグラムを通してサンプル中の指標スコアを視覚化することは、著者のデータ変換方法とは何の関係もありません。そうだろうか?

それよりも、これらの変換の学習効果に興味があります。ニューラルネットワークの場合は想定できますが、樹木法の場合は想定できません。

 
Aleksey Vyazmikin #:

私の理解が正しければ、ヒストグラムを使ったサンプルの指標スコアの視覚化は、著者のデータ変換方法とは何の関係もありません。そうでしょうか?

それよりも、これらの変換が及ぼす影響に興味があります。ニューラル・ネットワークの場合は想定できますが、樹木法の場合は想定できません。

スクリプトが描くヒストグラムは、単に視覚的な診断ツールです。これは、変換前または変換後のサンプルにおいて、指標の値がどのように分布しているかを示すものです。関数sqrt、log、tanhなどはデータに作用します。ヒストグラムは、単に結果を表示します。したがって、2つの段階は独立している。まず、系列が変換され(または変換されず)、次にそのヒストグラムが描かれ、エントロピーが変化したかどうかを確認します。

単調になった指標(log、sqrt)を変換しても、スコアは変わらないことが多い。一方、非単調変換(飽和するtanh)は、特定の点の順序を変える。これは、ある種の変換が、非線形相互作用を生み出すための素地をよりよく準備することを意味する。

 
niouininon #:

スクリプトが作成するヒストグラムは、単なる視覚的な診断ツールです。これは、変換前または変換後の標本において、指標値がどのように分布しているかを示します。関数sqrt、log、tanhなどはデータに影響を与えます。ヒストグラムは、単に結果を表示します。したがって、2つのステップは独立しています。まず系列を変換し(または変換せず)、次にそのヒストグラムをプロットしてエントロピーが変化したかどうかを確認します。

よし、これで要点はわかった。私はもともと別のことを考えていました。

niouininon#

かなり単調になった指数(log、sqrt)を変換しても、結果が変わらないことがよくあります。一方、非単調変換(tanh、saturates)は、特定の点の順序を変更 します。これは、ある種の変換が、非線形相互作用を生み出すための素地をよりよく整えることを意味する。

点の順序はどのように変わるのですか?そのような変換の例を教えてください。これまでのところ、私は、固有値が昇順に並んだABCの点があり、変換後に昇順の順序が、代わりにBACになったという意味だと理解していました。

 
Aleksey Vyazmikin #:

わかったよ。僕はもともと別のことを考えていたんだ。

点の順番はどのように変わるのですか?そのような変換の例を教えてください。今のところ、昇順に固有値を持つ点ABCがあり、変換後に昇順が交互にBACになったと理解しています。

スクリプトの関数(root、log、tanhなど)はすべて単調増加です。これらはすべて点の順序を保持する。前の文章は曖昧だった。順序がABCからBACに変わるのは、非単調変換が使われた場合だけです。例えば、私の見間違いでなければ、関数 f(x)=∣x-50∣ は x= 50 を軸に折り返すので単調ではない。したがって、次数は BAC となる。この記事の著者は序文で、ティモシー・マスターズ著の「市場取引システムのテストと調整(TTMTS)」という本を紹介している。私もあなたと同じように、まだいくつか疑問があるので、この本を手に入れようと思っています。しかも、学習モデルやニューラルネットワークにはあまり詳しくない。どうやら、この本はオンライン販売サイトで簡単に手に入るようだ。というのも、この記事はどんなに興味深いものであっても、間違いなく不完全であり、またいずれにせよかなり合成的なものだからである。