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

 
ウラジミール・ペレヴェンコ

隣のスレッドでRenatとMKL4/5におけるR言語の運命について議論 しました。MKLのソリューションと開発の方向性が明確になりました。

グッドラック

私はそれを読みました、私は何も書きたくもありません、人が聞こうとしないなら説得することは何もありません、もし彼がとっくに書かれたコードを100〜1000行書きたいならそれは彼の権利です、一方私は同じことをRの1行でやりたいです。

ちなみに、ある統計的手法で自明でない課題を作って、あるモデルを教えて検証し、Rとmql5+alglibで実装してコードサイズだけ比較する、ということも可能です ...。

 
ウラジミール・ペレヴェンコ

隣のスレッドでRenatとMKL4/5におけるR言語の運命について議論 しました。MKLのソリューションと開発の方向性が明確になりました。

グッドラック

そのスレッドを読んでいない人のために説明すると、mqlからRへの直接的なインターフェイスは期待されていません。しかし、mqlに移植されたAlglibライブラリにアクセスすることができるので、mqlのコード自体が木や神経細胞を構築したり、遺伝学で何かを最適化したり、関数の最小/最大値のパラメータを探したりすることができるようになります。すべての可能性 -http://www.alglib.net

 
ウラジミール・ペレヴェンコ

隣のスレッドでRenatとMKL4/5におけるR言語の運命について議論 しました。MKLのソリューションと開発の方向性が明確になりました。

グッドラック



その流れは理解できる。RでMT4をフレンドリーにすることは可能です。今はまだMT4が一般的ですしね。Pで良い依存性を捉えた場合、同じパラメータでMT5ライブラリに簡単にモデルを教えることができます。

 

オブザベーションを含む行列 `"P"` があり(行ごとに)、各行について `hist()` を用いて分布をカウントしています。


休憩時間 - セット50


A <- hist(P[n,],breaks = 50,plot = F)


しかし、`P`のすべての行の長さが同じであるにもかかわらず、行列の各行で `A$breaks` の長さが異なることが判明しました。

 

ある数字をbreakに投入すると、結果はそれに近くなるが、必ずしもそうではない。

完全一致の場合は、あらかじめ最小値と最大値を計算し、そのベクトルをパラメータ
A <- hist(P[n,],breaks = c(10:60),plot = F)

 
Dr.トレーダー

ある数字をbreakに投入すると、結果はそれに近くなるが、必ずしもそうではない。

完全一致の場合は、事前に最小値と最大値を計算し、そのベクトルをパラメータに入力するのがよいでしょう。
A <- hist(P[n,],breaks = with(10:60),plot = F)


を試してみましたが、なぜか失敗します。

> A <- hist(P[1,],breaks = с(10:60),plot = F)
Error in hist.default(P[1, ], breaks = с(10:60), plot = F) : 
  could not find function "с"
> A <- hist(P[1,],breaks = 10:60,plot = F)
Error in hist.default(P[1, ], breaks = 10:60, plot = F) : 
  some 'x' not counted; maybe 'breaks' do not span range of 'x'
 

最初のミスについてですが、英語のcではなく、ロシア語のcと書いてしまったようです :)今、上の投稿を修正しました。

2つ目のエラー - P[1,] には10未満の値または60以上の値が含まれています。P[1,]のすべての値を含むようにbreakを選択する必要があります。

 
Dr.トレーダー

最初のミスについてですが、英語のcではなく、ロシア語のcと書いてしまったようです :)今、上の投稿を修正しました。

2つ目のエラー - P[1,] には10未満の値または60以上の値が含まれています。P[1,]のすべての値を含むようにbreakを選択する必要があります。


残念ながら、私には理解できません(

以下は簡単な例です。

rn <- rnorm(100)
H <- hist(rn, breaks = 50, plot = F)
length(H$breaks)

長さ(H$breaks)は常に50でなければならないのですか?

 

まず、rnの中の最小の数を決定する必要があります。仮に-4とします。すると、最大で「+4」となる。

この関数を呼び出す 最も簡単な方法は、ヒストグラムが-4から+4まで進むようにすることです。
H <- hist(rn, breaks = c(-4:4))

エラーを含む例:
H <- hist(rn, breaks = c
(-1:1))
breaks は -1 から 1 に制限されているので,rnorm() が -1 より小さいか +1 より大きい数を生成すると, hist() はエラーを発生させます.

次に、ベクトルの長さの合計が50になるように、-4から+4までの数字でベクトルを作りたいと思います。これはseq()関数で行われます。
seq(-4, 4, length.out=50).

ヒストグラムには,seq()の結果を使用する必要があります.
H <- hist(rn, breaks = seq(-4, 4, length.out=50))

 
Dr.トレーダー

まず、rnの中の最小の数を決定する必要があります。仮に-4とします。すると、最大で「+4」となる。

この関数を呼び出す 最も簡単な方法は、ヒストグラムが-4から+4まで行くようにすることです。
H <- hist(rn, breaks = c(-4:4))

エラーを含む例:
H <- hist(rn, breaks = c
(-1:1))
breaks は -1 から 1 に制限されているので,もし rnorm() が -1 より小さいか +1 より大きい数を生成したら, hist() はエラーを発生します.

次に、ベクトルの長さの合計が50になるように、-4から+4までの数字でベクトルを作成する必要があります。これはseq()関数で行われます。
seq(-4, 4, length.out=50).

ヒストグラムには,seq()の結果を使用する必要があります.
H <- hist(rn, breaks = seq(-4, 4, length.out=50))

どうもありがとうございます。私はこのエコノメトリックスについてはさっぱりなのです。

できたと思います。

rn <- rnorm(100)
Max <- max(rn)
Min <- min(rn)
range.vector <- seq(Min, Max, length.out=50)
H <- hist(rn, breaks = range.vector)
length(H$breaks)

[1] 50

理由: