トレーディングにおける機械学習:理論、モデル、実践、アルゴトレーディング - ページ 265 1...258259260261262263264265266267268269270271272...3399 新しいコメント mytarmailS 2017.01.31 14:24 #2641 サンサニッチ・フォメンコ 試してみたが、すぐに壊れた。 出力穴をどう するのかが明確でないのだ。週末はディスコで穴埋めです :)いつになったらちゃんと引用できるようになるんだ? 3文字書くのに掲示板の半分のページを引用する必要はないだろ...。さて、本題に入りますを参考に、ローソク足の組み合わせなどをいろいろと作ってみました。ローソク足 で教えてみたところ、トレーニングでも新しいデータでも100%トレーニングでエラー0になりました。そのため、各関数を調べる必要はなく、forrestバージョンによると最も有意で、他より際立っていた最初の6つの予測子を削除しました。その中で、将来を見通すものがあることを期待して、再びMOを訓練しました。..これは、私がサンプルを作成したときのコードで、ターゲットは "キャンドルカラー "です。コードでは、サンプルそのものだけで、ターゲットなどの操作は思いのままです。あなたのモデルに30個の機能が追加されたようなものですから、試してみてください。library(rusquant)# загружаю последние 500 дней котировок индекса ртс getSymbols("SPFB.RTS",src = "Finam",period="5min",from = Sys.Date()-500) chart_Series( tail(SPFB.RTS,100) ) D <- SPFB.RTS# cчитаем функции по свечным формациям и прочим добромlibrary(candlesticks) X29<- TrendDetectionSMA(D) X28<- TrendDetectionChannel(D) X27<- nextCandlePosition(D) X26<- CSPThreeOutside(D) X25<- CSPThreeMethods(D) X24<- CSPThreeInside(D) X23<- CSPTasukiGap(D) X22<- CSPStomach(D) X21<- CSPStar(D) X20<- CSPShortCandleBody(D) X19<- CSPShortCandle(D) X18<- CSPPiercingPattern(D) X17<- CSPOutsideDay(D) X16<- CSPNLowerClose(D,N = 3) X15<- CSPNHigherClose(D,N = 3) X14<- CSPMarubozu(D) X13<- CSPLongCandleBody(D) X12<- CSPLongCandle(D) X11<- CSPKicking(D) X10<- CSPInvertedHammer(D) X9 <- CSPInsideDay(D) X8 <- CSPHarami(D) X7 <- CSPHammer(D) X6 <- CSPGap(D) X5 <- CSPEngulfing(D) X4 <- CSPDoji(D) X3 <- CSPDarkCloudCover(D) X2 <- CandleLength(D) X1 <- CandleBodyLength(D) dat <- cbind.data.frame(D, X1,X2,X3,X4,X5,X6,X7,X8,X9,X10, X11,X12,X13,X14,X15,X16,X17,X18,X19, X20,X21,X22,X13,X24,X25,X26,X27,X28,X29)# true,false заменяю на 1 и -1 а NA-шки на 0 dat[dat==TRUE] <- 1 dat[dat==0] <- -1 dat[is.na(dat)] <- 0# пишем все в файл с которым удобно работать в будущем save(dat,file = "D:/R/candles_lib/candle_dat.RData") # ваш путь Machine learning in trading: アルゴリズム最適化選手権。 Algorithm Optimisation Championship. СанСаныч Фоменко 2017.01.31 14:43 #2642 mytarmailS:Sanych、いつになったらちゃんと引用することを覚えるんだ?プレディクターは未来を見るのではなく、ターゲットを繰り返すのです。フォワードテストはどこですか?トレーニングを議論する意味はあるのか?追記すべてリクエストによる mytarmailS 2017.01.31 15:00 #2643 サンサニッチ・フォメンコプレディクターは、未来を見るのではなく、ターゲットを繰り返す。フォワードテストはどこですか?トレーニングについて議論することはありますか? ただ、あなたのサイトで教えてみて、得たものを書いてください。そうすれば、何か議論ができるのではないかと思います。 СанСаныч Фоменко 2017.01.31 16:02 #2644 mytarmailS: ただ、自分で試してみて、得られたものを書き留めれば、何か議論ができるはずだ、うまくいけば...。その理由はよくわかりました。 今、新しい価格が入ってきて、すべての予測値がそれに基づいて計算され、そして同じ価格がその予測値に基づいて計算されています。私たちはまったく何も予測していません。フィッティングの誤差はゼロです。驚くようなことは何もないですね。予想が面白ければ、Dシフトを1段階左にする。このモデルは、一歩先を予測します。 mytarmailS 2017.01.31 17:04 #2645 サンサニッチ・フォメンコその理由はよくわかりました。 今、新しい価格が入ってきて、すべての予測値がそれに基づいて計算され、そして同じ価格がその予測値に基づいて計算されています。私たちはまったく何も予測していません。フィッティングの誤差はゼロです。驚くようなことは何もないですね。予想が面白ければ、Dシフトを1段階左にする。このモデルは、一歩先を予測するものです。 新価格が 入ったってどういうこと?私がお渡ししたコードは、finamからダウンロードした価格から予測値を作成するだけです。を選択すると、データが保存されます。# пишем все в файл с которым удобно работать в будущем save(dat,file = "D:/R/candles_lib/candle_dat.RData") # ваш путьそして、このデータを新しいスクリプトで 開き、目標価格を 設定し、MOを教えます。どこからともなくやってくるのです。もちろん、予想にしたがって目標株価を一段とシフトさせたのですが、これは初めての訓練ではありません。然らば それとも、私があなたを理解していないのでしょうか? Machine learning in trading: СанСаныч Фоменко 2017.01.31 17:19 #2646 mytarmailS: 新価格が 入ったってどういうこと?私が提供したコードは、finamからダウンロードした価格から予測値を作成するだけです。すると、データが保存される# пишем все в файл с которым удобно работать в будущем save(dat,file = "D:/R/candles_lib/candle_dat.RData") # ваш путьそして、このデータcandle_dat.RDataを 新しいスクリプトで開き、ターゲットを作り、MOを教えます。どこからともなくやってくるのです。もちろん、予報に従って1段階ずつ目標をずらしていきました。ということで、今回が初めてではありません。 それとも、私が誤解していたのでしょうか? ターゲットは? mytarmailS 2017.01.31 17:23 #2647 サンサニッチ・フォメンコ ターゲットは?クローズは、前回のクローズより高くなるload(file = "D:/R/candles_lib/candle_dat.RData") Y <- diff(dat$SPFB.RTS.Close) Y[Y>=0] <- 1 Y[Y<0] <- 0 dat <- dat[-nrow(dat),] Y <- as.factor(Y) tr <- 1:10000 ts <- 10001:15000library(randomForest) cm <- colnames(dat) colnames(dat) <- paste0("var_" , 1:ncol(dat)) model <- randomForest(Y[tr]~., dat[tr,] , ntree=100, mtry=10) layout(1:2) plot(model) varImpPlot(model,type = 2) pr <- predict(model,dat[ts,])library(caret) confusionMatrix(Y[ts] , pr) Machine learning in trading: Machine Learning and Neural Practical testing of convolutional СанСаныч Фоменко 2017.01.31 17:34 #2648 mytarmailS:上の句は前の句より下 ターゲットのシフトがどこにあるのかがわからない?差別化するとき?しかし、2からの引き算で得られる予測変数の1行目は、ターゲットの1番目の値と一致する、つまり、インデックス2でターゲットの次の値をKNOWするのです。 mytarmailS 2017.01.31 17:50 #2649 サンサニッチ・フォメンコ ターゲットのずれがどこにあるのかがわからないのですが?差別化するとき?しかし、2から引いて得られる予測変数の最初の行には、ターゲットの1番目の値、つまり、インデックス2のターゲットの次の値をKNOWするのです。微分するとき,系列が1要素短くなるので,シフトは自動的に行われ,必要なのは最後の要素だけサンプル(観測値のある表)を短くすることである以下はその一例です。SomeData <- c(10,20,30,20,10,20,30,40,50,40) Y <- diff(SomeData) cbind.data.frame( Y , SomeData[-length(SomeData)]) となる Y SomeData[-length(SomeData)]1 10 102 10 203 -10 304 -10 205 10 106 10 207 10 308 10 409 -10 50 Machine learning in trading: How to set up From theory to practice СанСаныч Фоменко 2017.01.31 17:59 #2650 mytarmailS:微分する場合は、行が1要素短くなるため、自動的にシフトし、あとはサンプルを最後の要素だけ短くすれば良いだけです左にずらすべきは 予測因子ではなく、ターゲットなのです。今一度、説明させてください。インデックス1の予測変数の文字列は、SECONDと最初の予測変数の文字列から=得られる。結果は、インデックス1の場所に書き込まれます。ターゲットはインデックス=1であり、まだ持っている。しかし、その値は私たちが未来からの情報に基づいて予測するもので、予測因子の2行目ターゲットを1つずらす、つまりY[1:n]の代わりにY[2:n]を取って計算する。 1...258259260261262263264265266267268269270271272...3399 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
試してみたが、すぐに壊れた。 出力穴をどう するのかが明確でないのだ。
週末はディスコで穴埋めです :)
いつになったらちゃんと引用できるようになるんだ? 3文字書くのに掲示板の半分のページを引用する必要はないだろ...。
さて、本題に入ります
を参考に、ローソク足の組み合わせなどをいろいろと作ってみました。ローソク足 で教えてみたところ、トレーニングでも新しいデータでも100%トレーニングでエラー0になりました。そのため、各関数を調べる必要はなく、forrestバージョンによると最も有意で、他より際立っていた最初の6つの予測子を削除しました。その中で、将来を見通すものがあることを期待して、再びMOを訓練しました。..
これは、私がサンプルを作成したときのコードで、ターゲットは "キャンドルカラー "です。
コードでは、サンプルそのものだけで、ターゲットなどの操作は思いのままです。
あなたのモデルに30個の機能が追加されたようなものですから、試してみてください。
# загружаю последние 500 дней котировок индекса ртс
getSymbols("SPFB.RTS",src = "Finam",period="5min",from = Sys.Date()-500)
chart_Series( tail(SPFB.RTS,100) )
D <- SPFB.RTS
# cчитаем функции по свечным формациям и прочим добром
library(candlesticks)
X29<- TrendDetectionSMA(D)
X28<- TrendDetectionChannel(D)
X27<- nextCandlePosition(D)
X26<- CSPThreeOutside(D)
X25<- CSPThreeMethods(D)
X24<- CSPThreeInside(D)
X23<- CSPTasukiGap(D)
X22<- CSPStomach(D)
X21<- CSPStar(D)
X20<- CSPShortCandleBody(D)
X19<- CSPShortCandle(D)
X18<- CSPPiercingPattern(D)
X17<- CSPOutsideDay(D)
X16<- CSPNLowerClose(D,N = 3)
X15<- CSPNHigherClose(D,N = 3)
X14<- CSPMarubozu(D)
X13<- CSPLongCandleBody(D)
X12<- CSPLongCandle(D)
X11<- CSPKicking(D)
X10<- CSPInvertedHammer(D)
X9 <- CSPInsideDay(D)
X8 <- CSPHarami(D)
X7 <- CSPHammer(D)
X6 <- CSPGap(D)
X5 <- CSPEngulfing(D)
X4 <- CSPDoji(D)
X3 <- CSPDarkCloudCover(D)
X2 <- CandleLength(D)
X1 <- CandleBodyLength(D)
dat <- cbind.data.frame(D, X1,X2,X3,X4,X5,X6,X7,X8,X9,X10,
X11,X12,X13,X14,X15,X16,X17,X18,X19,
X20,X21,X22,X13,X24,X25,X26,X27,X28,X29)
# true,false заменяю на 1 и -1 а NA-шки на 0
dat[dat==TRUE] <- 1
dat[dat==0] <- -1
dat[is.na(dat)] <- 0
# пишем все в файл с которым удобно работать в будущем
save(dat,file = "D:/R/candles_lib/candle_dat.RData") # ваш путь
Sanych、いつになったらちゃんと引用することを覚えるんだ?
プレディクターは未来を見るのではなく、ターゲットを繰り返すのです。
フォワードテストはどこですか?トレーニングを議論する意味はあるのか?
追記
すべてリクエストによる
プレディクターは、未来を見るのではなく、ターゲットを繰り返す。
フォワードテストはどこですか?トレーニングについて議論することはありますか?
ただ、自分で試してみて、得られたものを書き留めれば、何か議論ができるはずだ、うまくいけば...。
その理由はよくわかりました。
今、新しい価格が入ってきて、すべての予測値がそれに基づいて計算され、そして同じ価格がその予測値に基づいて計算されています。私たちはまったく何も予測していません。フィッティングの誤差はゼロです。驚くようなことは何もないですね。
予想が面白ければ、Dシフトを1段階左にする。このモデルは、一歩先を予測します。
その理由はよくわかりました。
今、新しい価格が入ってきて、すべての予測値がそれに基づいて計算され、そして同じ価格がその予測値に基づいて計算されています。私たちはまったく何も予測していません。フィッティングの誤差はゼロです。驚くようなことは何もないですね。
予想が面白ければ、Dシフトを1段階左にする。このモデルは、一歩先を予測するものです。
新価格が 入ったってどういうこと?
私がお渡ししたコードは、finamからダウンロードした価格から予測値を作成するだけです。
を選択すると、データが保存されます。
save(dat,file = "D:/R/candles_lib/candle_dat.RData") # ваш путь
そして、このデータを新しいスクリプトで 開き、目標価格を 設定し、MOを教えます。
どこからともなくやってくるのです。もちろん、予想にしたがって目標株価を一段とシフトさせたのですが、これは初めての訓練ではありません。
然らば
それとも、私があなたを理解していないのでしょうか?新価格が 入ったってどういうこと?
私が提供したコードは、finamからダウンロードした価格から予測値を作成するだけです。
すると、データが保存される
save(dat,file = "D:/R/candles_lib/candle_dat.RData") # ваш путь
そして、このデータcandle_dat.RDataを 新しいスクリプトで開き、ターゲットを作り、MOを教えます。
どこからともなくやってくるのです。もちろん、予報に従って1段階ずつ目標をずらしていきました。
ということで、今回が初めてではありません。
それとも、私が誤解していたのでしょうか?ターゲットは?
クローズは、前回のクローズより高くなる
Y <- diff(dat$SPFB.RTS.Close)
Y[Y>=0] <- 1
Y[Y<0] <- 0
dat <- dat[-nrow(dat),]
Y <- as.factor(Y)
tr <- 1:10000
ts <- 10001:15000
library(randomForest)
cm <- colnames(dat)
colnames(dat) <- paste0("var_" , 1:ncol(dat))
model <- randomForest(Y[tr]~., dat[tr,] , ntree=100, mtry=10)
layout(1:2)
plot(model)
varImpPlot(model,type = 2)
pr <- predict(model,dat[ts,])
library(caret)
confusionMatrix(Y[ts] , pr)
上の句は前の句より下
ターゲットのずれがどこにあるのかがわからないのですが?差別化するとき?しかし、2から引いて得られる予測変数の最初の行には、ターゲットの1番目の値、つまり、インデックス2のターゲットの次の値をKNOWするのです。
微分するとき,系列が1要素短くなるので,シフトは自動的に行われ,必要なのは最後の要素だけサンプル(観測値のある表)を短くすることである
以下はその一例です。
Y <- diff(SomeData)
cbind.data.frame( Y , SomeData[-length(SomeData)])
となる
1 10 10
2 10 20
3 -10 30
4 -10 20
5 10 10
6 10 20
7 10 30
8 10 40
9 -10 50
微分する場合は、行が1要素短くなるため、自動的にシフトし、あとはサンプルを最後の要素だけ短くすれば良いだけです
左にずらすべきは 予測因子ではなく、ターゲットなのです。
今一度、説明させてください。
インデックス1の予測変数の文字列は、SECONDと最初の予測変数の文字列から=得られる。結果は、インデックス1の場所に書き込まれます。
ターゲットはインデックス=1であり、まだ持っている。しかし、その値は私たちが未来からの情報に基づいて予測するもので、予測因子の2行目
ターゲットを1つずらす、つまりY[1:n]の代わりにY[2:n]を取って計算する。