トレーディングにおける機械学習:理論、モデル、実践、アルゴトレーディング - ページ 2802 1...279527962797279827992800280128022803280428052806280728082809...3399 新しいコメント Vladimir Perervenko 2022.10.26 19:33 #28011 Aleksey Vyazmikin #:あなたは以前、私がもう一度使おうと思った脚本を作ってくれた。サンプルで それを実行したところ、エラーが出たんだ。バイナリサンプルではすべてうまくいきました。 エラーは、相関行列に未定義の値(NA)が出現し、findCorrelation関数がそれを使用できないというものです。パッケージを開いて関数の説明を読んでください。 スクリプトは乱雑で、不必要な中間結果の海です。 #===================================================================== require(tidyft) #--get df1------------------------------------------------------------ way <- "D:\\FX\\MT5_CB\\MQL5\\Files\\Po_Vektoru_TP_0_SL_0\\EURUSD_0\\Setup" df1 = read.csv(paste0(way, "train.csv"), header = TRUE, sep = ";",dec = ".") #df1 = fread(paste0(way, "train1.csv")) #fst::write_fst(df1, "train1.fst") #-----archiv-------------------------------- ft <- as_fst(df1) # rm(df1) #---constanti-------------------------------------------- cor.test.range <- seq(from = 0.1,to = 0.9,by = 0.1) # диапазон перебора в коеф корр not.used.colums = c("Target_100_Buy","Target_100_Sell","Target_P","Time","Target_100") ft %>% select_fst(cols = not.used.colums, negate = TRUE)-> dt #--function-------------------------------------------- get.findCor<- function(data , cor.coef = cor.test.range){ import::here(.from = caret, findCor = findCorrelation) data %>% cor(method = "kendall", use = "pairwise" ) %>% findCor(cutoff = cor.coef, exact = FALSE, names = TRUE)->nms if(nms!= 0) select_dt(data, cols = nms, negate = TRUE) } #----Calculate-------------------------------------------------------------- for(i in seq_len(length(cor.test.range))){ get.findCor(dt, cor.coef = cor.test.range[i])-> dt.n paste0("train2_" , cor.test.range[i]*10 , ".csv") %>% paste0(way , .) %>% fwrite(dt.n, .) rm(dt.n) } 順に説明する: 1.caret "パッケージをグローバルスコープにロードする必要はありません。これは非常に重く、多くの依存関係とデータを引っ張ってくる。必要なのは1つの関数だけです。それをget.findCor関数に直接インポートします。 tidyftパッケージは非常に高速なデータフレーム操作パッケージです。それを使ってください。 Vladimir Perervenko 2022.10.26 19:41 #28012 コントロールのために、このスクリプトを使って私のキットでテストしました。結果は # patch <- "C:/RData/Project/FEDOT/" # df1 <- fread(paste0(patch, "DF_train_M5.csv")) # object.size(df1) #780184 bytes # dim(df1) #[1] 4030 25 # ft <- as_fst(df1)# # rm(df1) #ft %>% select_fst(cols = c(1:3,25), negate = TRUE)-> dt #dim(dt) [1] 4030 21 bench::workout({ for(i in seq_len(length(cor.test.range))){ get.findCor(dt, cor.coef = cor.test.range[i])-> dt.n paste0("train2_" , cor.test.range[i]*10 , ".csv") %>% paste0(patch , .) %>% fwrite(dt.n, .) rm(dt.n) } })->t1 #(12.9 m) setwd(patch) dim(fread("train2_1.csv")) #[1] 4030 3 dim(fread("train2_2.csv")) #[1] 4030 6 dim(fread("train2_3.csv")) #[1] 4030 10 dim(fread("train2_4.csv")) #[1] 4030 13 dim(fread("train2_5.csv")) #[1] 4030 16 dim(fread("train2_6.csv")) #[1] 4030 17 dim(fread("train2_7.csv")) #[1] 4030 18 dim(fread("train2_8.csv")) #[1] 4030 18 dim(fread("train2_9.csv")) #[1] 4030 18 かなり長い時間(12.9分)カウントしている。しかし、フレームも小さくない。もちろん、並列化し、より高速なcor関数を探す必要がある。 異なる閾値を持つ最初の21の予測変数から、我々は異なる数の予測変数を選択した。 しかし、これは正しい方法ではありません。 幸運を祈る。 Maxim Dmitrievsky 2022.10.26 22:54 #28013 СанСаныч Фоменко #:あなたはsdのばらつきに注意を払っていない 次回は注意します。sdをsdからsdから数えます %) Maxim Dmitrievsky 2022.10.27 03:30 #28014 特徴ウィンドウのオフセットを何らかの指標(例えばstd)にバインドしても、何も得られなかった。 値が大きければ大きいほど、オフセットの倍数は大きくなる。 またはその逆。両方試してみた。 拡大縮小(+オフセット?)のバリエーションもあるが、まだ試していない。 私は、フラクタルという枠組みの中で、このような変形を列挙することしかできない。 mytarmailS 2022.10.27 07:35 #28015 Vladimir Perervenko #:1.caret」パッケージをグローバル・スコープにロードする必要はない。これは非常に重く、多くの依存関係とデータを引っ張ってくる。必要なのは1つの関数だけだ。get.findCor関数に直接インポートするのだ。 うわー、空洞だ Vladimir Perervenko#: ウラジミール、トランザクションのログを保持するバックテスト用のパッケージがあるかどうか知っていますか。 СанСаныч Фоменко 2022.10.27 07:37 #28016 Maxim Dmitrievsky #:フィーチャー・ウィンドウのオフセットを何らかの指標(例えばstd)にバインドしても、何も得られなかった。 値が大きいほど、この値のオフセット倍数も大きくなる。またはその逆。両方試してみました。拡大縮小(+オフセット?)のオプションもあるが、まだ試していない。私は、フラクタルという枠組みの中で、このようなバリアントのオーバーシュートしか見ることができない。 もちろんです。 ステップごとにすべてを 再計算しなければなりません。 Maxim Dmitrievsky 2022.10.27 07:45 #28017 СанСаныч Фоменко #:もちろんだ。すべての ステップですべてを 再計算しなければならない。すべてのバーを再トレーニングするよりも、大規模なデータセットでラベルと特徴を再計算する方法の方が簡単だと思います。 そして、頻繁に再トレーニングを行うことで、グローバルに見れば、何らかの一般的なパターンを決定することができる。もちろん、この設計が注ぎ込まれたものでなければの話だが。 СанСаныч Фоменко 2022.10.27 08:05 #28018 Maxim Dmitrievsky #:すべてのバーを再トレーニングするよりも、大規模なデータセットでラベルとチップを再計算する方法を検討する方が簡単だ 。 まったく同感です。これがEAに乗り換えられない理由です。 しかし、それは原則の問題だ。私が「ステップごとにティーチングする」方式に切り替えたのは、データセット全体を準備するために生じる隠れた先読みのためです。私はまさにこの問題を抱えており、「先読み」効果を生み出す予測因子を見つけることができませんでした。 Forester 2022.10.27 08:28 #28019 СанСаныч Фоменко #:まったく同感で、これがEA行きに失敗する理由だ。しかし、これは原則的なことです。私が「各ステップでティーチする」方式に切り替えたのは、データセット全体を準備するために生じる隠れた先読みのためです。私はまさにこの問題を抱えており、「先読み」効果を生み出す予測因子を見つけることができませんでした。 トレーニング・セクションとテストの間に間隔をあけましょう。少なくとも2、3日。最後の棒グラフは、最初の未知数と同じ未来を持っています。 エンバーゴ・プロットは、一種の呼び出しです。 トレーニングは1日、テストは1日に短縮。そして、数日先のマークアップの予測を見た。すなわち、それは新しいバーのためになるものを見た。 トレーニングの間隔を1週間に広げると、結果は50/50よりも高くなった。まあ、多ければ多いほど - 悪ければ悪いほど、ピーキングのあるラインはピーキングのないラインに追加され、すべてを台無しにした))). 一般的に、この禁足プロットは教師にとってピーキングに劣らないはずである。 Vladimir Perervenko 2022.10.27 09:14 #28020 mytarmailS #:うわぁ、空洞だウラジミール、バックテスト用のパッケージで、トランザクションのログとか(まあ、原始的とまではいかないけど)、遅い「quantstrat」と「SIT」以外のものを保存しているものがあるかどうか知ってる? 私は知りません。私は会ったことがない 1...279527962797279827992800280128022803280428052806280728082809...3399 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
あなたは以前、私がもう一度使おうと思った脚本を作ってくれた。
サンプルで それを実行したところ、エラーが出たんだ。
バイナリサンプルではすべてうまくいきました。
エラーは、相関行列に未定義の値(NA)が出現し、findCorrelation関数がそれを使用できないというものです。パッケージを開いて関数の説明を読んでください。
スクリプトは乱雑で、不必要な中間結果の海です。
順に説明する:
1.caret "パッケージをグローバルスコープにロードする必要はありません。これは非常に重く、多くの依存関係とデータを引っ張ってくる。必要なのは1つの関数だけです。それをget.findCor関数に直接インポートします。
tidyftパッケージは非常に高速なデータフレーム操作パッケージです。それを使ってください。
コントロールのために、このスクリプトを使って私のキットでテストしました。結果は
かなり長い時間(12.9分)カウントしている。しかし、フレームも小さくない。もちろん、並列化し、より高速なcor関数を探す必要がある。
異なる閾値を持つ最初の21の予測変数から、我々は異なる数の予測変数を選択した。
しかし、これは正しい方法ではありません。
幸運を祈る。
あなたはsdのばらつきに注意を払っていない
次回は注意します。sdをsdからsdから数えます %)
特徴ウィンドウのオフセットを何らかの指標(例えばstd)にバインドしても、何も得られなかった。
値が大きければ大きいほど、オフセットの倍数は大きくなる。
またはその逆。両方試してみた。
拡大縮小(+オフセット?)のバリエーションもあるが、まだ試していない。
私は、フラクタルという枠組みの中で、このような変形を列挙することしかできない。
1.caret」パッケージをグローバル・スコープにロードする必要はない。これは非常に重く、多くの依存関係とデータを引っ張ってくる。必要なのは1つの関数だけだ。get.findCor関数に直接インポートするのだ。
うわー、空洞だ
ウラジミール、トランザクションのログを保持するバックテスト用のパッケージがあるかどうか知っていますか。
フィーチャー・ウィンドウのオフセットを何らかの指標(例えばstd)にバインドしても、何も得られなかった。
値が大きいほど、この値のオフセット倍数も大きくなる。
またはその逆。両方試してみました。
拡大縮小(+オフセット?)のオプションもあるが、まだ試していない。
私は、フラクタルという枠組みの中で、このようなバリアントのオーバーシュートしか見ることができない。
もちろんです。
ステップごとにすべてを 再計算しなければなりません。
もちろんだ。
すべての ステップですべてを 再計算しなければならない。
すべてのバーを再トレーニングするよりも、大規模なデータセットでラベルと特徴を再計算する方法の方が簡単だと思います。
そして、頻繁に再トレーニングを行うことで、グローバルに見れば、何らかの一般的なパターンを決定することができる。もちろん、この設計が注ぎ込まれたものでなければの話だが。すべてのバーを再トレーニングするよりも、大規模なデータセットでラベルとチップを再計算する方法を検討する方が簡単だ 。
まったく同感です。これがEAに乗り換えられない理由です。
しかし、それは原則の問題だ。私が「ステップごとにティーチングする」方式に切り替えたのは、データセット全体を準備するために生じる隠れた先読みのためです。私はまさにこの問題を抱えており、「先読み」効果を生み出す予測因子を見つけることができませんでした。
まったく同感で、これがEA行きに失敗する理由だ。
しかし、これは原則的なことです。私が「各ステップでティーチする」方式に切り替えたのは、データセット全体を準備するために生じる隠れた先読みのためです。私はまさにこの問題を抱えており、「先読み」効果を生み出す予測因子を見つけることができませんでした。
エンバーゴ・プロットは、一種の呼び出しです。
トレーニングは1日、テストは1日に短縮。そして、数日先のマークアップの予測を見た。すなわち、それは新しいバーのためになるものを見た。
トレーニングの間隔を1週間に広げると、結果は50/50よりも高くなった。まあ、多ければ多いほど - 悪ければ悪いほど、ピーキングのあるラインはピーキングのないラインに追加され、すべてを台無しにした)))
.
一般的に、この禁足プロットは教師にとってピーキングに劣らないはずである。
うわぁ、空洞だ
ウラジミール、バックテスト用のパッケージで、トランザクションのログとか(まあ、原始的とまではいかないけど)、遅い「quantstrat」と「SIT」以外のものを保存しているものがあるかどうか知ってる?
私は知りません。私は会ったことがない