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

 
Mihail Marchukajtes:

アレクセイ、ありがとうございました。必ずすべてをチェックし、結果をお知らせします。未来を見ることについては、全く重要ではありませんし、EAがインジケータの読み通りに書き込むのであれば、それは起こりません。両者の間に差がなければ、問題ないでしょう。また、新しいバーが 現れたら、最初のOIの変化を待って、最初の前のバーの新しい値を記録します。 新しい値でなく、最初のバーの最後の古い値を記録することもできます。つまり、実際には、前の小節の終わりから書き始めることになる。

重要なのは、分足に割り当てるOIではなく、ファイルからどのようにインジケータを読み込むかです。

また、トレーニングだけでなく、市場からデータを取得する際にモデルを使用することも考えてください - 最も信頼性の高いデータはそこにあります。今のところ、データはローソクのオープンで保存されます。つまり、ゼロバーでは、オープン後の変更はありません(私が正しく理解していれば:)。終値で必要な場合は、他の方法で修正することができます。 唯一の違いは、最後のバーまたはペンタイトバーの値です。

 

ネオコグニトロン - 教師を必要としない畳み込みネットワークの一種

https://habr.com/ru/post/214317/

仕組みがわかる人、解説してください

 
Aleksey Vyazmikin:

また、トレーニングだけでなく、市場からデータを取得する際にモデルを適用することも考えてください - 最も信頼性の高いデータがあるように。今のところ、データはローソクのオープニングで保存されます。つまり、ゼロバーではオープニングの後に変化はありません(私が正しく理解していれば :) )。EAがデータを取得する最後のバー、もしくは最後から2番目のバーが異なるだけで、クローズバーのデータが必要な場合は、後でこれを行うことができます。

Expert Advisor はバーの始点から動作を開始しますが、最初のバーからデータを取得します。私の場合、それは2番目のバーから取得されます。最初のバーの値が更新されるのを30秒待つべきではありませんから、これは私のバグです。だから、オープンバーで最初のOI値を書くことは、それほど怖いことではないのです。履歴に現在値を書き込むことが判明した。振り返ることはできない。そして、そんなことはどうでもよくて、コピーから取ることはしないのです。要は、インジケーターが正しく読み取ることが重要なのです。インジケータに「真の日付」という条件を含むファイルを読み込むための関数が追加されていますね。ファイルから履歴を 正しく読み込むために、次の行を追加する必要がありました。

 if(New_Data==true)
            {
               ArrayResize(oi,x+2,1000);
               if(cnt==0)
               {
               Arh_Time=StringToTime(str);///////////// Если честно в обще не понял зачем ты так это всё разделил
                  oi[x].time=Arh_Time;                 //если запись первая, т.е. дата, то конвертируем из стринга в дататайм
               }

               else if(cnt==1)
               {
                  oi[x].oi=Arh_oi;   //если запсиь вторая, т.е. ОИ, то конвертируем в инт и
                  New_Data=false;
                  x++;
               }
            }

そして、1分ごと、1ティックごとに記録されたデータを1つのファイルにまとめて、インジケーターが作動するようになった。タイムフレームの組み方も確認し、すべてうまく収まりましたが、本体のこのラインも変更しなければなりませんでした。

for(int s=f; s<count_size; s++)
            {
               //Print("Test_02");
               if(oi[s].time>time[i])
               {
                  //Print("Test_03");
                  if (s>1)BufOI[i-1]=oi[s-1].oi; /// иначе всё бралось с минутой позже
                  //Print("s=",s);
                  f=s;
                  break;
               }
               if(s+1==count_size)
               {
                  BufOI[i]=SymbolInfoDouble(Symbol(),SYMBOL_SESSION_INTEREST);
                  //Print("OI=",SymbolInfoDouble(Symbol(),SYMBOL_SESSION_INTEREST));
                  if(BufOI[i]<1)BufOI[i]=BufOI[i-1];
                  if(BufOI[i]<1 && BufOI[i-1]<1)BufOI[i]=100;
                  f=s;
               }
            }

この行は本体で変更しました。 それ以外はチャートにEAを貼り付けて、オープンを待っています。

ここでは、インジケータと感謝しない:-)です!!!!というのは冗談ですが、ありがとうございました。37ポンドでどうでしょう?稼ぎたい?

ファイル:
OI_Test.mq5  16 kb
 
Aleksey Vyazmikin:

Expert Advisor がバーのオープニングで動作する場合、たとえそれが遅延しても、ローソクのクローズでデータを供給する、つまり未来を見ることは正しいのでしょうか。そのため、先読みではなく、このローソク足より前の最も新しいデータ、つまり小さな遅延が使用されるのです。


5ティックというのはどこで計算するのですか?1分以内に取引が成立しないと、バーを見逃してしまうことがあるので、OIボリュームの変化の比較を削除し、新しいローソク足の 開始時にすぐにデータを書き込むようにしたのです。多分忘れているのでしょう、データでテストしなければなりません、昨日は何もなかったし、平日ですからね :(

ギャップがあるので、2本目のバーからその値を書き換える必要があります。しかし、私の疑問はまだ解決されていません。新しいバーの条件は、例として、ボールが開き、数ティックが経過したときに満たされ、そのときだけ起立耐性が変化するのでしょうか?
 
悲しいかな、通常時のモードでは1小節目も2小節目も記録されない。インジケーターを再コンパイルすると、履歴は読み込まれますが、3本目までで、2本目も1本目も更新されません(実際にはファイル内にあるのですが)。
 
Mihail Marchukajtes:

EAはバーのオープニングで動作し始めますが、データは最初のバーから取得されます。私の場合、2本目のバーからでさえもです。しかし、これは私のバグで、最初のバーの値の更新に30秒待つ必要はなく、2本目はすでに計算されており、かなり長い時間です。だから、オープンバーで最初のOI値を書くことは、それほど怖いことではないのです。履歴に現在値を書き込むことが判明した。振り返ることはできない。そして、そんなことはどうでもよくて、コピーから取ることはしないのです。要は、インジケーターが正しく読み取ることが重要なのです。インジケータに「真の日付」という条件を含むファイルを読み込むための関数が追加されていますね。ファイルから履歴を 正しく読み込むために、次の行を追加する必要がありました。

そして、1分ごと、1ティックごとに記録されたデータを1つのファイルにまとめて、インジケーターが作動するようになった。タイムフレームの組み方も確認し、すべてうまく収まりましたが、本体のこのラインも変更しなければなりませんでした。

この行は本体で変更しました。 それ以外はチャートにEAを貼り付けて、オープンを待っています。

ここでは、インジケータと感謝しない:-)です!!!!というのは冗談ですが、ありがとうございました。37ポンドでどうでしょう?お金を稼ぎたいのか?

ゼロバーを使わなければ、もちろん先読みも可能です。ここではカスタマイズしたものを、データとの付き合い方でやっています。

ただ一つ、戸惑うことがあります。

if (s>1)BufOI[i-1]=oi[s-1].oi; /// иначе всё бралось с минутой позже

この不平等が尊重されない場合があります。最初のティックの時刻がローソクのオープン時刻と一致しない場合があるため。ファイルから時間の代わりに保存する。

Arh_Time=StringToTime(str);

変数NewTimeから時刻を分単位で切り捨てる。

そして、報酬についてですが、私はすでにそれを獲得していると思いました :)


Mihail Marchukajtes:
はい、ギャップが発生するので、2本目のバーから値を書き換える必要があります。ただ、疑問は残りますが、例えば玉が開いて数ティック通過した後、OIが変更された場合、新しいバーの条件は満たされるのでしょうか?

新しいバーのチェックは、出来高が変化した後に行われるので、コードの中でエントリーが行われる部分まで行きましょう。


Mihail Marchukajtes:
悲しいことに、ラルタイムモードでは1小節目も2小節目も書き込まないのです。インジケーターを再コンパイルすると、履歴は読み込まれますが、3本目までしか読み込まれず、2本目も1本目も更新されません(実際にはファイル内にあるのですが)。

どこを書かないの?Expert Advisorが書かない?1分間に数回書き込む旧バージョンのEAを試して、それでインジケータが正しく動作するかどうか確認してください。

 
Aleksey Vyazmikin:

ゼロバーを使わなければ、もちろん先読みも可能です。ここでは、データとの付き合い方を自分なりに工夫しています。

ただ、私は混乱しています。

この不平等が尊重されない場合があります。最初のティックの時刻がローソクのオープン時刻と一致しない場合があるため。ファイルから時間の代わりに保存する。

変数NewTimeから時刻を分単位で切り捨てる。

そして、報酬についてですが、私はすでにそれを獲得していると思いました :)


ボリューム変化後の新しいバーをチェックするので、コードの書き込みが行われる部分に到達する必要があります。


どこが書いてないんだ?EAが書かない?1分間に数回書き込む旧バージョンのEAで、インジケータが正常に動作するか試してみてください。

今、EAを扱っているのですが、ファイルの最初のバーの値をなぜか変え続けてしまいます。新しいバーは必ず良くなると感じています。今確認していなかったら、つまずいていた。

そして、再コンパイルするたびにHZとは?すでにいろいろと試してみましたが、読み込むこともあれば、読み込まないこともあります...。

 
Mihail Marchukajtes:

Expert Advisorを使用していますが、なぜかファイルの最初のバーの値が変更され続けています。新しいバーはいつも暗くなっている気がします。今確認したところ、再コンパイルするとそのようになるようです。

そして、再コンパイルするたびにHZとは?いろいろ試したのですが、読み込める時と読み込めない時があります...。

私のEAでは、あなたのEAを全く書きませんね〜。すでに試しましたが、うまくいきません。開閉はしないでほしいです。

 
Aleksey Vyazmikin:

私のEAでは、あなたのEAを全く書かないんですよ~、解明しないとね。もしくは、Siが書くだけの作業用バージョンを送ってください。

現在の先物取引を随所で指定する必要があります。もちろん、Spliceでは使えません。代替品を使おうとすると、1本目のバーは常に変化しているのに、2本目までしかコンパイルして動かない現在のバージョンのインディケータを表示することになります。

ファイル:
 

アレクセイ、新しいバーが 表示されたときに、最初のバーのファイルから読み取るようにすることは可能でしょうか?実際にはチャートに立たず、シグナルからシグナルへと定期的に呼び出されることになるのですが...。問題は、EAがMarketBookを使用しており、インジケータが取引所からデータを受信していることです。マーケットブックモニタリングを使えば、このインプットでインジケーターが動き出すと思うのですが。儲かる!!!!!!!

OMの入手先はEAのみであるべきで、交換所への重複依頼は許されないと思いますし、そうでなければ、わざわざ交渉に行くだけです。いかがでしょうか?

Обработчик события "новый бар"
Обработчик события "новый бар"
  • www.mql5.com
Для создателей индикаторов и экспертов всегда был актуален вопрос написания экономичного кода с точки зрения времени выполнения. Можно подойти к решению этой задачи с разных сторон. Из этой обширной темы в данной статье будет затронут, казалось бы уже решенный вопрос: проверка появления нового бара. Это достаточно популярный способ ограничения...