戦略探索の自動化 - ページ 2

 
採掘者は必要だが、それでも検索は与えられた条件の中で行われる。最適化もまた、狭い意味での戦略探索である。質問の意味が正しくない。
 
Yuriy Asaulenko:

IMHO、その質問はまったく正しい。ストラテジーを描く前に、それがうまくいくかどうかを知るのがいいだろう。

これには2つの方法がある。

1.エクセル - そこにストラテジーを書いてチェックする。はい、そしてVBAも。

2.MatLab - データベースに相場をアップロードし、MatLabに接続し、そこでストラテジーをモデル化する。エクセルより簡単です。

MT4/5で直接すべてを行う方が簡単ではありませんか?ストラテジーのポートフォリオを最適化するための検索なのに、なぜサードパーティのプログラムを使うのでしょうか?それが質問であったかどうかはわかりませんが。
 
Stanislav Korotky:
MT4/5で直接すべてを行う方が簡単ではないか?ストラテジーのポートフォリオを最適化するために検索するのであれば、なぜサードパーティのプログラムなのでしょうか?それが質問なのかどうかわからないが?
ストラテジーを検索するのであれば、それは簡単ではない。それ以外のことは知らないし、考えたこともない。とはいえ、どんなモデリングも特殊な環境では簡単で、MTでは簡単ではない。MTは最終製品であり、研究用に設計されていないし、あまり適していない
 
Youri Tarshecki:

オートテスターにバリアントをロードするたびに思うことがある。私が考えていることは以下の通りです。

1.戦略ジェネレーターは単純なものから複雑なものへの進化ツリーの原理で動くべきだ。

2.変種は直ちにvolking-forwardでチェックされ、排除されるべきである。

3.ファンクションは手動で用意し、ジェネレーターはそれらの相互作用の変種だけを処理する、つまり相互依存関係を作成する。

ところで、英語のスレッドで、このような要素を持つブルガリアのソフトウェアについての言及に出会いました。しかし、それはMT4上であったので、私はそれに興味がなかった。

そして、こちらもドイツのもので、同じくMT4 http://darwins-fx-tools.com/ です。

このバリアントでは開発が進んでいる...関数の相互作用のグラフが構築され、検索空間は無限です。

例えば、Open>Low という表現は意味があるが、Open>Volume という表現は意味がない、など。

 
これも意味のない表現の例である。
 
Aliaksandr Hryshyn:
ここにも意味のない表現の例がある:=High>(Open-Close)、もスルーされない。

このような些細なことに溺れてしまう。関数というのは、あらかじめ用意された内部的に一貫性のあるコードのことで、インジケーターの助けを借りたり、単独で、EAの何らかの性質に責任を持つものです。つまり、ある考え方のことです。

例えば、歴史上のフラクタル図形を定義するコード。または、あなたがそれを与えないすべてのものを数える作品。あるいは変化率を 定義する。あるいはレベルの決定。

ジェネレーターの仕事は、これらの異なるピースを1つのエンジニアリング・ソリューションに組み合わせることである。例えば、レベル上のフラクタルの数を数え、その結果に応じて売買の優先順位を決める。あるいは、レベルの加速度の合計を求め、履歴の同じ値と比較し、別の関数で補正係数を作る。などなど。

つまり、生物の進化に例えるなら、淘汰の材料となる突然変異には2種類ある。一つ目は点突然変異で、これは実際、ゲノムの変化の圧倒的な数を占めている。問題は、通常は何ももたらさないということである。しかし、このプロセスは何十億年もの間、膨大な統計量に基づいて行われてきたため、常に幸運なものが存在する。個人的には、100万年、100年、あるいは十数年も、くだらない検索をする時間はない。

突然変異の第二のタイプは、よりまれだが、より興味深いものである。例えば、新しい有性生物が形成されるとき、父と母の異なる遺伝子がシャッフルされる。あるいはゲノムにウイルスが組み込まれることもある。あるいは、独立した外来生物のゲノム全体が引き継がれる。あるいは、染色体全体が融合して新しい種(ちなみにヒト科)が形成される。

したがって、このようなジェネレーターの仕事は、一定のアルゴリズムに従ってこのような機能を組み替えることである。そうして初めて、何か新しいものが生まれる可能性がある。

トレーダーをルーチンワークから解放することで、このようなジェネレーターはトレーダーに創造的な部分、つまり新しいアイデアに集中する機会を残すことになる。さらに、機械化は常に主観性のリスクを減らし、スタンプを取り除くのに役立つ。

 
Youri Tarshecki:

詳細は後述します。関数とは、あらかじめ用意された内部的に一貫性のあるコードのことで、インジケータの助けを借りて、あるいは独立して、Expert Advisorの特定のプロパティを担当します。つまり、ある考え方のことです。

例えば、歴史上のフラクタル図形を定義するコード。または、あなたがそれを与えていないすべてをカウントする部分。あるいは変化率を定義する。あるいはレベルの決定。

ジェネレーターの仕事は、これらの異なるピースを1つのエンジニアリング・ソリューションに組み合わせることである。例えば、レベル上のフラクタルの数を数え、その結果に応じて売買の優先順位を決める。あるいは、レベル上の加速度の合計を求め、履歴上の同じ値と比較し、別の関数で補正係数を作る。などなど。

したがって、このようなジェネレーターの仕事は、一定のアルゴリズムに従ってこのような関数を組み替えることである。そうすることでしか、新しいものが現れる可能性はない。

あるコード(関数)が買いを提案し、別のコード(関数)が売りを提案したらどうだろう。ジェネレーターはどのようにこれらの断片を統合ソリューションに組み合わせることができるだろうか?

あるいは、ある関数Aが確率P(A)で価格が下がると考え、別の関数Bが確率P(B)で価格が上がると考えたとする。確率論の公式を適用すべきだろうか?

 
Yuriy Asaulenko:
戦略なら簡単じゃない。他は考えたことがないからわからない。とはいえ、どんなモデリングも、MTではなく特殊な環境の方が簡単だ。MTは最終製品であり、研究用に設計されていないし、あまり適していない
それは場合によるね。私にとっては、MTで戦略をモデル化する方が簡単だし、その上にどんな推定アルゴリズムを追加しても問題ない。
 
Yuri Evseenkov:

あるコード(関数)が買いを提案し、別のコード(関数)が売りを提案したらどうなるだろう。ジェネレーターはどのようにしてこれらの断片を統合ソリューションにまとめることができるだろうか?

あるいは、ある関数Aが確率P(A)で価格が下がると考え、別の関数Bが確率P(B)で価格が上がると考えたとする。確率論の公式を適用すべきなのだろうか?

私が理解する限り、これらのコード(関数)は出力にアナログ値を必要とし、バイナリ値(買い/売り)は遺伝的選択の助けを借りてこれらの関数から組み合わされた取引戦略の中にすでにある。
 
Youri Tarshecki:

詳細は後述します。関数とは、あらかじめ用意された内部的に一貫性のあるコードのことで、インジケータの助けを借りて、あるいは独立して、Expert Advisorの特定のプロパティを担当します。つまり、ある考え方のことです。

例えば、歴史上のフラクタル図形を定義するコード。または、あなたがそれを与えていないすべてをカウントする部分。あるいは変化率を定義する。あるいはレベルの決定。

ジェネレーターの仕事は、これらの異なるピースを1つのエンジニアリング・ソリューションに組み合わせることである。例えば、レベル上のフラクタルの数を数え、その結果に応じて売買の優先順位を決める。あるいは、レベルの加速度の合計を求め、履歴の同じ値と比較し、別の関数で補正係数を作る。などなど。

つまり、生物の進化に例えるなら、淘汰の材料となる突然変異には2種類ある。一つ目は点突然変異で、これは実際、ゲノムの変化の圧倒的な数を占めている。問題は、通常は何ももたらさないということである。しかし、このプロセスは何十億年もの間、膨大な統計の上で続いているため、常に幸運なものが存在する。個人的には、100万年、100年、あるいは十数年も、くだらない検索をする時間はない。

突然変異の第二のタイプは、よりまれだが、より興味深いものである。例えば、新しい有性生物が形成されるとき、父と母の異なる遺伝子がシャッフルされる。あるいはゲノムにウイルスが組み込まれることもある。あるいは、独立した外来生物のゲノム全体が引き継がれる。あるいは、染色体全体が融合して新しい種(ちなみにヒト科)が形成される。

したがって、このようなジェネレーターの仕事は、一定のアルゴリズムに従ってこのような機能を組み替えることである。そうして初めて、何か新しいものが生まれる可能性がある。

トレーダーをルーチンワークから解放することで、このようなジェネレーターはトレーダーに創造的な部分、つまり新しいアイデアに集中する機会を与えることになる。それに、機械化は常に主観のリスクを減らし、スタンプから自分を解放するのに役立つ。

本当に小さなことがたくさんある。

インジケーターやローソク足などを分析するさまざまな可能性を最小限の労力で追加できるように、私は普遍的なシステムを作ろうとした。各関数には、どのようなデータを扱うことができ、どのようなデータが出力されるかについての情報があります。インジケーターについても、どのようなデータを提供するのかを説明します。例えば{double}や{int,double}のように、単純なデータと複雑なデータに分けられます。 同じ例で「価格」と「チャート上の位置」、別の例で「直線」(チャネルを定義するために使用可能)などに分けられます。例えば、「定数」(ストラテジーのパラメーター)、「指数」(最小値と最大値がある)、「比率」(価格や出来高など、基準となるポイントが1つしかない)などです。ストラテジーを一貫した方法で修正する必要があるのですが、このような微妙なニュアンスがあり、ある場所の修正が別の場所の修正条件に影響を与えることがあります。

その通りだ。検索の組み合わせの数を減らすために、上記の制約(タイプ、規模、カテゴリー)を利用し、とりあえずはポイント変更(1つ/少数の機能の追加/削除)で十分でしょう。

「組み替えは自然発生的なものでもあるが、既成のソリューション全体のものである。組み合わされた機能群は、単一機能よりも "外の世界 "との接点が多くなる可能性が高いので、すべてを楔で打ち込む機会は少なくなる。アルゴリズムは非常に複雑になる。)