エラー、バグ、質問 - ページ 594

 
Interesting:

開発者はどのような場合でも、すべてをローカライズし、SRにアプリケーションを作成し、専門家を添付して、できるだけ詳細に説明するよう求めるでしょう。

彼らは開発者(ご存じですね)であり、テレパソは今日はお休みです。:)

それでいいんです))今度は私がローカライズします))

テレパシーは関係ない。ポイントは、このようなエラーは初めてで、特定のケースで発生すると思っていたので、少なくともどのようなケースで発生するのかをフォーラムでアドバイスし、私自身が解決することです。

つまり、どのような場合にアクセス違反の書き込み(0x-code)やアクセス違反の読み出し(0x-code)が発生するのかが知りたいのです。このプログラムには1ヶ月ほど触れていません。この問題は、あるビルドの後に発生し始めた可能性があることを意味します。おそらく開発者のチェックが厳しくなり、今はもっと正しいコードを書く必要があるのでしょう。しかし、2万行にも及ぶコード行のどこからエラーを探せばいいのでしょうか?)))

 
tol64:

大丈夫です(^^))これからローカライズします))

テレパシーは関係ない。このようなエラーは初めてで、特定のケースで発生するものと思っていましたので、せめてどのようなケースなのかフォーラムで提案し、自分で対処しようと思っています。

つまり、Access violation write (0xcode) とAccess violation read (0xcode) が発生するタイミングを知りたいのですが?このプログラムには1ヶ月ほど触れていません。この問題は、あるビルドの後に発生するようになったということです。おそらく開発者のチェックが厳しくなり、今はもっと正しいコードを書く必要があるのでしょう。20,000行にも及ぶコード行の中から、どこを探せばエラーが見つかるのか?)))

Cに変換してみると、勝手にエラーが出ます。また、一般的に、このようなプロジェクトでは、将来的に問題を起こさないためには、それしか書く方法がないのです。残念ながら、私自身は理解するのが遅かったので、今、書き直しています :)
 

皆さん、既存のバッファの最大値/最小値を特定するコンパクトな方法(多分、関数が存在します)を教えてください。単に特定するだけでなく、値が最大/最小のバッファは何かを判断する。

例えば、4つのバッファがあるとすると、最も単純に思いつくのは、まず1番目のバッファと他のバッファを比較することです(if(one[0]<two[0] && one[0]<three[0]&& ...のように)。もしそれが偽であれば、同じように2つ目を比較する、というように。しかし、これではちょっと面倒です。

 
Cmu4:

皆さん、既存のバッファの最大値/最小値を特定するコンパクトな方法(多分、関数が存在します)を教えてください。単に特定するだけでなく、値が最大/最小のバッファは何かを判断する。

仮に4つのバッファがあるとすると、最も単純に思いつくのは、まず最初のバッファを他と比較し(if(one[0]<two[0] && one[0]<three[0]&& ...など)、次に2つ目を同じ方法で比較し、といったことでしょう。しかし、これではちょっと面倒です。

ArrayMinimum は配列の最小値のインデックスを返し、ArrayMaximum も同様である。

複数のバッファを比較したい場合は、極値を取得して、if や fmin, fmax を使って比較することができます。

 
Cmu4:
この方法は、上に書いた単純なブルートフォースより少ないリソースで済むと思いますか?

まさかね。

とはいえ、検索する配列の長さが3〜4小節で、配列の長さが2〜3小節であれば、より高速になります。

 
Urain:

ArrayMinimum は配列の最小値のインデックスを返し、ArrayMaximum も同様な動作をします。

複数のバッファを比較したい場合は、極端な値を取得して、if や fmin, fmax を使って比較することができます。

機能の説明を読んだだけなのに...。

ArrayMinimumは、0本のバーの値を比較する必要があり、配列の履歴を検索する必要がないため、別の例です。

fminは2つのバッファを比較するだけですが、何か意味があるのでしょうか?標準のifを使ってもいいかもしれませんね。でも、そうすると、いろいろな条件が出てくるんですよね...。最小値で4つの複雑なもの、最大値で同じ数のもの...。

 
Cmu4:

今、機能の説明を読んでみると...。

ArrayMinimumは、0本のバーの値を比較する必要があり、配列の履歴検索を必要としないので、別の方向からです。

fminは2つのバッファを比較するだけですが、何か意味があるのでしょうか?標準のifを使ってもいいかもしれませんね。でも、そうすると、いろいろな条件が出てくるんですよね...。最小値で4つの複雑なもの、最大値で同じ数のもの...。

fminはバッファを比較するのではなく、2つの値を比較するのです。

これで課題はクリアです。異なるバッファの並列値の中から極値を見つける必要があります。

この操作はゼロの値に対してのみ必要なのか、それとも多くの並列値に対してこの操作を繰り返す必要があるのか、お答えください。

 
Urain:

fminはバッファの比較ではなく、2つの値を比較しています。

これで課題はクリアです。異なるバッファの並列値の中から極値を見つける必要があります。

この動作はゼロの値に対してのみ必要なのか、それとも多くの並列値に対して繰り返す必要があるのか、お答えください。

マーケットから取引を行うExpert Advisorに必要なものです。したがって、現在のバー上のすべてのバッファの値を比較する必要があります。

これは、最大と 最小のバッファを見つける必要があるゼロバー上の、インジケータのスクリーンショットです。

 
Cmu4:

これは、マーケットから取引するEAに必要なことです。したがって、現在のバー上のすべてのバッファの値を比較する必要があります。

これは、最大と 最小のバッファを見つける必要があるゼロバー上の、インジケータのスクリーンショットです。

それなら、バッファのゼロ値を順番に一つの配列に代入し(バッファの数があらかじめ分かっているので、静的に定義してもよい)、この要約配列に関数ArrayMinimum ArrayMaximumを適用すれば、結果は代入順のバッファの通し番号になります。
 
Urain:
それなら簡単なことで、バッファのNULL値を順番に一つの配列に代入し(バッファの数があらかじめ分かっているので静的に設定することもできます)、この要約配列にArrayMinimum ArrayMaximum関数を 適用すると、結果としてバッファの数を代入順に取得することができるのです。
ありがとうございます。:)