//+------------------------------------------------------------------+//| Проверяет объем ордера на корректность |//+------------------------------------------------------------------+int ForceStop=0;
int sstop=0;bool CheckVolumeValue(double volume,string &description)
{
//--- минимально допустимый объем для торговых операцийdouble min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);
if(volume<min_volume)
{
description=StringFormat("Volume is less than the minimum allowable SYMBOL_VOLUME_MIN=%.2f",min_volume);
sstop=5/ForceStop; // force stop, zerro dividereturn(false);
}
//--- максимально допустимый объем для торговых операцийdouble max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX);
if(volume>max_volume)
{
description=StringFormat("Volume is greater than the maximum allowable SYMBOL_VOLUME_MAX=%.2f",max_volume);
sstop=5/ForceStop; // force stop, zerro dividereturn(false);
}
//--- получим минимальную градацию объемаdouble volume_step=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_STEP);
int ratio=(int)MathRound(volume/volume_step);
if(MathAbs(ratio*volume_step-volume)>0.0000001)
{
description=StringFormat("The volume is not a multiple of the minimum gradation SYMBOL_VOLUME_STEP=%.2f, Closest correct volume %.2f",
volume_step,ratio*volume_step);
sstop=5/ForceStop; // force stop, zerro dividereturn(false);
}
description="Correct value of volume";
return(true);
}
コンピュータは馬鹿だ。© M.M. Botvinnik.
そこで、バカのふりをして、バカの視点から、バカが設定したパラメータでアルゴリズムを成立させるようにします。この点からもオートバリデーターは適しています。フィードバック」に注目する。Expert Advisor はエラーについて通知しますか?
私は最終的にそれを考え出した、多分誰かが助けることができる、一般的には、ソ連は、MMは最小ロットのためにチェックされたときにのみ持っているので、ハードコア設定ロット= 0.01、よく、バリデータの預金は$ 1(トピックの一つにこの情報を発見)であると判明、それぞれ、それは取引にロット0.001(またはそう)を使用し、私はいつも一箇所に持っていたので、それぞれ、彼は十分にお金とロボットが取引されていないたくさんだった)(以下、「0.01
私は最終的にそれを考え出した、多分誰かが助けるだろう、一般的には、MMは最小ロットのためにチェックされたときにのみボード、およびそう筋金入りのセットロット= 0.01、よく、バリデータの預金は$ 1(トピックの一つにこの情報を発見)であると判明、それぞれ、それは取引するロット0.001(またはそう)を使用すると私はいつも一箇所にたくさん持っていたので、それぞれ、彼は十分にお金を持っていないとロボットは取引しない)(。
もう一度、話題にしたいと思います。あなたの回答は、私の助けにはなりません。体積計算をして、すべてが収まらない場合は最小の体積を 使うようにしています。
結局、何の計算もせずに最小限の量を一気に入れる。そして、マージンチェックが行われる...。であり、トレーディング業務は行っていない。
昨日、フォーラムの回答で、時間が経ってから同じコードを送信しても通ることがある、というのを偶然見つけました。時間が経つと、送信されなくなる。
どうしよう、2週間前にこの音量検知機能が過ぎて、それ以来、何も変わっていない!!!!
もう一度、話題にしたいと思います。あなたの答えは、私の助けにはなりません。体積計算をして、全部入らなかったら最小の体積を 使うようにしています。
結局、何の計算もせずに最小限のボリュームを一気に入れる。そして、マージンチェックが行われる...。であり、トレーディング業務は行っていない。
昨日、フォーラムの回答で、時間が経ってから同じコードを送信しても通ることがある、というのを偶然見つけました。時間が経つと送信されない。
どうしよう、2週間前にこの音量検出機能がパスして、それ以降、何も変化しない!!!!
古参になる。このような評価、アバターの下の数字、そして問題を抱えているのに、なぜかそれが議論されたトピックを見ませんでした。そして、そこに解決策が見出されたのです。
古参になる。このような評価、アバターの下の数字、そして問題を抱えているのに、なぜかそれが議論されたトピックを見ませんでした。そして、そこに解決策が見出されたのです。
ロシアの人々の中には、異教徒の神々に祈る者、そして、それに答える者がいる。
と答えましたが、私は異教徒の神ではありません。これは一時的な解決策だと思います。早く直ることを祈っています。
怪しげな場所でForceStopを 使用。さらに、レポートにはゼロ除算と表示され、このエラーの正確な位置が表示されます。
私の場合の例
ブロ、すべての変数をコードヘッダに移動させたのは助かりました。
void OnDeinit
}
そして、ResetLastError() の init で。
何が効いたのかわかりませんが、こんな感じです。
コードの数行を変更(編集)するだけで良いので助かっています。
または、空行を追加して、再度コンパイルし直すだけです。
サーバーに何らかのバグがあるのだと思います。
または、空行を追加して、再度コンパイルし直すだけです。
確認しました、再コンパイルするだけで動くこともあります。
確認済み、再コンパイルするだけで通ることもあります。
再コンパイルしたからではなく、テストの開始日が違うからです。そして、このようなバグに気づいたのですが、すでにあるものを滑らせると、テストが行われず、すぐに前回のテスト結果が出ます。だから、そんなまやかしに騙されないでください。普通にしてみてください。もし、何かが欠けていたり、パラメータが無効な場合は、Printで 報告していただければ、すべて正しくなります。