[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 248

 
Roman.:
ERR_INVALID_TRADE_VOLUME 131 不正なボリューム -この フォームを知って、アカウントの種類に応じてボリュームを「正しく」設定します。例えば、マイクロアカウントではボリュームは通常0.01ロットで、「クラシック」アカウントでは= 0.1ロットです...。注文開始機能に一定値0.1ロットを入力して確認すると・・・。
EAはekvitから特定のロットを取引します。つまり、10や5などのパーセンテージしか入力できず、ロット0.1や0.01を入力するオプションはありません。この問題は、4桁のブローカーでのみ発生しています。
 
MeTrade:
MaxZ:
平日のテストはされましたか?スプレッドは変動していますか?
今週ずっと最適化し、今夜と今朝にテストしました。それは問題ないですか?
スプレッドに関する私の質問には答えていません。
 
なぜこのアラートが表示されるのですか?小数のある桁を比較する場合、NormalizeDouble()で 正規化する必要があることがわかり、大変な労力を費やしました。でも、今日は遊びでやってみようと思って、アラートがポップアップで表示されましたこの不具合は何ですか?それとも不具合じゃないのか?
      if (1.3320 == 1.3320)
         Alert("Ku!");
 
ScioMe:
なぜこのアラートが表示されるのですか?小数のある桁を比較する場合、NormalizeDouble()で正規化する必要があることがわかり、大変な労力を費やしました。でも、今日は遊びでやってみようと思って、アラートがポップアップで表示されましたどのような不具合ですか?それとも不具合ではないのか?
どんな不具合があるのでしょうか?これらの定数は等しい。条件を満たしている。
 
MeTrade:
EAが取引するのはekvitの一定割合、つまり10や5といった割合でしか入力できず、0.1や0.01といったロットを入力するオプションはない。この問題は、4桁のブローカーでのみ発生しています。
この問題は、4桁のブローカーでのみ発生します: "...私は唯一のパーセント、例えば10、5を入力することができます" - だからあなたの計算は、注文を開く前にボリュームの正規化なしで行われ、すなわち、最終的には、あなたの10または5パーセントは、エラー番号131を引き起こし、0.123または1.548ロットになります、この主題に関する十分な" input "(生)データではないので、ロットの計算のための機能を修正したり、テレパスを お願いします...
 
ScioMe:
なぜこのアラートが表示されるのですか?先ほど、分数のある桁を比較するときは、NormalizeDouble()関数を使って正規化する必要があることを理解するのに多くの労力を使いました。でも、今日は遊びでやってみようと思って、アラートがポップアップで表示されましたどのような不具合ですか?それとも不具合ではないのか?

1).コンパイラはこの条件(if文)を単純に無視することができます。

2).しかし、コンパイラがこの条件を無視しない場合、各数値をメモリに書き込み、各数値に8ビットを割り当てることになる。目で見るようにではなく、少しずつ数字を比較していくのです。メモリ内の数値は同じであり、条件は成立する。

この2つの数字(2つのレコード)が等しいと認識されていないことが理解できないので、あなたの質問には非常に驚いています。

 
MaxZ:
スプレッドについての質問に答えていない。
スプレッドが固定された4桁の端末で試しましたが、すべてOKです。しかし、5桁の端末では起きなかったエラー番号131という別の問題が発生した。
 
MeTrade:
コメントに従い、スプレッド固定の4桁端末で試したところ、すべてOKでした。しかし、5桁の端末では起きなかったエラー番号131という別の問題が発生した。
ここに座って当てなければならないのです!:)))他の問題もきっと解決してくれるはずです。
 

正しい方法をアドバイスください。 私のMM計算機能は複雑で、その一部で、ロット計算時に、最大可能ロットとして0.18を返し、0.1、0.2、0.3のいずれかを開く、つまりステップが0.1であることができるようになっています。

ロットを正規化すると0.2に切り捨てられ、最大許容ロットが0.18であるにもかかわらず、注文ができなくなります。

 
MaxZ:

""""...
Я очень удивлён был Вашему вопросу, так как не могу понять как можно два эти числа (две записи) воспринять не равными??""""


以前から悩んでいた。脳が壊れそうだった!問題はこれだった。if()の中で等号条件を実行する必要があったのだ。実数の比較をしていたのです。アラートが出なかったので、一体どうしたものかと思った。この数字、肉眼で見ても同じだとわかりますよね!?しかし、端末がそれをプリントしてくれないのだ。ようやく「何かおかしいな」と思ったのですが、何がおかしいのかわかりませんでした。mql4-communityに助けを求めています。ここで質問したところ、どうも、専門家(Romanさんや他の優秀な方々のようです)が、実数を比較するときは、NormalizeDouble()関数で 正規化する必要がある、と回答してくれました。助かりました。しかし、今日、試してみて、どうしたんだろう?正規化せずに安全に比較することができます。とにかく、比較される時とされない時があるので、安全のために正常化した方がいいという結論に達しました。