English Русский 中文 Español Deutsch Português
preview
Rebuyのアルゴリズム:効率を上げるための数学モデル

Rebuyのアルゴリズム:効率を上げるための数学モデル

MetaTrader 5トレーディング | 19 7月 2023, 12:10
356 0
Evgeniy Ilin
Evgeniy Ilin

内容


はじめに

この取引手法は、様々なエキスパートアドバイザー(EA)で活発に使用されており、多くのバラエティやハイブリッドがあります。また、このようなシステムに関する言及が多いことから、このサイトだけでなく、他のどのWebリソースでも、この話題には非常に人気があることがわかります。どのバラエティにも、相場の動きに逆らって取引するという共通の概念があります。つまり、EAはRebuyを利用して、できるだけ安く買い、できるだけ高く売ることができるようにするのです。

これは、世界と同じように古い歴史を持つ古典的な取引方式です。以前の記事で、このトピックに部分的に触れながら、こうした手法をハイブリッド化する可能性を強調しました。今回は、フォーラムユーザーよりも深く掘り下げた概念で、より詳しく見ていきましょう。しかし、Rebuyアルゴリズムは、非常に興味深く便利な機能を強調するのに非常に適しているため、この記事はより一般的ではるかに広いものになります。


平均化アルゴリズムに基づく取引特性の精緻化手法

ドローダウンから脱出したい(「my EA makes good money, but sometimes blows up the entire account」の著者から)

これは、多くのアルゴリズムトレーダーや手動トレーダーに共通する問題です。この記事を書いているとき、そのような方と会話をしたのですが、私の主張をまるっきり理解してもらえませんでした。悲しいかな、彼はこのような状況の滑稽さを理解する可能性はほとんどないと思われます。もし、同じような質問を年上の経験豊富な自分にすることができたら、その答えも理解できない可能性が高いからです。自分に本当の答えを出すと、どんな気持ちになるのかもわかっています。恥をかかされている、あるいはアルゴリズム取引にこれ以上関わらないように説得されているのだと思うでしょう。

実際は、物事は遥かにシンプルなものばかりです。ただ、ある道を歩き、知恵をつけるという忍耐力があった、といえばいいでしょうか。これは理想論や自画自賛ではなく、必要最低限なことです。この道が数週間、数ヶ月ではなく、何年もかかったのは残念です。

ここには夢と自己欺瞞の世界が広がっていて、正直なところ、私は一部の人たちの単純さにはもう飽き飽きし始めています。くだらないことをして、自分こそが市場の王だと思い込むのはやめてください。それよりも、経験者に予算に応じたEAを選んでもらいましょう。そうすれば、正気を保てるのはもちろんのこと、時間もお金も大幅に節約できるはずです。その中の一人がこの記事を書いています。その証明は以下に示す通りです。

平均化アルゴリズムに関する一般的な考え

Rebuyのアルゴリズム、つまり「平均化」を見てみると、まずこのシステムには損失のリスクがないように思えるかもしれません。私にはそのようなトリックを知らない時期もあり、その時はどんなスプレッドにも勝る巨大な数学的期待値に驚かされたものです。これが単なる幻想であることは今では明らかですが、それでも、この方法には合理的な部分があります。これについては後で詳しく説明します。そもそも、このようなシステムを客観的に評価するためには、利益の拡大という単純なイメージだけでなく、もう少し間接的なパラメータを知る必要があります。

ストラテジーテスターのレポートにある最も関連性の高いパラメータは、残高曲線が素晴らしく見えるにもかかわらず、システムが明らかに負けていることを理解するのに役立つことさえあります。もうお分かりかもしれませんが、本当に大事なのは収益性曲線なのです。実際、取引システムの重要な指標はすべて、最初の、そして最も基本的な数学的特性に対して二次的なものであり、それはもちろん、数学的期待値とその主要な特性です。しかし、数学的期待値はとても柔軟な値であるため、常に希望的観測の罠にはまる可能性があることは留意しておく必要があります。

実際、数学的期待値という概念を正しく使うためには、まず、これが確率論の用語であることを理解し、この量の計算は、次のような確率論のルールに従っておこなわれなければなりません。

  • 計算の精度は、分析したサンプルが大きいほど高くなるが、理想的には無限のサンプルから正確な値を算出することができる
  • 無限大をいくつかの部分に分割すると、いくつかの無限大が得られる

自由に使える実際の相場のサンプルが限られているのであれば、ある戦略の正確な数学的期待値を計算する方法を考える人がいるかもしれません。そして、なぜこのような無限大が全く必要ないのかと、誰かが考えるでしょう。数学的期待値など、ある平均値の推定はすべて、その計算がなされた領域でのみ重みを持ち、別の領域にはまったく関係ないということです。どんな数学的特性も、それが計算された場所でのみ重みがあります。とはいえ、特定の戦略の収益性の特性を洗練させるために、いくつかの手法を区別することができ、それによって必要なパラメータの真の値に最も近い値を得ることが可能になるでしょう。

これは、私たちの課題に直結しています。無限大に長い戦略の未来を見通すことができないことを理解した上で、それ自体がすでに完全にナンセンスに聞こえます。とはいえ、これは数学的事実であり、真の数学的特性を計算するための必要十分条件です。そこで、限られたサンプルで計算した数値を、無限のサンプルで計算した数値に近づけるにはどうしたらいいかという発想に至ります。数学に詳しい人なら、無限和を計算するために応用できる数学の概念が2つあることをご存知でしょう。

  • 積分
  • 無限級数の和

積分や級数の和を計算するためには、積分を計算する関数のすべての点を積分範囲内で求めるか、級数内の数列のすべての要素を求める必要があることは、誰の目にも明らかであると思います。積分しようとする関数の適切な数式と、級数の要素を生成するための数式を得るという、最も完璧な選択肢がまだあります。多くの場合、適切な数式があれば、完全積分や級数和の正確な式が得られますが、実際の取引の場合、微分積分を適用することはできず、一般的にはあまり役に立ちません。ただし、理解しておくことは重要です。

以上のことから、システムを直接評価するためには、ストラテジーテスターで得られる限られたサンプルと特定のパラメータしかないという結論に達しました。実際、その意義は大きく誇張されています。ストラテジーテスターのパラメータを使って特定の戦略の収益性を判断することは可能なのか、このパラメータは明確な答えを出すのに十分なのか、そして最も重要なことに、このパラメータをどう正しく使うのか、本当に正しく使っているのか、という疑問が生じます。

さらに、戦略ごとに、その戦略の本当の収益性や安全性を正しく評価するためのパラメータが全く異なることを理解する必要があります。これは、利益曲線の評価に直結します。これを理解するために、まず、Rebuyアルゴリズムを使用したときに得られる取引曲線のおおよその全体像を描いてみましょう。

図1

製品1によるRebuys

まずは、1つの製品に対するRebuyの実施からです。このアルゴリズムを正しく実行すれば、いずれにせよ取引はサイクルで構成されることになります。理想的には、すべてのサイクルがプラスであるべきです。サイクルがマイナスゾーンでクローズした場合、アルゴリズムの実装が誤っているか、あるいは、もはや純粋なアルゴリズムではなく、すでに修正が加えられているかのどちらかです。しかし、ここでは古典的なRebuyを考えてみます。古典的なRebuyを示すために、取引曲線の特徴的なパラメータを定義してみましょう。

  • 残高曲線は成長するものでなければならず、N個のサイクルから構成される
  • すべてのサイクルで利益がプラスになる
  • 取引が途切れると、最後の不完全なサイクルに陥る可能性が高い
  • 不完全なサイクルでは収益性がマイナスになる
  • サイクルには、資金面で特徴的なドローダウンがある

曲線の見た目からして、このようなシステムが儲かることは一目瞭然のように思えますが、すべてがそう単純なわけではありません。特にスタート地点より下でクローズした、最後の未完成の取引サイクルを見てみると、運良くサイクルの成功の完了を待つことになる場合もありますが、最後まで待たずに大きな損失に直面したり、預金が完全に吹き飛んだりすることもあることがわかります。なぜこうなったのでしょうか。問題は、このイメージが、資金によるドローダウン額の絶対値が制限されており、その結果、このドローダウンに費やされる時間も制限されているはずであるという誤った印象を与える可能性があるということです。

実際には、テストエリアが長ければ長いほど、平均ドローダウンエリアも長くなります。ここには全く制限がありません。限度額は、預かり金と資金管理の質のみに存在します。しかし、この原則に基づいてシステムを設定する有能な方法は、最終的に吹き飛ぶまでの預金の寿命を延ばすか、せいぜいわずかな利益を上げることにつながるだけです。

Rebuy(平均化)アルゴリズムに基づくシステムをテストする場合、その生存率、信頼性、実際の収益性を正しく評価するためには、特別なテスト構造を遵守する必要があります。つまり、「正常な」戦略をテストする場合、ストラテジーテスターのテスト全体の利益は「正常に」分布する値に非常に近いという単純な理由から、この方法では1回のテストの価値が最小化されるということです。つまり、どんな平均戦略でも、長時間ポジションを持たずにテストすると、儲かるテストエリアと儲からないテストエリアがほぼ同数になり、その戦略が不安定であることや、その戦略が市場を正しく理解し履歴全体に対して機能していることを非常に早く知ることができるのです。

Rebuy戦略を扱う場合、この分布は強く変形する可能性があります。なぜなら、このシステムを正しくテストするためには、可能な限り最大の保証金を設定する必要があるからです。また、テスト結果はテスト区間の長さに大きく左右されます。実際、この方法では、すべての取引は取引サイクルに基づいており、このシステムの各独自の設定は、平均ドローダウンの全く異なるパラメータとそれに関連するドローダウンの平均期間のパラメータの両方を持つことができます。これらの指標によって、短すぎるテスト区間は、高すぎるテスト結果や低すぎるテスト結果を示すことがあります。このようなテストがほとんど行われていないことが、多くの場合、システムの動作に対する過信の原因になっていると考えられます。

Rebuyシステムをより正確に評価するための微妙な工夫


それでは、取引システムの既知のパラメータを適用しながら、Rebuyアルゴリズムを使用したシステムの性能を正しく評価する方法を学びましょう。まず、このような評価では、リカバリーファクターという1つの特性で判断することをお勧めします。計算のしかたを考えましょう。

  • リカバリーファクター=総利益÷最大エクイティドローダウン額
  • 利益総額:取引エリアごとの利益総額
  • 最大エクイティドローダウン:バランスとエクイティの前回のジョイントポイント(バランスピーク)に対するエクイティの最大ドローダウン

見てわかるように、これは最終的な利益を資金の最大ドローダウンで割ったものです。古典的な意味でのこの指標の数学的な意味は、考え方によれば、システムが株式によってドローダウンを回復する能力を示すべきであるということです。このような特性を利用した場合の取引システムの収益性の境界条件は、次の事実です。

  • リカバリーファクター>1

分かりやすい言葉に置き換えると、「利益を出すためには、入金額と同額以上のリスクを取らない」ということになります。このパラメータは、多くの場合、特定のシステムの取引品質を正確に評価することができます。しかし、この値は数学的な意味においてかなり議論のある値であるため、十分に注意して使用してください。

しかし、このパラメータは非常に恣意的であり、数学的な意義も非常に低いことを理解していただくために、その欠点をすべて明らかにする必要があります。もちろん、何かを批判するのであれば、その代替案を提示せよということかもしれません。確かにそうするつもりですが、このパラメータを分析するのが先です。このパラメータは最大ドローダウンと結びついており、ひいては取引曲線のどの点とも結びついているため、このドローダウンを開始残高に対して再計算して最大ドローダウンに置き換えると、ほとんどの場合、リカバリーファクターが過大に見積もられることになります。適切に形式化しましょう。

  • リカバリーファクターのバリエーション1=総利益/開始時からの最大エクイティドローダウン
  • 開始時からの最大エクイティドローダウン:開始時残高から(前回の最大値からではない)の最大ドローダウン

もちろん、これは古典的なリカバリーファクターではありませんが、本質的に、一般に受け入れられている境界条件と比較して、実ははるかに正しく収益性を判断することができます。まず、この指標の計算方法について、古典的な方法と私の方法の両方を視覚的に表現してみましょう。 

図2

リカバリーファクターバリエーション

最初のケースでは、このパラメータはより高い値をとることがわかりますが、これはもちろん、私たちが望むことです。しかし、収益性の評価という観点からは、2つの方法が考えられます。古典的なパラメータは、テスト区間の期間をできるだけ長く取った方が良いという方法に適応しています。この場合、MaxEquityDrawdown値を大きくすることで、このドローダウンが取引曲線の最初から始まるわけではないという事実を補い、ほとんどの場合、このパラメータは真の推定値に近くなります。複数のバックテストを評価する場合、私のパラメータの方が効率的です。

つまり、このパラメータは、戦略のテストを重ねれば重ねるほど、精度が上がっていくのです。戦略のテストは、できるだけ多くの異なる領域でおこなう必要があります。つまり、始点と終点は最大限のばらつきがあるものを選ぶ必要があります。正しく評価するためには、最も異なるエリアを「N」個選んでテストし、すべてのテストエリアについてこの指標の算術平均を算出する必要があります。このルールにより、私のものと古典的なものの両方のバージョンのリカバリーファクターを改良することができます。唯一の修正点は、古典的なものを改良するために、より少ない独立したバックテストを実行する必要があることです。

とはいえ、こうしたパラメータを明確にするための操作は少ないといえば少ないのでしょう。誰でも同様のパラメータを独自に考案することができ、さらにMetaTraderのバックテスト用の計算特性の1つとして追加することができることを示すために、私自身のバージョンのリカバリーファクターを実証しました。しかし、これらのパラメータには数学的な証明があらず、さらに、これらのパラメータのどれもに独自のエラーと適用限界があります。このことは、現時点では、Rebuyを使用するアルゴリズムの1つまたは別のアルゴリズムを絶対的に正確に評価するための正確な数学的指標が存在しないことを意味するものです。しかし、私のパラメータは、各種テストの回数を増やすと、絶対精度が上がる傾向にあります。詳しくは次章でお伝えします。


収益性を深く、普遍的に理解する

普遍的な評価


ストラテジーテスターのレポートや売買シグナルの特徴に、利益の数学的期待値やプロフィットファクターといったパラメータがあることは皆さんご存知だと思いますが、これらの特徴が、取引の分析が十分でない取引システムの収益性を計算するのにも使えるということは、誰も教えてくれなかったと思います。「ポジション」の単位を「期間上のテスト」に置き換えることで、これらのパラメータを使用することができます。この指標を算出する際には、内部の構造を考慮しない独立したテストを何度もおこなう必要があります。この方法では、最も人気のある2つのパラメータだけを使用して、取引システムの実際の見込みを評価することができます。さらに、複数回のテストという非常に有用な習慣を植え付けることができます。この方法を使うためには、次の式さえ知っていればよいのです。

数学の待ち時間

ここで

  • M:ペイオフ期待値
  • Wp:望ましい利益
  • 投資額:必要な利益を得るためにいくら投資するか
  • P:利益が達成されるまで十分な投資ができる確率
  • (1-P):利益が出るまで十分な投資ができない確率(預金損失)

以下は、プロフィットファクターに関する同様の式です。

プロフィットファクター

知っておくべきことは、ランダム取引で、スプレッド、手数料、スワップ、スリッページなどの障害がない場合、これらの変数は、どんな取引システムでも常に以下の値を取るということです。

  • M=0
  • Pf=1
  • これらの特性は、予兆があった場合にのみ、自分の方向に変化させることができます。したがって、保証金を失うことなく利益を上げる確率は、以下の値をとることになります。

    利益確率

    この式を確率に置き換えて式にすると、私が提示したような恒等式が得られます。スプレッド、手数料、スワップを考慮すると、以下のようになります。

    確率補正1

    スプレッド、手数料、スワップによって最終的な確率が下がり、最終的にIDの有効性が失われてしまうのです。代わりに次の不等式が現れます。

    • M < 0
    • Pf < 1

    これは、どんな取引システムでも絶対にそうでしょうし、ここでのRebuyアルゴリズムが他のシステムよりも優れているわけでは絶対にありません。このようなシステムのテストや運用の際には、シグナルやバックテストの最終利益のランダム値の分布関数を強く変形させることができますが、通常、このシナリオは短期間のテストや運用で最も頻繁に発生します。

    理由は、短い区間でテストすれば、大きなドローダウンに遭遇する確率はぐっと低くなるということです。しかし、このテストを長い期間でおこなうようになると、今まで見えなかったものが見えてくるのが普通です。ただし、きっとほとんどの方が「これは事故だ」と安心し、危険な場所を何とか迂回すればいいのだと思います。短い期間で複数回のテストをおこなう場合も、概ね同様となります。

    どんなシステムでも、採算度外視を克服する方法は1つしかありません。確率の計算式に、さらに要素を追加してみましょう。

    確率補正2

    式中に新しい成分「dP(Prediction)」が出現しています。プラス記号がついていますが、これは、この成分だけがスプレッドや手数料、スワップの影響を補うことができるということを示すために、あえてつけたものです。つまり、悪影響を克服して利益に到達するためには、まず十分な予測品質が必要です。

    ブレイクイーブンコンディション

    この特殊な不等式を提供する場合にのみ、目的の不等式を得ることができます。

    • M > 0
    • Pf > 1
    このように、これらの表現は非常にわかりやすく、その正しさを疑う人はいないのではないでしょうか。この方程式を使えば、次の小節を理解するのが簡単でしょう。実際、必要に応じていつでも記憶の中で復元できるように、それらを覚えておくこと、少なくともその論理を覚えておくことをアドバイスします。ここで重要なのは、その理解です。一般的にはこの方程式は1つで十分なのですが、例として2つ示した方が良いのではないかと思いました。その他のパラメータについては、このセクションの枠組みの中では冗長であると思います。

    クラリファイングメソッドの例


    この小節では、リカバリーファクターのより正しい値を得ることができるように、追加の洗練された操作を提供したいと思います。「図1」に戻って、番号のついた期間を見ることをお勧めします。リカバリーファクターを絞り込むには、これらの期間を独立したテストとしてイメージする必要があります。こうすることで、すでにこれらのテストをおこなったと仮定して、複数のテストなしで大丈夫になります。これが可能なのは、これらのセグメントは開始点と終了点の両方を持つサイクルであるため、これによりバックテストとの等価性が提供されるからです。 

    この章では、複数の製品を同時にテストしたり取引したりすることを考慮して、最初の画像に相当するものを補足することも必要だと考えています。複数の製品を並行して取引するRebuyアルゴリズムを使用すると、取引曲線はこのようになります。

    図3

    複数製品サイクル

    この曲線は、1つの製品で買い直した場合の曲線と構造が異なることがわかります。ここでは中間の青い点を追加しましたが、これはドローダウンの前に、「ドローダウンが逆になっている」期間がある可能性があることを意味します。 これをドローダウンと考えることはできないのが実情ですが、それにもかかわらず、これらの期間を分析の対象外とする権利は私たちにありません。そのため、サイクルの一部にする必要があります。

    新しいサイクルごとに、前のサイクルの終わりから延期する方が正しいと思います。この場合、前のサイクルの終わりは、エクイティの最後のドローダウンの回復点と考えるべきです。画像では、これらのサイクルを赤い点で区切っていますが、実はこのサイクルの定義では不十分です。また、株式によるドローダウンを修正するだけでは不十分で、現在のサイクルの開始時よりも低くすることが重要であると判断しています。そうでなければ、どのようなドローダウンなのでしょうか。

    これらのサイクルを強調した上で、それぞれを独立したテストとみなし、それぞれのリカバリーファクターを算出することができます。これは、次のようにおこなうことができます。

    平均リカバリーファクター

    この式では、残高曲線上の対応する点(区間の残高の最終値と初期値)を「B」とし、デルタは私たちのドローダウンを表しています。また、読者の皆さんには、最後の画像に戻っていただきたいと思います。上に挙げた理由から、その上に、通常のように青い始点からではなく各サイクルの赤い始点からのデルタをプロットしました。しかし、本来のリカバリーファクターを明確にする必要があるのであれば、青い点からデルタをプロットする必要があります。この場合、パラメータそのものよりも、パラメータを絞り込む方法が重要です。平均化動作として単純な算術平均がとられます。

    とはいえ、カスタムや古典的なパラメータを1つ2つ明らかにしても、この指標の値が1以上、あるいは2、3であることを、収益性の高い取引システムの兆候と受け止めるべきではないでしょう。

    複数のバックテストでも全く同じ式が適用されるはずです。この場合のバックテストは、いずれもサイクルと同等であることがポイントです。最初にサイクルの平均を計算し、すべての後に、バックテストに対する平均を計算することもできます。あるいは、テスト期間の時間を最大化することで、より簡単におこなうことができます。この方法は、サイクル数が最大になるため、少なくとも複数回のテストから解放され、平均リカバリーファクターをできるだけ正確に算出することができます。


    多角化でシステムの効率化を図る

    便利な制限

    バックテストのある種の特性を洗練させる可能性を検討した後、間違いなくより準備はできていますが、まだ主要なことを知らないのです。なぜ、このように複数のテストをおこなったり、サイクルに分けたりする必要があるのでしょうか。この質問は、私と同じくらい時間をかけて努力をしないと、本当に複雑です。悲しいかな、これは必要なことなのですが、私の助けを借りれば、その時間を大幅に短縮することができます。

    ここでは、特定のパラメータの客観性を評価することができます。理論的な説明と数式を使った説明の両方をおこなうようにします。まずは、一般的な方程式から説明します。

    一次因子極限

    同じような方程式を少し変えて考えてみましょう。

    一次因子極限v2

    これらの方程式の本質は同じです。これらの式は、収益性の高い取引システムにおいて、テスト区間の期間が無限大になるとき、残高と現在の利益線が完全に統合され、ある線が平均利益を表すことを示しています。多くの場合、このラインの性質は、私たちが選択した戦略によって決定されます。次の画像を見て、理解を深めましょう。

    図4

    線

    この画像を注意深く見ると、方程式に登場するすべての量が描かれていることがわかります。私たちの数学的な限界の幾何学的な意味を明らかにするものです。この方程式に欠けているのは、dTの時間間隔だけです。この間隔で、バランスステップを離散化し、これらの間隔のバランスと利益のための数列のすべてのポイントを生じさせ、同じポイントでミッドラインの値も計算します。これらの式は、次の文の数学的な等価物です。

    • 複数のテストや取引曲線を組み合わせれば組み合わせるほど、滑らかな上昇線のように見えます(システムが本当に利益を上げている場合のみ)。

    言い換えれば、どんな収益性の高い取引システムでも、ストラテジーテスターやシグナルのグラフィカルな部分では、私たちが選ぶテストエリアが長ければ長いほど美しく見えるということです。そんな指標を実現できるシステムはないと言う人もいるかもしれませんが、市場にはたくさんの事例があるので、それを否定するのは愚かなことです。すべてはアルゴリズムの普遍性と、市場物理をどれだけ理解しているかにかかっています。取引している市場に常に内在する数学を知っているならば、実際には、無限に成長する利益曲線を得ることができ、システムの有効性を確認するために全無限大を待つ必要はないのです。もちろん、これが非常に難しい課題であることは明らかですが、それでも多くのアルゴリズムの枠組みの中で、この課題は達成可能です。

    この理論的な紹介の最後に、受け取ったテクニックを正しく使う方法を学びましょう。限られたサンプルしかなく、それゆえ不完全な和も避けられないのに、どうやって無限和にこれらの技術を使うのかと思われるかもしれません。

    1. その答えは、歴史全体を分割して考えることにあります。
    2. 全履歴の中の1期間までテストする期間、長さが常に伸びている複数の期間を選択します
    3. テスト手法の選択
    4. 検証
    5. リカバリーファクターや相対的なドローダウンの改善を確認します

    このトリッキーなテストスキームの本質は、私たちの限界が本当にそれぞれ無限大とゼロの傾向にあることを間接的に示すサインを明らかにすることです。テストスキームの効率を上げるためには、少なくとも最長のテスト区間は最短のテスト区間よりも美しく見え、理想的には後続の各区間はより大きく、より美しく見えることが必要だと理解する必要があります。「より美しく」という概念は、実は私たちの限界と等価であることを、皆さんに明確にするためにのみ使っています。

    しかし、私たちの限界は、理論的な検討や準備(お好きなように)の間だけでいいのです。そこで、「眼球分析」に頼らず、どのようにこれらの事実を発見するのかが問題となります。ストラテジーテスターのレポートにあるパラメータに制限を適応させる必要があります。言い換えれば、私たちのテスト構造を使用できるように、いくつかのストラテジーテスターのレポートやシグナルのパラメータに代替の制限が必要です。必要かつ十分な代替制限のセットをご覧ください。

    代替の極限の組み合わせ

    ここで理解すべきこと:

    1. 無限テストの間、どんな有益な戦略のリカバリーファクターも無限大になる傾向がある
    2. 無限のテストの間、(収益性の高い戦略の)株式による相対的なドローダウンはゼロになる傾向がある
    3. 無限テストでは、あらゆる収益性の高いストラテジーの取引の利益率は、その平均値に傾き、有限の実限界を持つ
    4. 無限テストの間、自動ロットを有効にしない(固定ロットで)収益性の高い戦略の数学的期待値は、その平均値に傾き、有限の実質的限界を持つ

    これはすべて無限テストに関係していますが、有限サンプルに適応させる前に、これらの限界の数学的意味を理解しておくと役立ちます。これらの表現を私たちの方法論に適応させるためには、まず、いくつかのテスト期間を選択し、それぞれのテスト期間は前のテスト期間よりも著しく大きく、できれば少なくとも2倍は大きくしなければならないという事実から始めるべきです。これは、短時間のテストと長時間のテストの読み取りの違いを実感できるようにするために必要なことです。インデックスが増えるにつれて、その長さが時間的に長くなるようにテストに番号をつけると、有限サンプルの場合、次のような適応が得られます。

    アダプテーション

    つまり、リカバリーファクターが増加し、資金面での相対的なドローダウンが減少していることは、おそらく、テスト期間やシグナルの寿命をさらに長くすることで、この曲線が視覚的に美しくなることを間接的に示しているのです。つまり、私たちの無限の限界の成就を確認したことになります。それ以外の場合、利益曲線が直線にならない場合は、得られた結果がランダムに近く、将来的に損失を被る確率が極めて高いという事実を述べることができます。

    もちろん、「もっと頻繁に最適化すれば大丈夫」とおっしゃる方も多いでしょう。極めて稀なケースでは可能ですが、この方法では全く別のテスト方法が必要になります。なぜなら、この場合、数学がないのに対して、ここではすべてが明解に表現されているからです。

    これらのニュアンスから、Rebuyアルゴリズムのテストには、この方法を使うことがより必要であると確信できるはずです。特に、タスクを簡略化し、最大長期間ですぐにRebuyシステムをテストすることも可能です。この論理を逆手に取ることもできます。長い期間での取引パフォーマンスが気に入らなくても、短い期間でのパフォーマンスがさらに良くなれば、不平等性が満たされなくなり、現段階では取引に適したシステムではないことを示すことになります。

    複数製品の並行使用という観点で便利な機能


    限られた履歴の中でテストをおこなう場合、「テスト手法を正しく使うために十分な履歴があるのか」という疑問が必ず出てくるはずです。多くの場合、戦略には重みがあるが、快適に使うにはその質が高くないということです。そもそも、本当に予測できる始まりがあるのか、その近代化に取り組み始めることができるのか、少なくとも理解しておく必要があります。また、取引履歴が十分でない場合もあります。何をすべきでしょうか。小節のタイトルから判断して、すでに多くの人が推測しているように、この目的のために複数の製品を使用する必要があります。 

    当たり前の事実のように思えますが、残念ながらいつものようにどこにも算盤はありません。複数の製品でテストすることは本質的に、テスト期間を長くすることと同じです。唯一の修正は、システムが多通貨のものでなければならないということです。本システムでは、取引製品ごとに異なる設定をおこなうことができますが、すべての設定が同様であることが望ましいとされています。設定が似ていることは、システムが可能な限り多くの取引製品に作用する物理的原理を使用していることを表しています。

    この方法とそのようなテストの正しい実施により、指数「i」はすでに、固定されたテスト期間で同時にテストされた製品の数として理解されるべきものです。すると、その表現は次のような意味になります。

    1. 取引製品数を増やすと、製品数が多いほどリカバリーファクターが高くなる
    2. 取引製品数を増やすと、製品数が多いほど株式による相対的なドローダウンが小さくなる

    実際、テスト数の増加は、簡単には、各ツールの各テストを巨大な全体テストの一部とみなすように、テストの総時間が増加したと解釈することができます。この抽象化は、この方法も同じ力を発揮する理由を理解するのに役立つだけです。しかし、この問題をより正確に考え、なぜいくつかの1からなる線がより美しくなるのかをより深く理解するのであれば、確率論の次のような概念を用いるべきでしょう。

    • ランダム値
    • 確率変数の分散
    • 確率変数の数学的期待値
    • 確率変数の正規分布の法則

    なぜこのようなことが必要なのかを十分に説明するために、まずバックテストや売買シグナルを少し違った角度から見ることができるようなイメージが必要です。

    図5

    デルタ株式乱数分布

    ここで残高線を引かないのは、ここでは何も決めないからで、利益線だけが必要だからです。このイメージの意味は、各利益線に対して、一定の長さの独立した期間を無限に選択することができ、その中で利益線の増分の確率変数の分布法則を構築することができるということです。確率変数の存在は、将来、選択された領域の利益増分が、最も広い範囲で全く異なる値を持つ可能性があることを意味します。

    複雑なようで、実はすべてがシンプルなのです。正規分布法則という言葉を聞いたことがある人は多いと思います。自然界に存在するほとんどすべてのランダムなプロセスを記述すると言われています。私は、これは「考える」ことを妨げるために作られた幻想に過ぎないと思うのです。冗談はさておき、分布法則の人気の理由は、確率変数の数学的期待値に関して対称的な分布を記述するための人為的に編集された非常に便利な式であることです。さらに数学的な変換や実験に役立てることができるでしょう。

    しかし、この法則を扱う前に、確率変数の分布法則の主な性質を定義しておく必要があります。

    確率密度積分

    確率変数分布のいかなる法則も、本質的には非結合事象の全群のアナログです。ただ違うのは、このイベントの数が決まっているわけではなく、いつでもこのように興味のあるイベントを選択できることです。

    任意の非ジョイントイベント

    厳密には、この積分は、ある確率変数の指示された範囲にある確率を考えるものであり、当然、1より大きくなることはありません。与えられた事象空間からの総ての事象が1より大きい確率を持つことはありません。しかし、これは最も重要なことではありません。ここで重要なのは、この場合の事象は2つの数字のセットだけで決まるということを理解しておくことです。これらは、最小次元の確率変数の例です。

    ある事象がN*2個の数で決定されるようなN次元の場合、これらの方程式は類似しており、(多次元領域積分の枠内で)さらに複雑な構成が可能です。これらは数学の中でもかなり複雑な部類に入りますが、ここでは冗長です。ここで得られたすべての法則は、一次元の変形に対して自己充足的です。

    より複雑な構成に移る前に、乱数値分布法則の一般的なパラメータ特性を思い出してみましょう。

    標準偏差と分散

    これらの式のいずれかを定義するためには、最も重要なこと、すなわち確率変数の数学的期待値を決定する必要があります。私たちの場合、次のようになります。

    確率変数の数学的期待値


    数学的期待値は、単純に算術平均値です。数学者は、誰も何も理解できないように、単純なものにとても賢い名前をつけるのが好きです。2つの方程式を用意しました。両者の違いは、前者は有限個の確率変数(限られたデータ量)に対して機能し、後者は「確率密度」に対する積分を用いるという点だけです。

    積分は和に相当するもので、唯一の違いは、無限の確率変数を和にすることです。積分の下に位置する、確率変数の無限大全体を含む分布の法則。多少の違いはありますが、総じて本質は同じです。

    では、先ほどの式に戻りましょう。これらは、多くの数学者にとって便利な乱数分布の法則を使った操作に過ぎありません。前回の例と同様に、有限の確率変数の集合に対する実装と、無限の確率変数の集合に対する実装(確率変数分布の法則)の2つが存在します。「D」は、すべての確率変数と平均確率変数の差の平均二乗(確率変数の数学的期待値)であると書かれています。この値を「分散」と呼びます。この値の根を「標準偏差」と呼びます。

    確率変数の正規分布


    確率変数の数学で一般的に認められているのは、これらの値です。ランダムな分布法則の最も重要な特徴を記述するのに最も便利なものとされています。私はこの考えには賛成できませんが、それでも、どのように計算されているのか、お見せする義務があるのです。結局、これらの量は正規分布法則を理解するのに必要な量になります。簡単に見つかるとは思えませんが、正規分布則はわずかな目的で人為的に発明されたものであることをお伝えしておきます。

    • 数学的期待値に対称な分布法則を決定する簡単な方法
    • 分散と標準偏差を設定する機能
    • 数学的期待値を設定する機能

    これらのオプションにより、正規分布の法則と呼ばれる確率変数の分布の法則を表す既成の方程式を得ることができるのです。

    正規分布

    乱数分布の法則には、他にもバリエーションがあります。それぞれの実装は、ある範囲の問題に対して考案されたものであるが、正規法は最もポピュラーでよく知られているので、これを例にして、以下の記述の数学的等価性を証明し、まとめてみることにします。
    • 収益性の高いシステムで、より多くの製品を並行して取引すればするほど、収益グラフは美しく、直線的になる(分散投資の特殊な例)
    • テストや取引で選択した領域が長ければ長いほど、収益ググラフはより美しく、より直線的になる
    • 収益性が実証されたパラレル取引のシステムが多いほど、全体の収益性グラフは直線的で美しくなる
    • 上記の組み合わせが理想的な分散を生み、最も美しいチャートとなる

    これまで述べてきたことはすべて、数学的・実践的に収益性が証明された取引システムにのみ適用されます。まず、「より美しいグラフ」とはどういうものか、数学的な定義から説明しましょう。それを助けてくれるのが、すでに上で紹介した「標準偏差」の式です。

    同じ数学的期待値を持つ利益増の確率変数の分布密度曲線のファミリーがあり、それが時間的に同じ持続時間の2つの期間を象徴しているとすれば、実質的に同じグラフの2つについて、標準偏差が最小のものを選ぶことになります。このファミリーの完璧な曲線は、標準偏差がゼロのものである可能性があります。この曲線は、未来を知っている場合にのみ達成可能であり、それは不可能であるが、それでも、このファミリーの曲線を比較するためには、これを理解しなければなりません。。

    乱数値分布法則の枠組みにおける利益曲線の美しさ


    この事実は、選択された期間における利益増加の数学的期待値が同じであるような曲線のファミリーを扱っている場合には理解できますが、完全に任意の分布曲線を扱っている場合にはどうすればよいのでしょうか。どのように比較すればいいのかがわかりません。この点で、標準偏差はもはや完璧ではなく、スケーリングを考慮したより普遍的な別の比較値が必要であり、あるいは、これらの分布法則をある相対値に還元し、すべての分布が同じ数学的期待値を持ち、したがって、すべての曲線に古典的基準が適用されるアルゴリズムを考え出さなければなりません。そんなアルゴリズムを開発しました。その中のトリックのひとつに、次のような変換があります:

    第一変換

    これらの曲線のファミリーは次のようなものになります。

    図6

    スケーリング曲線のファミリー

    非常に興味深い事実は、正規分布の法則をこの変換にかけると、この変換に関して不変となり、次のようになることです。

    変換された正規の法則


    不変性は、以下の置き換えで構成されます。

    不変のための置き換え

    これらの置き換えを先ほどの式に代入すると、同じ分布法則が働き、対応する値にはアスタリスクが付きます。

    不変性

    この変換は、変換法則の不変性だけでなく、次のパラメータの不変性を確保するためにも必要です。

    相対的標準偏差

    このパラメータは私が考案したものです。他の法則と同様、正規分布法則を正しくスケーリングすることは、これなしには不可能です。このパラメータは、他の分布法則に対しても同様に不変です。実のところ、通常の法律の方が知覚しやすく、理解しやすいのです。その考え方は、異なる数学的期待値を持つあらゆる分布に使用でき、その本質は標準偏差に似ているが、比較するすべての分布が同じ数学的期待値でなければならないという要件がないだけである、というものです。結局、私たちの変換は、与えられたパラメータが同じ値を持つ分布のファミリーを得るために設計されていることがわかりました。なかなか便利そうでしょう。

    これが、いわゆるグラフの美しさを定義する方法の1つです。最小のパラメータを持つシステムが「最も美しい」のです。これはこれでいいのですが、このパラメータは別の目的で必要なのです。2つのシステムの美しさを比較するという課題を設定しました。独立して取引する2つのシステムがあるとします。そこで、これらのシステムを統合して、その効果があるのかどうかを把握することが目的であり、むしろ、次のようなことを期待しています。

    期待 

    これらの比率は、どのような分布法則を用いても観察されます。つまり、並行して取引されている製品やシステムの収益性が似ていれば、自動的に分散投資する意味があるのです。この事実を、少し違った形で証明していきます。先ほど申し上げたように、すべての分布を相対的にランダムな値に還元するアルゴリズムを思いついたのです。実際に使ってみますが、まずは2つの差分の和を表す確率変数の分布法則の枠内で、複数の線を合流させる一般的なプロセスを解析してみることにします。ペアで合体するための回帰的ロジックをおこないます。そのために、「n+1」本の曲線があると仮定し、それぞれの曲線が定義された数学的期待値を持つようにします。しかし、合体を象徴する確率変数にたどり着くためには、それを理解する必要があります。

    回帰的な変換ステップ

    実際には、これは数学的な意味を持たない再帰的な表現ですが、リストに存在するすべての確率変数を結合するロジックを示しています。簡単に言うと、「n+1」本の曲線があり、それを「n」回の連続した変換で組み合わせなければなりません。実はこれは、各ステップにおける全確率変数の分布則を、何らかの変換演算子を用いて求める必要があることを意味します。

    長々とした説明は省きます。その代わりに、私はこれらの変換演算子を示すだけで、読者が自分自身の結論を出すことができるようにします。これらの式は、選択された期間内に2つの利益曲線を合流させ、曲線の2つの期間の合計利益「dE1+dE2」がそれぞれ選択値「r」よりも低くなる確率(Pl)と高くなる確率(Pm) を算出します。

    変換積分

    ここで、これらの数量を実現するためには、2つの選択肢があります。どちらも全く同じようなものです。これらの値を計算すると、確率変数「r」の分布法則を求めることができ、これが回帰的結合の連鎖全体を計算するために必要なことです。確率変数の定義により、これらの式から対応する分布法則を次のように求めることができます。

    分配法則の取得

    お察しの通り、分配法則を得た後、再帰的な変換の連鎖の中で次のステップに進むことができます。この分布は、回帰的結合チェーンに使用した分布と比較することができます。得られた法則に基づいていくつかの分配を作成し、例として1つの結合ステップを実行して、各結合が「前よりも美しくなる」事実を実証してみましょう。

    図7

    プルーフ

    画像は、私たちの結合方程式を適用した数学的結合を示すものです。そこに示されていないのは、積分をランダムな結合値分布の法則に変換するための微分だけです。微分した結果はもう少し後に、より一般的な考え方の枠内で見ることになりますが、今は画像に写っているものを扱いましょう。

    赤い長方形に注目してください。ここではそれらが基本となっています。最小積分は、確率変数が数学的期待値より小さい値をとる確率を「Kx」で割った値を計算するように、元の分布法則に従って積分をとるというものです。上記では、2つの微妙に異なる分布の合体について、同様の積分を示しています。どのような場合でも、数学的期待値と積分の選択された境界値との間のこの比(Kx)を維持することが重要であり、これは対応する「Kx」で表現されます。 

    なお、上記で説明した式に従えば、結合オプションはどちらも表示されます。それに、まるで2つの似たような利益曲線を合体させるかのように、ベースとなる配分を自分自身で合体させるということもあります。類似とは、絵に描いたように同じという意味ではなく、選択された期間における利益曲線の増分の確率変数の分布法則が同じであることを意味します。その証拠に、結合する確率変数のオリジナルに対する相対的な偏差が小さくなる確率を発見しました。つまり、どのような合併でも、ランダムな利益値の増分をより「美しく」する法則を手に入れたことになります。もちろん、もっと深く掘り下げる必要がある例外もありますが、記事としてはこの方法で十分だと思います。これは非常に特殊な素材なので、どこを探してもこれ以上のものはないでしょう。

    美しさを比較する別の方法は、元の分布法則と上で考慮した再帰的連鎖の結果の両方を、すべて変換することです。これを実現するためには、スケーラブルな分布曲線のファミリーを得ることができた私たちの変換を使い、次のようにすればよいのです。

    相対確率変数への変換

    この変換のトリックは、この方法では、対応する変換を受けたすべての分布法則は、同じ数学的期待値を持つことになり、したがって、エキゾチックな基準を発明することなく、標準偏差だけを用いてその「美しさ」を評価することができるということです。2つの方法を紹介しました。ご自分に合ったものをお選びください。お察しの通り、このような相対曲線の分布法則はすべて次のようになります。

    相対的な確率変数

    この考え方は、拡張テストにも適用できます。ここでいう拡張テストとは、より長い期間でのテストを意味します。このアプリケーションは、「テストが長ければ長いほど、グラフは美しくなる」という事実を確認するためにのみ適しています。この証明に必要な唯一のコツは、テスト時間を長くする場合は整数の倍数でおこない、この数の倍数ではすでに1ステップではなく「n」ステップと考え、結合方程式を適用することを受け入れることです。この結合はさらにシンプルになり、再帰的結合チェーンには重複する要素が1つだけ含まれ、この要素だけで結果を比較することができるようになるためです。


    結論

    この記事では、Rebuyアルゴリズムそのものではなく、取引システムをより正確かつ効率的に評価するために必要な数式や方法を提供する、より重要なトピックを検討しました。さらに重要なのは、分散投資がどのような価値を持ち、何が効果的なのか、そして、自分が正しいことをしていることを知りながら、自然で健康的な方法で分散投資を増やす方法についてが、数学的に証明されることです。

    また、収益性の高いシステムのグラフは、使用する取引領域が長いほど美しく、さらに、収益性の高いシステムが1つの口座で同時に取引するほど美しくなることも証明しました。ここまでは、すべてが理論という形で組み立てられていますが、次回は応用編を考えてみます。簡単に言うと、価格シミュレーションと多通貨取引シミュレーションのための実用的な数学モデルを構築し、理論的な結論をすべて確認します。この理論はどこにも載っていない可能性が高いので、この数学を深く掘り下げるか、少なくともその本質を理解するようにしてください。

    MetaQuotes Ltdによってロシア語から翻訳されました。
    元の記事: https://www.mql5.com/ru/articles/12445

    MQL5における行列とベクトル:活性化関数 MQL5における行列とベクトル:活性化関数
    ここでは、機械学習の一側面である活性化関数についてのみ説明します。人工ニューラルネットワークでは、ニューロンの活性化関数は、入力シグナルまたは入力シグナルのセットの値に基づいて出力シグナル値を計算します。その内幕に迫ります。
    自動で動くEAを作る(第15回):自動化(VII) 自動で動くEAを作る(第15回):自動化(VII)
    自動化に関するこの連載を完結させるために、前回に引き続きトピックについて説明しましょう。EAを時計仕掛けのように動かすために、すべてがどのように組み合わされるかを見ていきます。
    MLモデルとストラテジーテスターの統合(第3回):CSVファイルの管理(II) MLモデルとストラテジーテスターの統合(第3回):CSVファイルの管理(II)
    この記事では、MQL5でCSVファイルを効率的に管理するクラスを作成するための完全ガイドを提供します。データを開き、読み書きし、変換するメソッドの実装を見ていきます。また、情報を保存しアクセスするためにこれらを使用する方法についても検討します。さらに、このようなクラスを使用する際の制限や最も重要な点についても説明します。MQL5でCSVファイルを処理する方法を学びたい人にとって、この記事は貴重なリソースとなるでしょう。
    自動で動くEAを作る(第14回):自動化(VI) 自動で動くEAを作る(第14回):自動化(VI)
    今回は、この連載で得た知識をすべて実践してみましょう。最終的には、100%自動化された機能的なシステムを構築します。しかしその前に、まだ最後の詳細を学ばなければなりません。