これは、2人の個人間のゼロサムゲームにおいて、行プレイヤーのコストを最小にすることを考慮して最適な混合戦略を求める関数の元になっています(ペイオフ行列の値が正だと行プレイヤーの勝利、列プレイヤーの損失)。ソースコードは動作します。確認したところ、地雷はありませんでした。
public double[] getData(double[][] a) { int m = a. length; int n = a[0]. length; double[] p = new double[ m]; double[] q = new double[ n]; double[] x = new double[ m]; double[] y = new double[ n]; int r = rand. nextInt( m); int c = 0; for (int t = 0; t < 100; t++) { System. out. print("Progress: " + t + "% \r"); for (int u = 0; u < 10000; u++) { for (int j = 0; j < n; j++) { y[ j] = y[ j] + a[ r][ j]; } c = 0; for (int j = 1; j < n; j++) { if (( y[ j] == y[ c]) && rand. nextBoolean()) { c = j; } if ( y[ j] > y[ c]) { c = j; } } q[ c] = q[ c] + 1 d; for (int i = 0; i < m; i++) { x[ i] = x[ i] + a[ i][ c]; } r = 0; for (int i = 1; i < m; i++) { if (( x[ i] == x[ r]) && rand. nextBoolean()) { r = i; } if ( x[ i] < x[ r]) { r = i; } } p[ r] = p[ r] + 1 d; } } System. out. println("Progress: 100%"); for (int i = 0; i < n; i++) { q[ i] = q[ i] / 1000000 d; } double ep = 0 d; for (int i = 0; i < m; i++) { double result = 0; for (int j = 0; j < n; j++) { result = result + a[ i][ j] * q[ j] * p[ i] / 1000000 d; } ep = ep + result; } System. out. println("Expected Payoff = " + ep); return q; }
同じ市場の時系列のある部分にモデルを最大限近似させるという原理で市場モデルを構築しようとすると、誰でもトラブルに見舞われる。
反対するのは難しい。
セッションの開始からの個々のバー、および垂直のバー - セッション自体、すなわちカレンダーの日付 - 横のバーは、セッションの時間になります数字の配列の開始価格と同じ違いを記入してみましょう。こうして、支払い行列を得ることができた。それをプレイヤーに代わって列で解くと、どのタイミングで、どの程度の数量でロングポジションを取ればよいかという問題の解が得られる。前述したように、これは数学的期待値による最悪の事態の推定値、つまりゲームの価格となる。
素晴らしい次はもっと計算や微調整をしてみましょう。
マトリックスに要約された「15日相場」が最適な市場戦略であり、時系列の別の、しかし曲解された部分ではないと言うのは誰だけでしょうか。
自然は、申し訳ないが市場は、このマトリックスに従う必要はないのだから、なおさらだ...。
お尻と愛犬の詩を思い出す...。
ツチノコがやたらと肉を欲しがる。;)
要するに、庭師は新しい「オンザフライ最適化」チップを理解していなかったということだ。
従来のフィッティング手法との違いについて教えてください。
らしい。市場がこの最適な戦略を持っていると仮定すると。私は個人的には、自然が意味のある戦略を構築しない、自然と遊ぶという例えを好みます。
試してみました。フィットしない。自然」においては、いかなる種類の戦略も完全に存在しないことが故意に想定されているからだ。それは、まさにこの性質のために、多くの基準の中からどれかを選ぶことを残すだけであり、それは市場に近いものでもないことが判明するかもしれないのである。
だから、市場は好き勝手なことをする間抜けな「自然」ではなく、案外効率的だという意見に徹したほうがいい。だから、トレーダーをだまそうとすることを考慮して計算したほうがいいし、それが一番効果的だと思う。
私の友人(トレーダー)が言うように、私たちのビジネスでは、後悔するよりも安全である方が良いのです。
しかし、マトリックスにまとめられた「15日分の相場」が最適な市場戦略であり、次の、しかし変態的な時系列のセグメントではない、と誰が言うのだろうか。
ましてや、自然は、申し訳ないが、このマトリックスを守る義務はないのだ...。
...
従来のフィッティング方法、ファイヤーとの違いを説明する。
そのための追加適合試験の方法があります。例えば、フォワードテストについて。
私の仕事は、あくまでも応用方法の一つを示すことであり、この素材をどう使い、どうモデル化するかは個人の問題である。私の仕事は申し出ることで、あなたの仕事は断ることです。ですから、フィッティングを避けるための個人的な意見であれば、誰も使うことを禁じてはいないのです。そして、そうでない場合は、判断することはないはずです。
15日間のストーリーが気に入らなければ、もっと多くても少なくてもいいわけです。
だからこそ、市場は最善と思うように行動する間抜けな「自然」ではなく、人が思う以上に効率的であるという意見に徹したほうがいい。それゆえ、トレーダーを出し抜こうとする、最も効果的な方法をとるということを前提に計算したほうがいいのです。
それなら、現在のデータからトレーダーの集合の最適と思われる戦略を特定する問題を解決すべきかもしれない。そして、そのトレーダーに向かって、ことわざのように拮抗する市場戦略を見つける。
そして、「彼女に対する最適」がやってくるのです。;)
庭師の私は、特に「あの人は私が知っていることを知っている...」というタイプのゲームにはあまり詳しくないんです。
それなら、現在のデータに基づいて、トレーダーの集合の最適と思われる戦略を特定する問題を解決すべきかもしれない。 そして、この悪名高い拮抗する市場戦略を、トレーダーとの関係で見つける。
そして、私たちの「それに対する最適」がやってくるのです。;)
庭師の私は、特に「あの人は私が知っていることを知っている...」というタイプのゲームにはあまり詳しくないんです。
あなたは、自分の目的のためにどんなモデルでも使っていいと言われました。つまり、例外なくすべてのトレーダー+緊急介入モデル+中央銀行総裁の行動+政府の行動+...ということです。+ 地震 + 宇宙人の侵略の可能性の影響など、世界の鼓動に。つまり、もしあなたが本当に無限のコンピューティングリソースを持っていて、あらゆるものを計算できるのであれば、すべてのトレーダー以上のものをモデル化することを妨げるものは何でしょうか?
しかし、このスレッドはトピックスターが提案したモデルを議論するためのものであり、様々なナンセンス・ジェネレーターの異なるアイデアを議論するものではありません。
いつもいいアドバイザーがいて、みかんの中の豚のように何でも知っているんですね。
自分の好きなモデルを個人的に使用することができます。+ 宇宙人の侵略などの可能な影響から、脈拍を失うほど。
しかし、このスレッドはトピ主が提案したモデルを議論するためのものであり、いろんな雑談者がいろんなアイデアを出しているわけではないのです。
科学と数字のゲームに建設的であることに感謝します。
質問を削除しました。
光栄です。
念のため。
T-rader:)とB-time:)の2人のプレイヤーが、同時に、かつ互いに独立して、コインで表(G:売り、価格低下)と裏(P:買い、価格上昇)を選ぶゲームを行う。
2枚のコインをひっくり返した結果が同じ(つまりGHかRR)なら、プレイヤーTはプレイヤーBから1ドルもらう。
それ以外の場合、プレイヤーTはプレイヤーBに1ドル支払う。
プレイヤーTへの支払いに関する以下の行列は,戦略に対応する行の最小要素と列の最大要素の値を示している.
両者の
| 英国石油協会 |
| ||||
---|---|---|---|---|---|---|
TG | 1 | -1 | -1 | |||
長さ | -1 | 1 | -1 | |||
列の最大値 | 1 | 1 |
このゲームの最大値と最小値(価格)は、それぞれ1ドルと1ドルです。これらの値は互いに等しくないので、ゲーム
は純粋な戦略では解がない。
特に、プレイヤーTが戦略TGを使う場合、プレイヤーBはプレイヤーTから1ドルを得るために戦略BPを選択することになる。
この場合、プレイヤーTは戦略TPに切り替えてゲームの結果を変え、プレイヤーBから1ドルもらうことができる。
各プレイヤーが常に異なる戦略に切り替えたいという誘惑に駆られるのは、純粋な戦略解が受け入れられないことを示している。
その代わり、両プレイヤーはそれぞれの戦略を適切なランダムな組み合わせで使用しなければならない。
ムーラン E. 数理経済学の例によるゲーム理論。M:世界。
ただし、混合戦略の決定には、市場がどちらかの戦略を適用する確率があることが前提であることに留意する必要がある。
科学に建設的であることに感謝します。
質問を削除しました。
光栄です。
どういたしまして。いつでもヒラメの笛を吹かせていただきます。
どういたしまして。いつでもヒラメの笛を吹かせていただきます。
スコアありがとうございました。
ただ、面白ければいいんです。:)
その方法はいくつかあり、最も一般的なものは次の通りです。
1.線形計画法、すなわちSimplex法によるものである。この方法は、支払い行列に解がない場合、場合によっては支払い行列に鞍点がある場合、全く解がない場合に(実装によっては)詰まることがあり、あまり良いものではありません。
2. 反復法反復法の各ステップにおいて、支払い行列の潜在的な解の1つに収束することが達成される。ポイントは、次のステップがあいまいな場合、乱数発生器の助けを借りて選択することです。そのため、同じ支払い行列を再計算した場合、この方法では異なる解が得られる可能性がある。解がない場合、あるいはゲームの価格がゼロの場合、収束期待値はゼロになる傾向がある。
ある条件を満たした取引の一部だけを見る、あるいは取引の一部を破棄することで簡略化できないか。
例えば、多くの取引を行うイントラデイシステムがあるとします。弱気な日足ローソク足で行われたロング取引と、それに対応するショート取引を残しています。弱気だけでなく、取引履歴の中で最も弱気な50の取引などかもしれません。フィルタリングの条件をたくさん考えることが可能です。実は、トレーダーにとって最悪の状況、つまり市場の条件付き非対称反応(:)を選んでいるだけなのです。
その逆も可能です。履歴全体ではなく、ある基準でロングとショートに最も不利な部分のみから、最適な戦略を探すことができます。
ある条件を満たした取引の一部だけを考慮する、あるいは取引の一部を破棄することで簡略化できないか。
例えば、多くの案件がある日中のシステムがあるとします。弱気な日足ローソク足で行われたロング取引と、それに伴うショート取引を残しています。弱気だけでなく、取引履歴の中で最も弱気な50の取引などかもしれません。フィルタリングの条件をたくさん考えることが可能です。実は、トレーダーにとって最悪の状況、つまり市場の条件付き非対称反応(:)を選んでいるだけなのです。
その逆で、歴史全体ではなく、ある基準でロングとショートに最も不利な期間のみで、最適な戦略を探すこともできます。
本質的に、ゲームソリューションは、市場のための戦略を選択するとき、私は前に言ったように、トレーダーが何の問題もなく利益を取ることができるセッションは、選択から除外または排除されるので、与えられた基準で、歴史の中で最も不利な部分である。
ロングとショートの最適なタイミングを探るために、ショートとロングの戦略を組み合わせることについては、実現可能である。例えば、ロングポジションのみを対象としたストラテジーの検索を行った場合、まさにこのストラテジーは、ある時間帯に出来高ゼロでオープンすることをトレーダーに推奨することになります。つまり、そういう時は買わない方がいいのです。そのような時間に対応するペイマトリックスの列のすべての数値の符号を変更することが可能となり、実質的にショートポジションを考慮することになる。解がゼロでないことが分かれば、ショートすることが可能です。一番大事なのは、やはりトレーダーにとってプラスになるような値動きを実現することです。
ショートとロングの混合戦略の提案アイデア、ありがとうございました

- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
ご存知のように、市場は非定常である。これを証明するのは非常に簡単で、ある金融商品の市場モデルを取り、それを過去のデータのある部分に当てはめ、可能な限り近似させる(近似させる)のである。その結果、過去のデータと我々のモデルとの差の極値、つまり残差が得られる。上記のようにして得られたモデルを、サンプル外の同じ市場商品の別のヒストリーデータ部分で実行してみましょう。残差に関しては、もっと悪い結果が得られました。
市場は常に変化しており、非定常である。
だから、市場価格データの時系列のある特定の部分にモデルを最大近似させるという原理で市場モデルを構築しようとすると、誰でも困ったことになるのである。このような近似モデルはすべて市場が変化しないことを前提に計算されているので、その統計的、確率的特性は変わりません。しかし、私たちはそれが真実でないことを知っています。つまり、ある過去のデータに基づいて最も正確な市場のモデル(計算式)を構築しようとする試みはすべて失敗に終わる。なぜなら、そのモデルを構築するベースとなった市場が変化すれば、少なくとも不正確なものとなってしまうからだ。
この場合、どうしたらいいのでしょうか?最適化-過去のデータへの調整-を一切拒否すべきなのかもしれませんね。
最適な市場モデルを構築するためには、市場モデルが静的ではなく、動的であるように最適化を行う必要があるからです。つまり、モデルに自由度を与えることです。
最後の文は些細なことに見えると思います。しかし、市場モデルを構築する際に行われていることを見れば、そんな些細な真実はほとんど使われていないことに気づくだろう。
最適化は、ゼロサム戦略および混合戦略(両プレイヤーの戦略選択の自由)を持つ2人の人物(トレーダーとマーケットの取引システム)のゲームについて、支払い行列を用いた最適解を求めるアルゴリズムを用いて行うべきであることも同様に明らかである。この場合、我々は持っているからである。
1. 第二のプレーヤーである市場について、その戦略を選択する自由度を仮定した、承知の上での動的モデル - 混合戦略。2. すでに数学的、アルゴリズム的な装置が用意されており、すぐにでも進めることができる。混合戦略ゼロ和の二人のゲームに対する数学的装置は完全であり、「白点」を含まないので、解を得るか、解が存在しないという答えを知ることができます。
しかし、最も重要なことは、2人のゼロサムゲームに対する支払行列の解は、各プレイヤーのコストを最小化する1つではなく、2つの最適解を与えることである。1つは潜在的市場戦略、もう1つはトレーダーの取引システムのためのものである。
そして、支払い行列を解く際の最適戦略は、コストの最小化、すなわち、プレーヤーが自分の戦略に厳密に従うことによって得られる利益の数学的期待値の最悪の選択肢であるので、市場の非定常性により、市場が自身の最適戦略に従わない確率、したがって、トレーダーの取引システムのコスト部分を必然的に削減する一方で利益部分は増加する確率、この取引システムがまさに最適戦略に厳密に従うならば
混合戦略の二人用ゼロ和ゲームの数学的な詳細やその特殊性については、このリンクのようなインターネット上ですべての情報が公開されているので、これ以上説明することはありません。二人零和ゲームに対する混合戦略
支払いマトリクス
2人用ゼロサム・ゲームの支払行列は2次元の数空間である。 ポイントは、まさにこの行列の1行または1列の期待値を、両プレイヤーの最適戦略を考慮して計算することである。ゲーム全体、すなわち両プレイヤーの最適戦略を考慮した全行または全列の合計(最終)期待値をゲーム価格と呼ぶ。
したがって、ペイメントマトリックスにはペイアウト値が記入されることがほとんどである。 要するに、ペイメントマトリックスとは、ゲームのルールのことなのです。数字が正なら、最初のプレーヤーは2番目のプレーヤーにセルで指定された値に等しい金額を支払う。負の値であれば、第2プレイヤーは第1プレイヤーに指定された値の絶対量を支払う。
したがって,支払い行列は,ゲームの結果がプレイヤーの1つまたは別の結果の選択に依存する一連のゲームをモデル化することを可能にする。ただし,プレイヤーは誰も第2のプレイヤーの選択を事前に知らないものとする。トレーダーは価格の方向性を事前に知ることができず、市場は特定のトレーダーがどの方向にポジションを開くかを知ることができないため、トレーダーがインサイダー(市場の資産の大部分を保有し、相場に大きな影響を与えることができる)でない限り、取引に関しても同様のことが言えるでしょう。
実用例
例えば、シカゴ証券取引所で株を取引しているとします。 私たちの戦略は、ある一定期間、その証券を購入し、保有することです。問題文は次のように定式化されています:セッションのどの時間帯に、どの程度のロット数でロングポジションを取るのが最も収益性が高いか?
取引時間は7時間30分です。したがって、セッション全体を30分ずつ15回に等分することができることがわかります。そのため、時間軸M30で分析を行う。
過去15日間(3週間分)の相場を見てみましょう。各期間の結果は、あるバーのオープン価格と前のバーのオープン価格の差、つまりヒストリーデータのバー番号nの場合、Open[n] - Open[n + 1]となると仮定しましょう。時間は、バー番号 n + 1 を基準とする
横棒がセッション時間、つまりセッションの始まりから個々の棒、縦棒がセッションそのもの、つまりカレンダーの日付である数値の配列の始値で、これらの非常に大きな違いを埋めてみましょう。こうして、支払い行列を得ることができた。それをプレイヤーに代わって列で解くと、どのタイミングで、どの程度の数量でロングポジションを取ればよいかという問題の解が得られる。前述したように、これは数学的期待値による最悪の事態の推定値、つまりゲームの価格となる。
トレーダーのトレーディングシステムに対する判断の意味はわかったので、では、その判断は市場との関係では一体何を意味するのか、つまり、プレイヤーもその線に沿って何らかの価値を受け取るのか。これらの値はまさに市場にとって最も有益なものであり、強気な戦略を堅持するトレーダーにとっては不利なものであり、個々の取引セッションの範囲です。すなわち、市場との関係でペイメントマトリックスソリューションを選択する場合、弱気トレンドの日には最大のレンジを選択し、強気トレンドのバーでは、選択されました。その結果、マーケットとトレーダーには妥協点が生まれ、トレーダーが最適な戦略に徹すれば、セッションの幅が変わっても期待されるペイオフが悪化することはないのです。
注)要は、相場の戦略を選ぶ際に、トレーダーの戦略が強気であれば、弱気の日のレンジを大きくし、強気の日のレンジを大きくするか、全く検討から外す(ゼロレンジ)ということです。つまり、最終的に過去のデータが明らかに強気な値動きを示している場合、マーケットストラテジーのセッションの幅の減少・増加を考慮して再計算すると、弱気なトレンドになると予測されるのです。つまり、この場合、トレーダーの戦略は、弱気セッション中に最も頻繁に発生する強気ローソク足を探すことに集約されます。しかし、心配しないでください。そのようなローソク足が十分にあり得るのであれば、私たちは必ず素敵な解決策を見出すことができます。
最も確実なのは、数学的な期待値、つまり両方の戦略を考慮したゲームの価格を計算することです。プラスになれば必要なものですから、最悪の見積もりでも利益が保証されることになります。
しかし、トレーダーと市場の戦略を考慮した数学的期待値がマイナスになった場合、どうすればいいのでしょうか?このような本を読んだ人の中には、トレーダーの戦略は数量的には変わらないが、証券を買って保持するのではなく、売るべきだ、つまり戦略の逆転であると主張する人がいるかもしれない。 しかし、これはやってはいけないことです。なぜ?なぜなら、強気戦略の最適解を計算し、それを弱気戦略に変更した後、結果的に評価額の最小値、が最大値になるからです。正の値であっても、まるで末端のオプティマイザーで末端のフィッティングで求めたかのように、最大値になります。また、相場は非定常であるため、このような反転戦略が計算上の最大値で保持される可能性は低い。ほとんどの場合、再びマイナスに転じるでしょう。結局、反転前の戦略では、強気トレンドが優勢なローソク足で最も大きな買い量が入っていたのです。そして今、強気なローソク足で弱気な気分で取引を始めると、経費がかさみ、結果的に数学的な期待値がマイナスになる確率が高くなるのです。
そうですね、期待ペイオフがマイナスの場合、そして得られた戦略を考慮すると、確かに強気戦略から弱気戦略に切り替えなければならないでしょう。しかし、その際には、プレイヤーに対する列単位ではなく、プレイヤーに対する行単位で支払い行列全体を再計算する必要があります。または、行列自体のすべてのセルの符号を変更し、その後、プレーヤー用の列を再計算することができます、つまり、アルゴリズムを変更しないでください。これからは戦略が変わり、期待値も符号だけでなく値も変わってくる。
既に用意されているペイメントマトリックスのソリューションを得るには?
いくつかの方法がありますが、その中でも代表的なものがあります。
1. 線形計画法、すなわちSimplex法により。この方法は、支払い行列に解がない場合、場合によっては支払い行列に鞍点がある場合、全く解がない場合に(実装によっては)詰まることがあり、あまり良いものではありません。
2. 反復法反復法の各ステップにおいて、支払い行列の潜在的な解の1つに収束することが達成される。ポイントは、次のステップがあいまいな場合、乱数発生器によって選択されることです。そのため、同じ支払い行列を再計算した場合、この方法では異なる解が得られる可能性がある。解がない場合、あるいはゲームの価格がゼロの場合、収束期待値はゼロになる傾向がある。
私自身は反復法を用いており、そのアルゴリズムは以下の通りです。リストはJavaで書かれているので、特別なユーティリティを使ってCに変換したり、GCJを使って機械語コードに再コンパイルすることも簡単です。理論的には、すべてをMQL4やMQL5で一度に記述することも可能ですが、MQL4の低速性とMQL5のバグにより、上記のプログラミング言語ではこのアルゴリズムを使用することはできません。
関数 - matrix の入力として,配列形式の支払行列が与えられる。
出力は、プレイヤーの戦略としての数値を列ごとに並べた配列である。もし、あるプレーヤーのストラテジーを行単位で再計算する必要が生じた場合は、ペイメントマトリックスのすべてのセルの値の符号を変更する必要がある。この関数は,渡されたアルゴリズムの現在値(進捗率)と,行と列によるプレイヤーの最適戦略を考慮した数学的期待値をコンソールに出力します.