記事についてのディスカッション - ページ 4

 
afsmerinostra:

こんにちは、スタニスラフ!

新しい発見がたくさんありました!

RENCOの反転バー形成のロジックは、コードのどこを見ればいいのか教えてください。私はプログラミングの初心者なので、具体的に教えていただけるとありがたいです。

OPENのままではダメなのでしょうか、なぜ反転時に動かすのでしょうか?テスターでも一般でも、その方がずっと簡単だと思うのですが。renkoでは歴史的にそうなのでしょうか?また、「正しさ」以外の実用性はあるのでしょうか?

RenkoTicksのすべてのバーは同じアルゴリズムに従って作られているようです(それについて話している場合)。インジケーターでシグナルを構築する方が論理的であり、カスタムシンボルジェネレーターを使う意味はないと思います。

オープンムーブメントについては理解できません。古典的なrenkoのボックスは定義上同じサイズであり、反転はボックスのサイズのギャップによってマークされます。ギャップがないものも含めて)他の種類のrenkoがありますが、それは記事にはありません。

 
レンコブロックの芯がボディーより大きいのはどうしてですか?
 
Adren6:
レンコ・ブロックのウィックがボディーより大きいのはなぜですか?

ウィックは、前のボックスが完成してから次のボックスが完成するまでの間の値動きを表示します。例えば、上昇ボックスが終了した場合、その距離が必要なボックスサイズより小さいと、価格が何ポイントか上昇して次のボックスが形成されないことがあります。その後、価格は下降を始め、最後の上昇ボックスと横並びになり、下方向のボックスをすべてカバーします(まだ新しいボックスにはなりません)。この瞬間、新たな下降ボックスが形成され、上昇したウィックは前回の上昇ボックスと、次の上昇ボックスを形成するのに十分でなかった前回の上昇動作の距離をすべて示します。

芯の大きさは常に2ボックスサイズより小さく、これは逆張りにつながる距離だからです。逆行が発生しない限り、ウィックはすべてのボラティリティを収集します。

 
Stanislav、私はRenkoチャートで操作できるものを探していました。トレーダーに大きな価値を提供してくれてありがとう。エキスパートアドバイザーは、取引開始時刻と終了時刻を指定するだけです。
 

また、「HistoryCache: container header read error [0]」に続いて「HistoryBase: invalid container (1970.01.01) found」にも遭遇した。

同時に、カスタムツールの履歴から2022年1月の履歴が削除され、12月31日から今日までの空白ができます。

これは2台のコンピュータでのみ発生し、リソースは十分です。

スラバさん、再現にはどのような詳細が必要ですか?

 
Andrey Khatimlianskii #:

また、「HistoryCache: container header read error [0]」に続いて、「HistoryBase: invalid container (1970.01.01) found」にも遭遇した。

これにより、カスタムツールの履歴から2022年1月の履歴が削除され、12月31日から今日までの空白ができた。

これは2台のコンピュータでのみ発生し、リソースは十分です。

スラバさん、再現にはどのような詳細が必要ですか?

IMHOは、AndroidがGoogle Playにハングアップやエラーメッセージを送信する方法と同じように、ずっと前に端末のベータ版に自動報告機能を組み込むことができたはずです。

そうすれば、状況を再現して証拠を提供するためにタンバリンで踊る必要はなくなる。ダンプの形で必要な情報はすべて、ユーザーの同意によってMQに送られる。

しかし、どうやらこれはMQにはふさわしくないようだ。なぜなら彼らはSDを閉鎖してしまったからだ。もし自動報告者がいれば、バグ報告が殺到するだろう。

 
Stanislav Korotky #:

IMHOは、アンドロイドがハングアップやエクセプツをグーグルプレイに送信するのと同じように、一昔前なら端末のベータ版に自動リポータを組み込むことができたと思う。

そうすれば、状況を再現して証拠を提供するためにタンバリンと踊る必要はなくなる。ダンプの形で必要な情報はすべて、ユーザーの同意によってMQに送られることになる。

しかし、どうやらこれはMQにはふさわしくないようだ。なぜなら彼らはSDを閉鎖してしまったからだ。また、もし自動報告機があれば、バグ報告が殺到するだろう。

サービスデスクの閉鎖後、ユーザーによって発見されたエラーを修正するのが非常に難しくなったのは同意する。

fxsaberだけがどうにかして彼の考えをMQに持ち込もうとしている。

どうやら、私たちはすでに、今あるもので仕事をし、何も待つべきでない段階にいるようだ。

 

カスタム・シンボルを 使用する際、スプレッドに何らかのスケーリングが適用されますか?

EURUSDのDukascopyのティック・データをインポートしました(EURUSD_TDSと名付けました)。 カスタム・シンボルの "Ticks "タブに表示される価格と、以下のコードを使用して同じ 期間に表示される価格を比較すると、Bid価格はほとんど同じですが、Ask価格が異なるため、スプレッドが "Ticks "タブよりも大幅に低くなっています。また、ティックのタイミングも異なり、少し驚きましたが、最も懸念されるのはスプレッドの問題です。

void OnTick()
{
   double Ask = SymbolInfoDouble(_Symbol,SYMBOL_ASK);
   double Bid = SymbolInfoDouble(_Symbol,SYMBOL_BID);
   datetime now = TimeCurrent();
   
   if ((now >= StartDate) && (now < EndDate))
   {
      double spread = (Ask - Bid) / _Point;
      writeToLog(StringFormat("%s, %.5f, %.5f, %.i", (string)now, Bid, Ask, (int)spread));
   }
}


生データのスプレッドは11ポイントから67ポイント。 EAが見ているのは、スプレッド9または26pt...

 
Mr David Frederick Roberts カスタムシンボルを 使用する場合、スプレッドに何らかのスケーリングが適用されるのですか?

EURUSDのDukascopyのティック・データをインポートしました(EURUSD_TDSと名付けました)。 カスタム・シンボルの "Ticks "タブに表示される価格と、以下のコードを使用して同じ 期間に表示される価格を比較すると、Bid価格はほぼ同じですが、Ask価格が異なるため、スプレッドが "Ticks "タブよりも大幅に低くなっています。また、ティックのタイミングも異なっており、少し驚きましたが、最も懸念されるのはスプレッドの問題です。


生データのスプレッドは11ポイントから67ポイント。 EAが見ているのは、スプレッド9または26pt...

スプレッドの「スケーリング」はありませんが、おそらく干渉する他のニュアンスがある可能性があります。例えば、real ticks モードでテストしていて、固定スプレッドのオプションを有効にしていないことを確認してください(右側のログによると、すべてのバーで同じスプレッドのように見えます)。

UIテーブルとEAログの両方で正確なティックシーケンス(msecsを含む)を見ることができればいいと思います - 現在のスクリーンショットは同じティックシーケンスを示していないようです。

 
Stanislav Korotky #:

こんにちは、スプレッドの「スケーリング」はありませんが、おそらく干渉する他のニュアンスがある可能性があります。たとえば、real ticks モードでテストしていて、固定スプレッドのオプションを有効にしていないことを確認してください(右側のログによると、すべてのバーで同じスプレッドがあるように見えます)。

UIテーブルとEAログの両方で正確なティックシーケンス(msecsを含む)を見ることができればいいと思います - 現在のスクリーンショットは同じティックシーケンスを示していないようです。

ご回答ありがとうございます。 これは非常に奇妙なことで、私は確かにリアルティックモードを使用しており、私はMT5に固定スプレッドオプションがあることを知らなかったので、私はそうでないことを確信しています(私はMT4に精通しています)。私は、スプレッドが各バーで同じであることを見抜いていませんでした。実際、ファイル全体を見ると、スプレッドは1分足でのみ変化しているようです。 SymbolInfoDouble()への呼び出しは、OnTick()イベント呼び出しの結果として処理されているティックの価格を返すべきであり、何らかのM1値ではないと考えていますが、正しいでしょうか?

以下のコードを使用して、実際のティック時間をミリ秒単位で表示してみましたが、ミリ秒の値は常にゼロです。

void OnTick()
{
   double Ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
   double Bid = SymbolInfoDouble(_Symbol, SYMBOL_BID);
   long timeMillis = SymbolInfoInteger(_Symbol, SYMBOL_TIME_MSC);
   datetime now = TimeCurrent();
   
   datetime time = (datetime)(timeMillis / 1000);
   long millis = timeMillis % 1000;
   
   if ((now >= StartDate) && (now < EndDate))
   {
      double spread = (Ask - Bid) / _Point;
      writeToLog(StringFormat("%s.%i, %.5f, %.5f, %.2f", (string)time, millis, Bid, Ask, spread));
   }
}

EDIT:私はMQL5に比較的慣れていないと言いましたが、SymbolInfoTick()を見つけました。


ミリ秒の値が常にゼロであるというのは私の勘違いでした!

私のトレーディングEAは、インポートされたティック・データと一致する価格のティックを受信することを期待しています(他のEAも同様です!)。 何かが間違っているのだと思いますが、もしそうなら、それが何なのか知りたいです。テストEAのzipファイル、午前0時から1時間後の結果のスプレッドシート、設定とティックのスクリーンショットを添付します。

ファイル: