トレーディングにおける機械学習:理論、モデル、実践、アルゴトレーディング - ページ 2065 1...205820592060206120622063206420652066206720682069207020712072...3399 新しいコメント Forester 2020.11.02 11:02 #20641 Evgeniy Chumakov: 履歴に空白がなく、全日で1440分(金曜日は少ない)あると仮定すると、コードは以下のようになります。 eurusdでもギャップがある。バータイムを使った作業 Evgeniy Chumakov 2020.11.02 11:06 #20642 elibrarius: eurusdでもギャップは発生します。 バータイムとの連携 それは理解できる。もし私がそうしたら、そうすることになるだろう。これは、あくまでも説明を簡単にするためのものです。 Aleksey Nikolayev 2020.11.02 11:43 #20643 どうにか動くようです) 保存するために、新しい行をrates[i].highに収集します。 #property script_show_inputs //+------------------------------------------------------------------+ input datetime tstart = D'2020.5.1 00:00'; // начало промежутка исследуемого времени input datetime tstop = D'2020.10.1 00:00'; // конец промежутка исследуемого времени string zztn = "dvol\\" + _Symbol + ".txt"; // text file name //+------------------------------------------------------------------+ #define NM 1440 ulong NSM = 60; ulong NSD = 60 * 1440; //+------------------------------------------------------------------+ void OnStart() { MqlRates rates[]; double vol[NM] = {0.0}, d; int n[NM] = {0}, t; int nprice = CopyRates(Symbol(), PERIOD_M1, tstart, tstop, rates); for(int i = 0; i < nprice; ++i) { t = (int)((((ulong)rates[i].time) % NSD) / NSM); d = rates[i].close - rates[i].open; ++n[t]; vol[t] += d * d; } for(int i = 0; i < NM; ++i) { if(n[i] > 1) vol[i] /= n[i]; vol[i] = sqrt(vol[i]); } for(int i = 0; i < nprice; ++i) { t = (int)((((ulong)rates[i].time) % NSD) / NSM); if(vol[t] > 0) rates[i].high = (rates[i].close - rates[i].open) / vol[t]; if(i > 0) rates[i].high += rates[i - 1].high; } int ft = FileOpen(zztn, FILE_WRITE | FILE_COMMON | FILE_ANSI | FILE_TXT); FileWriteString(ft, "t p"); for(int i = 0; i < nprice; ++i) FileWriteString(ft, "\n" + (string)((ulong)rates[i].time) + " " + (string)rates[i].high); FileClose(ft); } Forester 2020.11.02 12:58 #20644 アレクセイ・ニコラエフ: どうにか動くようです) 保存するために、新しい行はrates[i].highに収集されます。 過去のバー、例えば2020.5.1 00:00から未来のバー、c 2020.10.1 00:00とその間のバーを正規化するのです。 現実の市場ではできないことです。 すべてのバーについて同じ計算をする必要がありますが、過去のバーについてだけです。 Forester 2020.11.02 13:31 #20645 アレクセイ・ニコラエフ: どうにか動くようです)保存するために、新しい行を rates[i].high に収集します。 ネット/フォレストでは、正しい操作を行ったとしても、その正規化されたローソク足の高さを非常に正確に再現することができるのです。 フェッチとして、日オフセット付きの60本のローソク足の高さをフィードし、あなたのコードで得られた正規化された高さを教えます。 トレーニングの精度は100%に近いはずです。 。 すなわち、正規化されたローソク足の高さは、新しい情報を含んでいません。 唯一の利点は、モデルトレーニングに60の余分な機能を渡す必要がないことです。 それは、誰かが2ヶ月古いバー、すなわちそれらを提出していない人のための新しい情報として提出することはほとんどありません、まだある)。 もちろん、これらの正規化されたローソク足の高さがモデルの効率を向上させるかどうかを確認すべきですし、もちろんそれを使うべきです(あるいは、あなたのチップの1つがより好ましいですが、それが構成する60分の1でもかまいません)。 mytarmailS 2020.11.02 14:07 #20646 そうしないと、3ページも書いてしまって、エネルギーが無駄になるし、誤差が半端なく大きくなってしまう。 Aleksey Vyazmikin 2020.11.02 14:26 #20647 elibrarius: それは不思議ですね。どう説明すればいいんだろう? 別バージョンをコメントアウトしてあるのですが、論理的な理由で好きになれなかったんです。どのRandomInteger()を使っているのですか? 私はXORです。 どう説明したらいいのかわからない :) この機能を利用した int RandomInteger(int max_vl) { return (int)MathFloor((MathRand()+MathRand()*32767.0)/1073741824.0*max_vl); //случайное Int от 0 до 1073741824 } Aleksey Vyazmikin 2020.11.02 14:29 #20648 Maximさん、CatBoostから C++用のモデルが正しくアンロードされていないのではないかという疑いがあります。 MQL5のモデル解釈で、CPPモデルから取得した値と、バイナリモデルから取得した値に食い違いがあるのですが、どうしたらいいでしょうか?デルタは約0.15-。 Aleksey Nikolayev 2020.11.02 14:39 #20649 elibrarius: 過去のバー、例えば2020.5.1 00:00から未来のバー、2020.10.1 00:00からとその間のバーを正規化することができます。 現実の世界では、こんなことはしない。 各バーからほぼ同じ計算をする必要がありますが、それについては過去のバーからだけです。 そう、未来を見据えることはもちろん、すぐにはわからない問題もそこにあるのです。直接取引にはなかなか応用できないが、事前分析には代えがたい。例えば、非相対的な増分の相関は意味をなさない。 Forester 2020.11.02 15:00 #20650 アレクセイ・ニコラエフ: たしかに、すぐにはわからない問題点も垣間見えます。直接取引には、あまり適用できませんが、事前分析には、欠かせません。例えば、非相対的な増分の相関を計算しても意味がない。 それを踏まえて、いつか以前のバーについてもやり直し、トレーニング性が向上するかどうかをチェックすることになるかもしれませんね。 どなたか先に確認された方がいらっしゃいましたら、教えてください。 事前分析とは?入力にモデルを与えて、この機能の有無で比較するのです。 過去30分で正規化した方が良いと思う。 代替案として、この日の最後の30分と5日前の30分。 3月のボラティリティの変化については、バリアントが適応するのに非常に時間がかかり、1ヶ月、2ヶ月前に比べて現在の値はずっと高くなります。その結果、モデルは未知の領域で動作することになります。また、そのような作品の事例がないため、予測を立てることができません。 先週から正常化したことで、新しいゲームのルールをより早く学ぶことができるだろう。 1...205820592060206120622063206420652066206720682069207020712072...3399 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
履歴に空白がなく、全日で1440分(金曜日は少ない)あると仮定すると、コードは以下のようになります。
eurusdでもギャップは発生します。 バータイムとの連携
それは理解できる。もし私がそうしたら、そうすることになるだろう。これは、あくまでも説明を簡単にするためのものです。
どうにか動くようです) 保存するために、新しい行をrates[i].highに収集します。
どうにか動くようです) 保存するために、新しい行はrates[i].highに収集されます。
過去のバー、例えば2020.5.1 00:00から未来のバー、c 2020.10.1 00:00とその間のバーを正規化するのです。
現実の市場ではできないことです。
すべてのバーについて同じ計算をする必要がありますが、過去のバーについてだけです。
どうにか動くようです)保存するために、新しい行を rates[i].high に収集します。
フェッチとして、日オフセット付きの60本のローソク足の高さをフィードし、あなたのコードで得られた正規化された高さを教えます。
トレーニングの精度は100%に近いはずです。
。
すなわち、正規化されたローソク足の高さは、新しい情報を含んでいません。
唯一の利点は、モデルトレーニングに60の余分な機能を渡す必要がないことです。
それは、誰かが2ヶ月古いバー、すなわちそれらを提出していない人のための新しい情報として提出することはほとんどありません、まだある)。
もちろん、これらの正規化されたローソク足の高さがモデルの効率を向上させるかどうかを確認すべきですし、もちろんそれを使うべきです(あるいは、あなたのチップの1つがより好ましいですが、それが構成する60分の1でもかまいません)。
それは不思議ですね。どう説明すればいいんだろう?
別バージョンをコメントアウトしてあるのですが、論理的な理由で好きになれなかったんです。
どのRandomInteger()を使っているのですか? 私はXORです。
どう説明したらいいのかわからない :)
この機能を利用した
Maximさん、CatBoostから C++用のモデルが正しくアンロードされていないのではないかという疑いがあります。
MQL5のモデル解釈で、CPPモデルから取得した値と、バイナリモデルから取得した値に食い違いがあるのですが、どうしたらいいでしょうか?デルタは約0.15-。
過去のバー、例えば2020.5.1 00:00から未来のバー、2020.10.1 00:00からとその間のバーを正規化することができます。
現実の世界では、こんなことはしない。
各バーからほぼ同じ計算をする必要がありますが、それについては過去のバーからだけです。
そう、未来を見据えることはもちろん、すぐにはわからない問題もそこにあるのです。直接取引にはなかなか応用できないが、事前分析には代えがたい。例えば、非相対的な増分の相関は意味をなさない。
たしかに、すぐにはわからない問題点も垣間見えます。直接取引には、あまり適用できませんが、事前分析には、欠かせません。例えば、非相対的な増分の相関を計算しても意味がない。
どなたか先に確認された方がいらっしゃいましたら、教えてください。
事前分析とは?入力にモデルを与えて、この機能の有無で比較するのです。
過去30分で正規化した方が良いと思う。
代替案として、この日の最後の30分と5日前の30分。
3月のボラティリティの変化については、バリアントが適応するのに非常に時間がかかり、1ヶ月、2ヶ月前に比べて現在の値はずっと高くなります。その結果、モデルは未知の領域で動作することになります。また、そのような作品の事例がないため、予測を立てることができません。
先週から正常化したことで、新しいゲームのルールをより早く学ぶことができるだろう。