トレーディングにおける機械学習:理論、モデル、実践、アルゴトレーディング - ページ 261 1...254255256257258259260261262263264265266267268...3399 新しいコメント mytarmailS 2017.01.18 10:20 #2601 また、予測ではどのような結果が出ているのでしょうか? あえて聞きます。 toxic 2017.01.19 19:00 #2602 mytarmailS: また、予測ではどのような結果が出ているのでしょうか? あえて、質問させてください。 と聞かれたら、おそらく明確に答えられないと思います。予測されていることがたくさんあり、すべてが異なっているのです。しかし、平均すると約60〜65%。 Dr. Trader 2017.01.19 22:41 #2603 モデル学習用に用意したスプレッドシートはこちらです。価格は列ごとに差分に変換され、変更なしまたはNAで列が削除されています。各列の各行に3つのラグを詰め込んだ(現在の行から前回を引いたもの、前回から既設を引いたもの、既設から既設を引いたもの)目標 - 次の行の増減値(次の行から現在の行を引いた値を四捨五入して+-1、変化がない場合は0。)すべてのターゲットは "target_"という接頭辞を持ちます。*他のターゲットを予測に使用することはできませんし、未来を覗き見することになります。target_」を先頭に持つすべての列は、予測因子またはintuとして使用することはできません。 ファイル: 250902254.txt 2 kb example0.prepared.zip 94 kb Dr. Trader 2017.01.20 01:51 #2604 問題です。csvファイルを行単位で2分割し、学習データとfronttestを10:1の割合で配置。target_SiH7.bid(上の表)に対してモデルを学習させたところ、学習データで62%、新規データで74%の分類精度を得ることができました。嬉しかったのですが、再確認したところ、クラス0は他とのバランスが非常に悪く、金額だけで言えば60%と74%あることがわかりました。つまり、0はうまく検出できるが、-1や1はうまく検出できない、という状態である。別のスコアが必要です。2つのアンバランスなクラスに対して、この指標は素晴らしいです -https://en.wikipedia.org/wiki/Cohen's_kappa しかし、我々のケースでは、2つではなく3つのアンバランスなクラスがあります、3に対するKappaアナログはありますか? mytarmailS 2017.01.20 07:58 #2605 していません。 と聞かれたら、おそらく一義的には答えられないと思います。予測されることは非常に多く、すべてが異なるのです。しかし、平均すると約60〜65%。面白いですね、もう少し詳しく説明してもらえますか...。ただ、今は全く違う分野の予測をしていて、散漫な生活を送るわけにはいかないので、このマーチの日に一緒に実験をすることはできませんが、読んでいてとても面白く観察しています、もっと書いてください...。Dr.トレーダーを見ると、クラス0は他と比べて非常に偏りがあり、量だけを見ると60%と74%であることがわかります。つまり、0は非常によく検出できるようになったが、クラス-1や1については諦めてしまったということである。Uターンのランダムフォレストを学習させたときも、当然ながらUターンの方が非Uターンよりもはるかに少ないという問題がありました。木を作れば作るほど、MOはターンクラスで点数を稼ぎ、ターン以外のクラスで集中的に点数を稼ぐようになりました。caret にはクラスのバランスをとるためのいくつかの方法がありますが、どれも簡単です - オブザベーションの少ないクラスを2倍にしてすべてのクラスのオブザベーションの合計を同じに揃えるか、逆にオブザベーションの多いクラスから余分なオブザベーションを削除するかです。どの方法も、バランシングを全くしないよりは利益が出ます(ただし、あくまでも私の場合ですが)。 Dr. Trader 2017.01.20 08:50 #2606 mytarmailS:面白いですね、もう少し詳しく説明してもらえますか...。私はちょうど今、全く別の分野の予測に取り組んでいて、迷子になるわけにはいかないので、このマートであなたと一緒に実験をすることはできませんが、読んで観察するのはとても面白いです、もっと書いてください...。Uターンのトレーニングをしていた時も同じ問題がありました。Uターンはもちろん、非Uターンよりもずっと少ないです。木を作れば作るほど、MOはUターン組に埋もれてしまい、無ターン組に集中するようになりました。caret にはクラスのバランスをとる方法がいくつかありますが、いずれもオブザベーションの少ないクラスを2倍にして全クラスのオブザベーションの合計を同じに揃えるか、オブザベーションの多いクラスから不要なオブザベーションを取り除くという、些細なものです。どの方法も、バランシングを全く行わない場合よりも利益が出ない(ただし、これはあくまで私の場合ですが) caretでは、学習関数のfitness関数を何らかのパラメータで変更することができます。分類にはprecisionやkappaを、回帰にはr^2や他の何かなど、あなた独自の2つのバリエーションを使うことができます。私はそこからkappaを学びました。kappaは、非常にバランスの悪いクラスに対して、追加操作なしでモデルを適切に学習させる手助けをしてくれました。 СанСаныч Фоменко 2017.01.20 11:17 #2607 もし、反転を議論するのであれば、反転のための1本のバーではなく、反転の前の数本のバーと反転の後の数本のバーというように、意味のある形でクラスのバランスをとる必要があるのです。どうせクラスがアンバランスでも、それほど致命的でなく、カレットでバランスが取れるなら Женя 2017.01.20 12:05 #2608 毒性 すべて交渉可能です。私は、例えばSi、RI、BRなど、一般的に最も流動性の高いフォート先物を提案しました。結果的にシグナル(-1,0,1)(ショート,キャッシュ,ロング)を提案します。シグナルは確率よりも曖昧さがなく、注文としてMM によって歪められることがありません。後処理、標識、ターゲティングはあなた次第、または本。 いくつかの思考の後、私は少なくとも1つのより多くのガラスが追加されるべきであるという結論に来た{価格:ボリューム、...||...、価格:ボリューム }そのまま、1秒あたりの最後の、それぞれの予測された楽器のために、その後デルタは必要ありませんと入札、あまりにも尋ねる、それはIMHO必須です、もし秒ごとのテープと分割ボリュームとOMのシフト、多かれ少なかれ有益で、その後ガラス1デルタは非常に小さく、少なくとも一つは、別の "プレート "分布などを見る必要があるとそれがスタートとして十分だ。タンブラーを追加して、トレーニングデータセットを数日分投稿してください、遊びます。:) Dr. Trader 2017.01.22 14:06 #2609 最終的にScottのPi metricに決定https://en.wikipedia.org/wiki/Scott's_Piこの推定では、最初の91%の行でモデルを学習させ、最後に残ったデータでフロントテストを行いました(バックテスト:フロントテストの比率=10:1)。 表の「class_0_rate」列は、クラス0とクラス-1、1との比率で、この値が高すぎる結果をExcelでふるい落とすことができるようにしました。最後の2つの列は、Scottの学習とテストのPi指標で、値は-1〜1である。0=結果はランダムでMeodelは役に立たない、1=全てうまくいく、である。負の結果はダメ、逆相関、予測結果を逆にしてみるのも手です。逆相関は、予測と正反対の取引をする場合、2つのクラスでうまくいくことがあります。しかし、3つのクラスがあると、その反対を見つけるのは難しく、どのクラスにも2つの反対値があり、この場合、マイナスの値も悪いことになります。例えばxagusdのように、バックテストとフロントテストでbid(またはask)予測の値が似ていて高い通貨を選択する必要があると思います。0点満点で0.18点というのは小さいですが。また、実際の取引で1ティック先を予測することも悪いことです。一般的には結果が出ますが、適用できません :)ScottのPiのRコードScottsPi <- function(act, pred){ if(length(act) != length(pred)){ stop("different length") } n_observ <- length(act) all_levels <- unique(c(act,pred)) n_levels <- length(all_levels) marginal_matrix <- matrix(NA, ncol=n_levels, nrow=n_levels) colnames(marginal_matrix) <- all_levels rownames(marginal_matrix) <- all_levels for(i in 1:n_levels){ for(j in 1:n_levels){ marginal_matrix[i,j] <- sum((act==all_levels[i]) & (pred==all_levels[j])) } } diagSum <- 0 for(i in 1:n_levels){ diagSum <- diagSum + marginal_matrix[i,i] } diagSum <- diagSum / n_observ marginalSum <- 0 for(i in 1:n_levels){ marginalSum <- marginalSum + ((sum(marginal_matrix[i,]) + sum(marginal_matrix[,i]))/n_observ/2)^2 } p <- marginalSum return((diagSum - p)/(1-p))} ファイル: resultsTable_scottspi_v1r.zip 6 kb Machine learning in trading: How to interpret custom EA Automate Женя 2017.01.22 17:27 #2610 Dr.トレーダー最終的にScottのPi metricに決定https://en.wikipedia.org/wiki/Scott's_Piこの推定では、最初の91%の行でモデルを学習させ、最後に残ったデータでフロントテストを行いました(バックテスト:フロントテストの比率=10:1)。 表の「class_0_rate」列は、クラス0とクラス-1、1との比率で、この値が高すぎる結果をExcelでふるい落とすことができるようにしました。最後の2つの列は、Scottの学習とテストのPi指標で、値は-1〜1である。0=結果はランダムでMeodelは役に立たない、1=全てうまくいく、である。負の結果はダメ、逆相関、予測結果を逆にしてみるのも手です。逆相関は、予測と正反対の取引をする場合、2つのクラスでうまくいくことがあります。しかし、3つのクラスがあると、その反対を見つけるのは難しく、どのクラスにも2つの反対値があり、この場合、マイナスの値も悪いことになります。例えばxagusdのように、バックテストとフロントテストでbid(またはask)予測の値が似ていて高い通貨を選択する必要があると思います。0点満点で0.18点というのは小さいですが。また、実際の取引で1ティック先を予測することも悪いことです。一般的には結果が出ますが、適用できません :)ScottのPiのRコードScottsPi <- function(act, pred){ if(length(act) != length(pred)){ stop("different length") } n_observ <- length(act) all_levels <- unique(c(act,pred)) n_levels <- length(all_levels) marginal_matrix <- matrix(NA, ncol=n_levels, nrow=n_levels) colnames(marginal_matrix) <- all_levels rownames(marginal_matrix) <- all_levels for(i in 1:n_levels){ for(j in 1:n_levels){ marginal_matrix[i,j] <- sum((act==all_levels[i]) & (pred==all_levels[j])) } } diagSum <- 0 for(i in 1:n_levels){ diagSum <- diagSum + marginal_matrix[i,i] } diagSum <- diagSum / n_observ marginalSum <- 0 for(i in 1:n_levels){ marginalSum <- marginalSum + ((sum(marginal_matrix[i,]) + sum(marginal_matrix[,i]))/n_observ/2)^2 } p <- marginalSum return((diagSum - p)/(1-p))} データはごくわずかで、友人は普通のデータセットをぶら下げていたのですが、どこかで迷子になってしまったようです。トレーダー博士:データは少ないのですが、どこかで失われています。 また、具体的に言うと、もちろん1ティック先では本当に無駄です。少なくとも1分先では、1分通過では純粋なMM、両側のリミッター、スプレッドに比例した距離、ここでは「量子泡」、スプレッドよりずっと小さいので方向について話す意味がないのですが、このようになります。 1...254255256257258259260261262263264265266267268...3399 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
また、予測ではどのような結果が出ているのでしょうか? あえて、質問させてください。
モデル学習用に用意したスプレッドシートはこちらです。
価格は列ごとに差分に変換され、変更なしまたはNAで列が削除されています。
各列の各行に3つのラグを詰め込んだ(現在の行から前回を引いたもの、前回から既設を引いたもの、既設から既設を引いたもの)
目標 - 次の行の増減値(次の行から現在の行を引いた値を四捨五入して+-1、変化がない場合は0。)すべてのターゲットは "target_"という接頭辞を持ちます。
*他のターゲットを予測に使用することはできませんし、未来を覗き見することになります。target_」を先頭に持つすべての列は、予測因子またはintuとして使用することはできません。
問題です。
csvファイルを行単位で2分割し、学習データとfronttestを10:1の割合で配置。target_SiH7.bid(上の表)に対してモデルを学習させたところ、学習データで62%、新規データで74%の分類精度を得ることができました。嬉しかったのですが、再確認したところ、クラス0は他とのバランスが非常に悪く、金額だけで言えば60%と74%あることがわかりました。つまり、0はうまく検出できるが、-1や1はうまく検出できない、という状態である。
別のスコアが必要です。2つのアンバランスなクラスに対して、この指標は素晴らしいです -https://en.wikipedia.org/wiki/Cohen's_kappa しかし、我々のケースでは、2つではなく3つのアンバランスなクラスがあります、3に対するKappaアナログはありますか?
と聞かれたら、おそらく一義的には答えられないと思います。予測されることは非常に多く、すべてが異なるのです。しかし、平均すると約60〜65%。
面白いですね、もう少し詳しく説明してもらえますか...。
ただ、今は全く違う分野の予測をしていて、散漫な生活を送るわけにはいかないので、このマーチの日に一緒に実験をすることはできませんが、読んでいてとても面白く観察しています、もっと書いてください...。
を見ると、クラス0は他と比べて非常に偏りがあり、量だけを見ると60%と74%であることがわかります。つまり、0は非常によく検出できるようになったが、クラス-1や1については諦めてしまったということである。
Uターンのランダムフォレストを学習させたときも、当然ながらUターンの方が非Uターンよりもはるかに少ないという問題がありました。木を作れば作るほど、MOはターンクラスで点数を稼ぎ、ターン以外のクラスで集中的に点数を稼ぐようになりました。
caret にはクラスのバランスをとるためのいくつかの方法がありますが、どれも簡単です - オブザベーションの少ないクラスを2倍にしてすべてのクラスのオブザベーションの合計を同じに揃えるか、逆にオブザベーションの多いクラスから余分なオブザベーションを削除するかです。
どの方法も、バランシングを全くしないよりは利益が出ます(ただし、あくまでも私の場合ですが)。
面白いですね、もう少し詳しく説明してもらえますか...。
私はちょうど今、全く別の分野の予測に取り組んでいて、迷子になるわけにはいかないので、このマートであなたと一緒に実験をすることはできませんが、読んで観察するのはとても面白いです、もっと書いてください...。
Uターンのトレーニングをしていた時も同じ問題がありました。Uターンはもちろん、非Uターンよりもずっと少ないです。木を作れば作るほど、MOはUターン組に埋もれてしまい、無ターン組に集中するようになりました。
caret にはクラスのバランスをとる方法がいくつかありますが、いずれもオブザベーションの少ないクラスを2倍にして全クラスのオブザベーションの合計を同じに揃えるか、オブザベーションの多いクラスから不要なオブザベーションを取り除くという、些細なものです。
どの方法も、バランシングを全く行わない場合よりも利益が出ない(ただし、これはあくまで私の場合ですが)
すべて交渉可能です。私は、例えばSi、RI、BRなど、一般的に最も流動性の高いフォート先物を提案しました。結果的にシグナル(-1,0,1)(ショート,キャッシュ,ロング)を提案します。シグナルは確率よりも曖昧さがなく、注文としてMM によって歪められることがありません。後処理、標識、ターゲティングはあなた次第、または本。
いくつかの思考の後、私は少なくとも1つのより多くのガラスが追加されるべきであるという結論に来た{価格:ボリューム、...||...、価格:ボリューム }そのまま、1秒あたりの最後の、それぞれの予測された楽器のために、その後デルタは必要ありませんと入札、あまりにも尋ねる、それはIMHO必須です、もし秒ごとのテープと分割ボリュームとOMのシフト、多かれ少なかれ有益で、その後ガラス1デルタは非常に小さく、少なくとも一つは、別の "プレート "分布などを見る必要があるとそれがスタートとして十分だ。タンブラーを追加して、トレーニングデータセットを数日分投稿してください、遊びます。:)
最終的にScottのPi metricに決定https://en.wikipedia.org/wiki/Scott's_Pi
この推定では、最初の91%の行でモデルを学習させ、最後に残ったデータでフロントテストを行いました(バックテスト:フロントテストの比率=10:1)。
表の「class_0_rate」列は、クラス0とクラス-1、1との比率で、この値が高すぎる結果をExcelでふるい落とすことができるようにしました。
最後の2つの列は、Scottの学習とテストのPi指標で、値は-1〜1である。0=結果はランダムでMeodelは役に立たない、1=全てうまくいく、である。負の結果はダメ、逆相関、予測結果を逆にしてみるのも手です。逆相関は、予測と正反対の取引をする場合、2つのクラスでうまくいくことがあります。しかし、3つのクラスがあると、その反対を見つけるのは難しく、どのクラスにも2つの反対値があり、この場合、マイナスの値も悪いことになります。
例えばxagusdのように、バックテストとフロントテストでbid(またはask)予測の値が似ていて高い通貨を選択する必要があると思います。0点満点で0.18点というのは小さいですが。また、実際の取引で1ティック先を予測することも悪いことです。一般的には結果が出ますが、適用できません :)
ScottのPiのRコード
if(length(act) != length(pred)){
stop("different length")
}
n_observ <- length(act)
all_levels <- unique(c(act,pred))
n_levels <- length(all_levels)
marginal_matrix <- matrix(NA, ncol=n_levels, nrow=n_levels)
colnames(marginal_matrix) <- all_levels
rownames(marginal_matrix) <- all_levels
for(i in 1:n_levels){
for(j in 1:n_levels){
marginal_matrix[i,j] <- sum((act==all_levels[i]) & (pred==all_levels[j]))
}
}
diagSum <- 0
for(i in 1:n_levels){
diagSum <- diagSum + marginal_matrix[i,i]
}
diagSum <- diagSum / n_observ
marginalSum <- 0
for(i in 1:n_levels){
marginalSum <- marginalSum + ((sum(marginal_matrix[i,]) + sum(marginal_matrix[,i]))/n_observ/2)^2
}
p <- marginalSum
return((diagSum - p)/(1-p))
}
最終的にScottのPi metricに決定https://en.wikipedia.org/wiki/Scott's_Pi
この推定では、最初の91%の行でモデルを学習させ、最後に残ったデータでフロントテストを行いました(バックテスト:フロントテストの比率=10:1)。
表の「class_0_rate」列は、クラス0とクラス-1、1との比率で、この値が高すぎる結果をExcelでふるい落とすことができるようにしました。
最後の2つの列は、Scottの学習とテストのPi指標で、値は-1〜1である。0=結果はランダムでMeodelは役に立たない、1=全てうまくいく、である。負の結果はダメ、逆相関、予測結果を逆にしてみるのも手です。逆相関は、予測と正反対の取引をする場合、2つのクラスでうまくいくことがあります。しかし、3つのクラスがあると、その反対を見つけるのは難しく、どのクラスにも2つの反対値があり、この場合、マイナスの値も悪いことになります。
例えばxagusdのように、バックテストとフロントテストでbid(またはask)予測の値が似ていて高い通貨を選択する必要があると思います。0点満点で0.18点というのは小さいですが。また、実際の取引で1ティック先を予測することも悪いことです。一般的には結果が出ますが、適用できません :)
ScottのPiのRコード
if(length(act) != length(pred)){
stop("different length")
}
n_observ <- length(act)
all_levels <- unique(c(act,pred))
n_levels <- length(all_levels)
marginal_matrix <- matrix(NA, ncol=n_levels, nrow=n_levels)
colnames(marginal_matrix) <- all_levels
rownames(marginal_matrix) <- all_levels
for(i in 1:n_levels){
for(j in 1:n_levels){
marginal_matrix[i,j] <- sum((act==all_levels[i]) & (pred==all_levels[j]))
}
}
diagSum <- 0
for(i in 1:n_levels){
diagSum <- diagSum + marginal_matrix[i,i]
}
diagSum <- diagSum / n_observ
marginalSum <- 0
for(i in 1:n_levels){
marginalSum <- marginalSum + ((sum(marginal_matrix[i,]) + sum(marginal_matrix[,i]))/n_observ/2)^2
}
p <- marginalSum
return((diagSum - p)/(1-p))
}