トレーディングにおける機械学習:理論、モデル、実践、アルゴトレーディング - ページ 8

 
Alexey Burnakov:

ちょっと待ってください。依存関係のデータも実行してみますね。

その前に1つ質問です。データには一列に並んだすべてのバーが含まれていますか?それともサンプリング前にバーを間引いたのでしょうか?

R1、R2、R3が一列に並び、その中にもH1の時系列が 並んでいます。
 
サンサニッチ・フォメンコ
R1、R2、R3が一列に並び、その中にもH1の時系列が並んでいます。

なるほど。なるほど、先生のデータで大体仕組みがわかりました。

また、Dr.Traderを理解したい。

 

H1も持っていますが、サンプルには過去4本のバーのデータが含まれています。open[1]-high[1]-close[1]-...-open[2]-high[2]-close[2]-...MqlRatesと MqlDateTimeの構造 体に加え、いくつかの指標とより高い時間枠の終値があり、全ては[0..1]の間隔で正規化されています。1または0の結果は、次のバーでの価格の上昇または下降を意味します。しかし、これだけでは明らかに不十分です。

問題は、何本のバーが必要なのかがわからないことです。Neuronkaは、誤差0%に再学習するのに3小節しか必要ありません(したがって、50%がフロントテストになります)。あるいは、コントロールしながら訓練して、時間内に止めれば、フロントテストエラーは数パーセント少なくなる。しかし、数百本の棒を全く取らずに、ほぼ同じ結果を得ることは可能です。ただし、サンプルの中の新しい棒はそれぞれ大量のゴミとなり、結果的にモデルの質を下げてしまいます。

 
Dr.トレーダー
H1も持っていますが、サンプルには過去4本のバーのデータが含まれています。open1-high1-close1-...-open2-high2-close2-...などMqlRates および MqlDateTime構造体 からのデータ。1または0の結果は、次のバーでの価格の上昇または下降を意味します。
素晴らしい。open1 - open2 のようなものがあるのでしょうか?リターンズ
 

前回の記事に少し補足です。いいえ、デルタはありません。試してみるしかないですね。

 
Dr.トレーダー

H1も持っていますが、サンプルには過去4本のバーのデータが含まれています。open[1]-high[1]-close[1]-...-open[2]-high[2]-close[2]-...のような、構造体MqlRatesと MqlDateTimeからのデータに加えて、いくつかの指標とより高い時間枠の終値があり、すべて間隔[0..1]で正規化されています。1または0の結果は、次のバーでの価格の上昇または下降を意味します。しかし、これだけでは明らかに不十分です。

問題は、何本のバーが必要なのかがわからないことです。Neuronkaは、誤差0%に再学習するのに3小節しか必要ありません(したがって、50%がフロントテストになります)。あるいは、コントロールしながら訓練して、時間内に止めれば、フロントテストエラーは数パーセント少なくなる。しかし、何百本もの棒を全く取らずに、同じ結果を得ることは可能です。ただし、サンプルの中の新しい棒は、それぞれ大量のゴミとなり、それに伴ってモデルの品質も低下します。

まあ、フィーチャーエンジニアリングが必要なんですけどね。必ずしも標準的な指標を使う必要はないのです。想像力とプロセスへの理解が必要です。ブラックボックスにバーデータを与えるだけでは、本当に不十分なのかもしれません。そして、その情報を取得する深さが重要です。私などは、出力の深さに対して入力の深さが対称になるように供給する必要があると、研究の中で見てきました。3時間先までの予測 - 3時間後以降のデータを与える。

私の研究にも一部反映されている予測因子開発スキームの一例を紹介します。このデータは、すでに機械に「何があったのか」という多くの情報を与えています。

http://blog.kaggle.com/2016/02/12/winton-stock-market-challenge-winners-interview-3rd-place-mendrika-ramarlina/comment-page-1/

Winton Stock Market Challenge, Winner's Interview: 3rd place, Mendrika Ramarlina
Winton Stock Market Challenge, Winner's Interview: 3rd place, Mendrika Ramarlina
  • 2016.12.02
  • blog.kaggle.com
The Stock Market Challenge, Winton's second recruiting competition on Kaggle, asked participants to predict intra and end of day stock returns. The competition was crafted by research scientist at Winton to mimic the type of problem that they work on everyday. Mendrika Ramarlina finished third in the competition with a combination of simple...
 
Dr.トレーダー

前回の記事に少し補足です。いいえ、デルタはありません。試してみるしかないですね。

それは必須ですね。

何が効果的かわかるか?最後に判明した価格と移動平均の 差。平均の窓が違うはずです。

 
ここで私は、読む、読む...。で、実数(回帰)なのか、名目値(分類)なのか、形式的にまず何が対象変数なのかが理解できないのです。また、予測変数が目的変数にどの程度影響するかを議論するのであれば、目的変数の意味そのものを知っておくとよいでしょう。
 

私は、目標変数を売買の修飾語として見ており、取引をいつまで続けるか、どのような価格水準まで待つかという具体的なことは考えていません。EAは、バーの先頭で取引を開始し、次のバーを待って次の判断をします。

論理的なセンスがあればもっと難しい :)

チャート上のパターンや形状(頭や肩など)を見つけるために、ニューロニクスを鍛えたいと思ったのです。また、ジグザグの方向をターゲット変数として、私が参加しなくても自分で図形を見つけることを学習させる必要がありました。私の計画では、ターゲット変数の意味は「パターンが見つかった、トレンドは上昇する、買うべき」(result=1)であるべきでした。同時に、result=0は、トレンドが上向きだから売ろうということになる。信号の強さを考慮し、結果が0.5に近い時は取引しないようにしました。

私の考えを声に出して、以前は考えもしませんでした:私のモデルは間違っていたようです、私は買い/売り/すべての取引_と_取引でないために3つのクラスを教えなければなりませんでした。そして、1つのネットワークから3つの出力を行うか、3つの別々のネットワークを学習させます。出口が1つのネットワークではありません。

そして、200本の小節を5本だけ撮っても、何も変わらない、結果は変わらないということに、実験を通して気づかされたのです。このような構成でパターンを見つけるような学習ではなく、時間的に何らかの規則性を見出すようなモデルだと思います。私は徐々に、ジグザグではなく、単純に次のバーの終値で モデルを教えることにしました。この場合、私はニューロニクスの結果をフィルタリングする必要はありません、同じ結果でより少ない問題は、それはそう悪くはないです。ここでは、論理的な意味はすでに単純で、ターゲット変数0/1 - 価格は1バーで下落/上昇します。

ここ数日、森を研究しているのですが、この掲示板の例を見ると同じ5本の小節をとっても、森は神経細胞のような抽象的なものを学ぶのではなく、かなり具体的なルールを導き出すことができるのです。例えば、フォレストは「2つのMAをクロスする」というようなルールを導き出すことができます。 このようなデータセットでは、フォレストの方がはるかに有望だと思われるので、使いこなせるようになりたいと思います。 ターゲット変数の意味は同じです - 0/1 - 1小節で価格が下がるか上がるかです。

予測因子の影響について、思うようにわからない。時間は絶対に使うべきで、時間/分/曜日、おそらくこのうちのどれか(時間?)小さな値のセットがループせずに連続して行くようなプレディクターは使えません。例えば、学習サンプルが1年分のデータを含んでいる場合、「月」予測器を使用することはできません。このモデルでは、すべてのデータを月別に12のチャンクに分割し、チャンクごとに異なるロジックを学習させるだけでよい。そして、2015年1月のロジックは、2016年1月のロジックには、確実に1年では収まらないでしょう。しかし、学習データが5年分であれば、「月」はすでにフィットしているかもしれません。また、インジケータの使用が正当化されるとは思えません。標準的なインジケータのEAが損失を出しているのですから、学習済みモデルがこのデータから何か有用なものを抽出したらおかしいでしょう。さらに、森自体もある程度の計算を行い、トレーニング中に独自の内部指標を作成することもあると理解しています。 価格も、私は始値や終値は信用せず、高値や安値が良いのですが、使用する必要があります。

これらの予測因子はすべて、現在の市場の状況の一種を示しており、モデルの目的は、予測因子を使用して同じ状況を定義し、そのような場合に価格がどこに行くかを示すことです。モデルは、オッカムの剃刀のように、できるだけ少ない入力データを使うべきです。そうすると、ある依存性を記述してしまい、例に当てはまらない可能性があります。

 
Dr.トレーダー

私は、ターゲット変数を売買の修飾語として見ており、取引をいつまで続けるか、どのような価格水準を待つかという具体的なことは考えていません。Expert Advisor は、バーの先頭で取引を開始し、次のバーを待って次の判断を行います。

論理的なセンスがあればもっと難しい :)

チャート上のパターンや形状(頭や肩など)を見つけるために、ニューロニクスを鍛えたいと思ったのです。また、ジグザグの方向をターゲット変数として、私が参加しなくても自分で図形を見つけることを学習させる必要がありました。私の計画では、ターゲット変数の意味は「パターンが見つかった、トレンドは上昇する、買うべき」(result=1)であるべきでした。同時に、result=0は、トレンドが上向きだから売ろうということになる。信号の強さを考慮し、結果が0.5に近い時は取引しないようにしました。

私の考えを声に出して、以前は考えもしませんでした:私のモデルは間違っていたようです、私は買い/売り/すべての取引_と_取引でないために3つのクラスを教えなければなりませんでした。そして、1つのネットワークから3つの出力を行うか、3つの別々のネットワークを学習させます。出口が1つのネットワークではありません。

そして、200本の小節を5本だけ撮っても、何も変わらない、結果は変わらないということに、実験を通して気づかされたのです。このような構成でパターンを見つけるような学習ではなく、時間的に何らかの規則性を見出すようなモデルだと思います。私は徐々に、ジグザグではなく、単純に次のバーの終値で モデルを教えることにしました。この場合、私はニューロニクスの結果をフィルタリングする必要はありません、同じ結果でより少ない問題は、それはそう悪くはないです。ここでは、論理的な意味はすでに単純で、ターゲット変数0/1 - 価格は1バーで下落/上昇します。

ここ数日、森を研究しているのですが、この掲示板の例を見ると同じ5本の小節をとっても、森は神経細胞のような抽象的なものを学ぶのではなく、かなり具体的なルールを導き出すことができるのです。ターゲット変数の意味は同じで、0/1 - 価格が1バーで上がるか下がるかです。

予測因子の影響について、思うようにわからない。時間は絶対に使うべきで、時間/分/曜日、おそらくこのうちのどれか(時間?)小さな値のセットがループせずに連続して行くようなプレディクターは使えません。例えば、学習サンプルが1年分のデータを含んでいる場合、「月」予測器を使用することはできません。このモデルでは、すべてのデータを月別に12のチャンクに分割し、チャンクごとに異なるロジックを学習させるだけでよい。そして、2015年1月のロジックは、2016年1月のロジックには、確実に1年では収まらないでしょう。しかし、学習データが5年分であれば、「月」はすでにフィットしているかもしれません。また、インジケータの使用が正当化されるとは思えません。標準的なインジケータのEAが損失を出しているのですから、学習済みモデルがこのデータから何か有用なものを抽出したらおかしいでしょう。さらに、森自体もある程度の計算を行い、トレーニング中に独自の内部指標を作成することもあると理解しています。 価格も、私は始値や終値は信用せず、高値や安値が良いのですが、使用する必要があります。

これらの予測因子はすべて、現在の市場の状況の一種を示しており、モデルの目的は、予測因子を使用して同じ状況を定義し、そのような場合に価格がどこに行くかを示すことです。モデルは、オッカムの刃の原理に従って、できるだけ少ない入力データを使うべきであり、そうすると、ある依存性を記述して、例に合わない可能性がある。

いろいろな意味で、私たちの思いは重なっているのです。

でも、結局はノイズ予測器に引っかかってしまうんです。ノイズ予測因子があると、モデルが過学習になり、他の推論が意味をなさなくなる。

理由: