ある記事のアドバイザー。すべての人を対象としたテスト。 - ページ 4

 
Reshetov:


Expert Advisorを改良し、売買シグナルを利用して将来のショートポジションの確率を計算するようにしました。したがって、その確率が0.5より高ければショートポジションを、そうでなければロングポジションを建てることになります。



TakeとLossを固定にした、つまり、シグナルによってロールしないようにした。これはMMを適用できるようにするために必要なことです。

最初の136トレードが最適化で、残りはOOSです。


このスレッドは、トレーダーにとっては面白くないし、トピック投稿者の人格を議論するために、フラッドバスターだけがここに来るので、エキスパートアドバイザーの修正コードを添付していません。


ユーリ、耳を貸してはいけない。修正したEAを投稿してください。
 
Andru80:
ユーリ、耳を貸してはいけない。修正したEAを投稿してください。

記事があれば、EAもある。何が何だか...。ある程度の経験を積めば、アイデアを評価するためのテストも不要になります。 待ちます。
 
Figar0:

記事が書かれると、Expert Advisorが追随します。何がどうなっているのか見てみましょう。アイデアを推し量るのに、テストは必要ないのです。 待ちます。

記事の前にExpert Advisorを掲載しているのは、皆さんにテストしていただき、ご意見をいただくためです(おそらく、また私の人格について議論を始める可能性がありますが?)


本質はExpert Advisorにあるわけではなく、私が追加したアンチフィッティングアルゴリズムに あるのです。

今、私たちは、成功したフォワードテストを探し、テスト結果を深く掘り下げる必要はありませんが、結果の上段に目を通すと、どこかにあるはずですし、一番上段にもある可能性は十分にあります。

アンチフィッティングは 最適化時のみ有効で、それ以外の時間は無効となるため、テスト結果と最適化結果がかなり異なる場合があります。

テスト結果の上位行のグラフです(最初の404件が最適化、残りがフォワードテスト)。


Expert Advisorは添付ファイル(公開前にコンパイルされているので、そのコードを記事で公開します)に添付されています。

入力パラメータは

x0、x1、x2、x3、x4、x5、x6、x7 - 0から100まで1刻みで調整可能です。最適化されています。

sl - ストップロスとテイクプロフィットをpipsで表示します。例えば、H1のEURUSDの場合、5桁の場合は100から1000まで50刻み(4桁の場合はすべての数字から0を1つ取り除く)で取ることができます。最適化されています。

lots - ロット単位で、最適化するために少なくとも1ロットを置く必要があります。最適化されていない。

mn - マジックナンバー。最適化されていない。

d - ロットサイズの小数点以下の桁数。つまり、0.01が許されるなら、d=2を公開する。最適化されることはありません。

プロフィットファクターによる最適化では、最適化結果もこのパラメーターでソートされます。

念のため、私が設定しているEA設定のファイルをZIPアーカイブに追加しています。

ファイル:
rnn_v3_1.ex4  7 kb
rnn_v3.zip  1 kb
 

興味深い結果ですね。

由良さん、解析にはEAが装着されている楽器のデータを使うのですか?

 
Neutron:

興味深い結果ですね。

由良さん、解析にはEAが装着されている楽器のデータを使うのですか?

はい、すなわち、他の楽器は分析されていません。TAはオープニングプライスのみで 実施。


基本的にエントリーはあまり洗練されていないので、これらのことを計算しているコードフラグメントをお見せします。


   // Считываем показания индикаторов
   double a1 = input(9, 0);
   double a2 = input(9, 1);
   double a3 = input(9, 2);

   // Вычисляем вероятность торгового сигнала для короткой позиции
   double result = getProbability(a1, a2, a3);

   ...

// Показания индикаторов, должны быть в диапазоне от 0 до 1
// p - период индикатора
// shift - смещение вглубь истории в периодах индикатора
double input(int p, int shift) { 
  return (iRSI(Symbol(), 0, p, PRICE_OPEN, p * shift) / 100.0);
}
 

ありがとうございます。

Antifitting...NSの古典を思い出すと、アンチフィッティングはフォワードの予測誤差の最小値を見つけることに行き着く。これは、各ランでNSを再トレーニングして、100回程度の独立したランで統計を実行することで実現できます。これは理解できるのですが、初期BPの長さが有限であることと、その非定常性から、実装が非常に難しいのです。

もう一つの方法は、学習サンプルの最適な長さについての推定値を得ることである。私の知る限り、この問題を一般的な方法で解決した人はまだいないようです...。

何とかなったのでしょうか?

 
Neutron:

もう一つの方法は、学習サンプルの最適な長さについての推定値を得ることである。私の知る限り、まだ誰もこの問題を一般的な形で解決していないのですが...。

解かなくていいんです。あるケースに適した学習サンプルの長さを見つければいいわけで、とても簡単です。

はい、そしてアンチフィットではありません。2段目のフィッティングです。n-levelフィッティングの場合、テストするサンプルはn+1個必要で、最後の1個はコントロールサンプルです。

それこそレシェトフにはない最後の1枚です。

 

なんてシンプルなんでしょう。

カーブポイントごとに、統計を取らなければならない。また、1ヵ月後に価格帯がガラリと変わった場合、どこから引き出せばいいのか。

 

いいえ、何の意味もありません。

樹里の場合、NSのトレーニングは、私の与えられた伸びしろにウェイトを通すだけで...。だろう?もしそうなら、解析は単に各反復でのトレードの結果ということになる。そして、「...現在、成功したフォワードテストは、テスト 結果を深く長く検索する必要はありませんが、我々は結果のトップラインを通過しなければなりません、彼らはどこかにあるはずです、それはトップラインで非常に可能です...」は、間違っています - 成功したフォワードはどこにあるかもしれない、我々はどこでも検索する必要があります。

 
Neutron:

ありがとうございます。

アンチフィット...NSの古典を思い出せば、アンチフィッティングはフォワードの予測誤差の最小値を求めることに還元される。これは、各ランでNSを再トレーニングして、100回ほどの独立したランで統計を実行することで実現できる。これは理解できるのですが、初期BPの長さが有限であることと、その非定常性から、実装が非常に難しいのです。

もう一つの方法は、学習サンプルの最適な長さについての推定値を得ることである。私の知る限り、この問題を一般的な方法で解決した人はまだいないようです...。

何とかなったのでしょうか?

トレーディングシステムに関しては、ヒストリーマッチングのみ可能です。ニューラルネットワークは、フィッティングと再トレーニングという2つの問題を同時に抱えている。そして再トレーニングは、定常的なデータに対しても行われる。

しかし、適切な入力のためのニューラルネットワークでは、Leonid Velichkovskiが 提示した方法を用いれば、いくつかのニューラルネットワークパッケージや自作グリッドを扱うときに少し簡単になります。学習例をトレーニングサンプルとテストサンプルの2つに分け、学習プロセスでは両方のサンプルの結果を計算し、トレーニングサンプルだけを使ってグリッドに教え込むのです。テストサンプルに対する結果の向上が止まり、つまり結果がそれ以上向上しなくなったら、それはネットの学習が十分に進んだことを意味するので、この時点でやめるべきだ。このように、最も適切に訓練されたネットを得ることができます - 私たちは良くなることはありませんし、簡単に悪化します。この場合、テストサンプルで極限があるため、ネットワークの再トレーニングやフィッティングを正確に気にする必要はない。

端末に組み込まれた遺伝的アルゴリズムでは、前進区間の結果を計算して最適化を止めることが間に合わないので、より困難です。このため、指標最適化の結果でソートされたフォワードを手動で検索する必要があります。

私は少し違う道をたどりました。

1.ニューラルネットワークのオーバートレーニングの原因を突き止め、それを解消。つまり、学習例が定常的で矛盾を含まない場合、私のアルゴリズムは過学習にはなりませんが、例数が補間するのに十分でない場合、容易に過学習になってしまいます。

2.フィッティングの方が複雑でしたね。しかし、この問題も解決可能であることが判明した。適合性は主に学習の質、すなわち報酬と罰のシステムの適切さに依存し、そうでなければアルゴリズムは最も抵抗の少ない経路をたどり、実際に適切な方法ではなく、より簡単だと思う方法で学習してしまうからである。つまり、遺伝的アルゴリズムに、ピップの数ではなく、結果の確率の計算の質を評価させるようにしたのです。

3.非定常性。アルゴリズムではなく、あくまでもマーケットに依存するため、全く克服できない可能性がある。この点だけは、予測の質を高める上で、本当に邪魔な存在です。しかし、その影響は、トレーニングの他の欠点を排除すれば、もはや収益を妨げるほど大きなものではありません。