多通貨対応のインジケータを開発する方法をご存知の方はいらっしゃいますか? - ページ 2

 

最初にACRを呼び出すと、エラー4066が発生します。これで終わりです。もう一度呼び出すと、有効なカウントが得られますが、アレイにデータはありません。配列にアクセスしても圏外に なることはありません。

 
WHRoeder:

最初にACRを呼び出すと、エラー4066が発生します。それだけです。もう一度呼び出すと、有効なカウントが得られますが、アレイにデータはありません。配列にアクセスしても、範囲外にはなりません。

私は、あなたが今説明されたものを見ていないので、同意しかねます。しかし、これは、私のリアルライブ使用では、ほとんどの場合、すべてのデータが通常利用可能であり、私のデモ/テスト環境では、外部データから".hst "と".fxt "を生成しているためであるかもしれません。

ローカルデータがない「まっさらな状態」を再現して、おっしゃるようなことが再現できるかどうか試してみたいと思います。

 

私は「クリーン スレート」条件を再作成し、スリープ機能 なしの連続ループでこれをテストする小さなスクリプトをコーディングしました。EURUSD」チャートに対してスクリプトを2回実行しましたが、コードにはこれまで読み込まれなかった「NZDCAD」のデータを要求させました。

最初の実行の結果は以下の通りです。

  • 最初の 73607 回(約 516 ミリ秒)の反復の間、「ArrayCopyRates」は常にカウント -1 を返し、4073 エラー(Error 4073 - No history data)を発生させました。これらの繰り返しでは、配列のサイズは常に0でした。

  • 73608回目の反復でようやく512のカウントを返し、配列サイズも512に設定され、0番目の要素の時刻は有効な時刻(0ではない)を持ち、エラーは発生しませんでした。

最初の1回の繰り返しで、「ArrayCopyRates」は2048のカウントを返しましたが、カウントが有効であるにもかかわらず4066エラーが発生しました(Error 4066 - Requested history data is in updating state)。
  • Arrayのサイズも2048で、0番目の要素の時刻は有効(0ではない)でした。

  • テストスクリプトと結果のログファイルをZIPファイルに添付しました


あなた自身の結論を出すために残しておいてください。

PS!私の結論は、先に進む前にすべてのテストを組み合わせることです。(すなわち、"ArrayCopyRates "の戻りコードをテストし、エラーコードをチェックし、MqlRates配列のサイズをテストし、(WHRoederが 言うように安全策として)配列要素の日付の妥当性もテストします。

EDIT: もし私が「pair[0].time == 0」テストだけを使用していたら、データが利用できない最初の実行の反復中に、配列インデックスエラーが発生したでしょう(そして実行を停止させたでしょう)。したがって、リターンコードと配列サイズをチェックする必要がありますが、他の条件が満たされれば、timeテストがその後の検証のレベルを提供できることに同意するという私の声明に従います。

ファイル:
testacr.zip  217 kb
 
不思議なことに、このスレッドが立ってから、元の投稿者のコメントが一つもないのです。この人はこれを見ているのだろうか?
 
FMIC:
  • 最初の73607回(約516ms続く)の反復の間、「ArrayCopyRates」は常に-1のカウントを返し、4073エラー(Error 4073 - No history data)を発生させました。これらの反復処理の間、配列のサイズは常に0でした。
  • 73608回目の反復でようやく512のカウントを返し、配列サイズも512に設定され、0番目の要素の時刻は有効な時刻を持ち(0ではない)、エラーは発生しなかった。
これは、ビルド前の600バージョンとはちょうど逆の動作です。
これは、私がもともと予想していたことですが、間違っていることが証明されていました。
彼らはついにそれを正しく理解したので、今後のためにこれを記録しておきます。
 
FMIC:


EDIT: "pair[0].time == 0" テストだけを使用していた場合、データが利用できない最初の実行の反復中に、配列インデックスエラーが発生したでしょう(そして実行が停止されたでしょう)。したがって、リターンコードと配列のサイズを確認する必要がありますが、他の条件が満たされれば、timeテストがその後の検証のレベルを提供できることに同意するというのが、私の主張です。


これはすべて非常に有用です、調査と結果に感謝します。

 
FMIC:
このスレッドが開始されたので、どのように元のポスターで単一のコメントはありませんように、奇妙な。彼はこれを見ているのでしょうか?

なぜ、この投稿に従わなければならないのでしょうか。その後の投稿は、このフォーラムのほとんどの人にとって理解できるレベルをはるかに超えています。

このフォーラムに参加されている方々の理解を超えています。

今すぐ元の質問に答えるために念のため、元のポスターがまだ残っている可能性がある、Googleはあなたの友人です。

 
4x_Gypsy:

シンプルに、正確に、質問に答えてみてはいかがでしょうか?

私たちは、本質的な質問に答えました。「1〜10種類の通貨と、各通貨に対応する5本のバーを選択 したい。"

彼はコードの例や詳細を提供しなかったので、簡単で正確な答えを与えることができませんでした。 私たちにできることは、一般的な答えと、彼が直面するであろう問題の認識を提供することだけでした。ArrayCopyRates()」や「iFunctions()」を使うべきであり、明らかに発生する遅延やエラーは把握しておく必要があると答えました。その上で、Indicatorsにsleep関数が ないことや、600以前のビルドとそれ以降のビルドで動作が異なることなど、落とし穴や問題点を説明し、情報を補完しました。

もし、これが彼の頭の中にあるものだと言うのなら、彼がしなければならないことは、次のような趣旨の投稿をすることでした。「すみません、よくわかりません。簡単に説明してくれませんか!」という趣旨の投稿をすればよかったのです。 しかし、そのような投稿はなかったため(それどころか、他の投稿もなかった)、彼や他の人がそれに従うことができると信じて議論が続けられたのです。

今、あなたが書いたように、彼はGoogleを使って多くのマルチタイムフレームIndicatorを見つけることができましたが、それでも彼がHow it worksを知らなければ、彼が望むように自分のIndicatorを機能させることはあまりできないでしょう。

EDIT: PS!NB!改めて考えてみると、実はWHRoederは 問題の解決策としてスケルトンコードを提供していたのです。元の質問に詳細がないことを考えると、これ以上シンプルで正確なものはないでしょう。

 
FMIC:

要するに質問には答えました。「1~10種類の通貨と、各通貨に対応する5本のバーを選択 したいのですが。"

彼はコードの例や詳細を示さなかったので、簡単で正確な答えを出すことはできませんでした。 私たちにできることは、一般的な答えと、彼が直面するであろう問題の認識を提供することだけでした。ArrayCopyRates()」や「iFunctions()」を使うべきであり、明らかに発生する遅延やエラーは把握しておく必要があると答えました。その上で、Indicatorsにsleep関数がないことや、600以前のビルドとそれ以降のビルドで動作が異なることなど、落とし穴や問題点を説明し、情報を補完していきました。

もし、これが彼の頭から離れなかったと言うなら、彼がすべきことは、次のような趣旨の投稿をすることだった。「すみません、よくわかりません。というような投稿をすればよかったのです。 しかし、そのような投稿がなかったため(それどころか、他の投稿もなかった)、彼や他の人がそれに従うことができると信じて議論が続けられたのです。

今、あなたが書いたように、彼はGoogleを使って多くのMulti-time-frame Indicatorを見つけることができましたが、それでも彼がHow it worksを知らなければ、自分のIndicatorを思い通りに動作させることはあまりできないでしょう。

EDIT: 追記!NB!改めて考えてみると、WHRoederは 実際にスケルトンコードを問題解決として提供していました。元の質問の詳細が欠けていることを考えると、これ以上シンプルで正確なものはないでしょう。

質問は、「誰か多通貨対応のインジケーターを 開発する方法を知っていますか」でした。

OPが実際に何を必要としているのか、詳細を尋ねることも待つこともなく、「はい、私たち(FMICとWHRoeder)は知っています、ただ私たちがそれについて議論しているのを見てください」というのが明白な答えでした。

彼/彼女がそのインジケーターでやりたかったことは、「1~10種類の通貨と各通貨の5本のバーを選択したい」でした。

はい、例題が提供されました。しかし、それはあなた方2人のコンテストとして提供されたのです。興味深い議論ですか?そうですね。知らなかったことを知ることができました。初心者が理解できるような例が提供されていたか?そうでもないです。MetaTraderからの支援やチュートリアルがないため、人々はこのフォーラムにやってきます。ここに投稿するほとんどの人は、自分がやりたいことを最低限理解しており、議論が自分の理解を超えて進みすぎると、離れていってしまいます。これは非常に残念なことです。

大きなヒントは、「でも、どうしたらいいかわからない」でした。

OPから何の反応もないのは、何か問題があることを示しています。私の推測では、OPは理解不足でイライラして、このスレッドを放棄したのではないでしょうか。数年前、私も同じようなことをした時期がありました。誰も私がいかに新米であるかを理解するのに時間をかけず、絶えず例を投稿し、当時の私の理解を完全に超えた議論をしていたので、私はここより別のサイトやフォーラムから多くを学びました。

しかし、OPが消えてしまったので、もうそんなことは どうでもよくなってしまいました。

この人は、このフォーラムや他のフォーラムがとても必要としている次の第一人者かもしれませんし、そうなる可能性もあります。

 
4x_Gypsy:

大きなヒントは「でも、どうしたらいいのかわからない」でした。

OPから何の反応もないのは、何か問題があることを示しています。私の推測では、OPは理解不足でイライラして、このスレッドを放棄したのだと思います。数年前、私も同じようなことをした時期がありました。なぜなら、誰も私がいかに初心者であるかを理解するのに時間をかけず、絶えず例を投稿し、当時の私の理解を完全に超えた議論をしていたからです。

あなたの視点は正しいかもしれませんが、一方で、ドキュメントを見れば簡単に答えが見つかるような質問を何度も目にし、そのような質問に何度も答えている自分が馬鹿らしくなってきました。

さらに、ここにはgoogleと検索オプションがあります。もし私が何かをする方法を知らないなら、これが私の次のステップで、自分で問題を解決しようとすることでしょう。

さて、このスレッドのトピックです。「多通貨システムを開発する方法」です。これは、「無料でコーディングを教えてください」ということで、「私のためにコーディングしてくれませんか」にかなり近いと思うのですが、いかがでしょうか。これだけだと、かなり本気じゃないですよね。

無料で利用できるコードがたくさんあるのですから、私の答えはこうでした。"googleかここで検索して無料のコードを見つけ、それを変更する!"でした。

もし、このことで気分を害する人がいたら、それはその人の問題だと思います。