MQL5: バリデーション :-( もう、何がどうなっているのか、どう解決しているのか、頭を悩ませています。 - ページ 2 1234567 新しいコメント Vladimir Karputov 2018.11.27 06:26 #11 Alexandr Gavrilin:その他、証拠金不足に関するメッセージが届いています。 私は、エラーに記載されているように、保留中の注文を考慮に入れて、指定された方向の 楽器のすべてのロットを合計し、オープン注文を考慮して超えた場合、開くためのコマンドを与えないようにしようとしましたが、無駄でした。 エラーは同じで、検証中のレポートログにデバッグメッセージが表示されません。このエラーをキャッチしてデバッグする方法、またはターミナルでこのエラーをエミュレートする方法がわかりません。エラー です。 Vitalii Ananev 2018.11.27 07:06 #12 Alexandr Gavrilin:.... エラーは同じで、私のデバッグメッセージは、検証中のレポートログに表示されません 私はこの処理をキャッチしてデバッグする方法、または私の端末でそのエラーをシミュレートする方法がわからない......非常に大きなボリュームでポジションを持つようにしてください。EAが このエラーを キャッチするかどうか確認してください。 Petros Shatakhtsyan 2018.11.27 07:14 #13 Alexandr Gavrilin:その他、証拠金不足に関するメッセージも予定しています。 私は、エラーに記載されているように、保留中の注文を考慮して、指定された方向の楽器のすべてのロットを合計し、オープン注文を考慮して超えた場合、開くためのコマンドを与えないようにしようとしましたが、無駄でした。 エラーは同じで、検証中のレポートログにデバッグメッセージが表示されません。このエラーをキャッチしてデバッグする方法、またはターミナルでこのエラーをシミュレートする方法がわかりません。Margin Levelを確認することができます。5000%以下なら取引は実行されないとしましょう。 Alexandr Gavrilin 2018.11.27 08:04 #14 Vladimir Karputov:間違い です。解決済み。 //в функции до открытия ордера. double max_volume=SymbolInfoDouble(m_name,SYMBOL_VOLUME_LIMIT); double current_lots=getAllVolume(); if(max_volume>0 && max_volume-current_lots-dlot<=0) { //PrintFormat("%.2f - %.2f",max_volume , dlot); return 0; } //... //функция подсчета объема double getAllVolume() { int itotal=PositionsTotal(); ulong uticket=-1; double dVolume=0; for(int i=itotal-1;i>=0;i--) { if(!(uticket=PositionGetTicket(i))) continue; if(PositionGetString(POSITION_SYMBOL)==m_symbol.Name()) dVolume+=PositionGetDouble(POSITION_VOLUME); } itotal=OrdersTotal(); for(int i=itotal-1;i>=0;i--) { if(!(uticket=OrderGetTicket(i))) continue; if(OrderGetString(ORDER_SYMBOL)==m_symbol.Name()) dVolume+=OrderGetDouble(ORDER_VOLUME_CURRENT); } return dVolume; } その後、製品は無事にチェックを通過しました。 Vladimir Karputov 2018.11.27 08:13 #15 Alexandr Gavrilin:解決済み。 その後、製品のテストに成功した。:) Vladimir Karputov 2018.11.27 11:36 #16 ちなみに、SYMBOL_VOLUME_LIMITは「0.0」に設定することができますので、ご注意ください。 チェックに引っかからないように。 if(check_volume > SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_LIMIT)) return; Petros Shatakhtsyan 2018.11.27 13:11 #17 Vladimir Karputov:あ、ちなみに、SYMBOL_VOLUME_LIMITは「0.0」でも良いので、計算の際にはご注意ください。 チェックに引っかからないようにするため。 このメッセージについて、何かが間違っている:1.14380で3.30 EURUSDの インスタント売りに失敗 しました [ボリューム 制限に達しました]。 ネッティング口座を持っていて、指値や保留の注文はありませんでした。すべてのチェックが揃った。 私は常に1つのポジションを持ち、このメッセージはロットを増やしたときとオートループの ときだけ表示されます。 Vladimir Karputov 2018.11.27 13:12 #18 Petros Shatakhtsyan:このメッセージについて、何かが間違っている:1.14380で3.30 EURUSDの インスタント売りに失敗 しました [ボリューム 制限に達しました]。 ネッティング口座を持っていて、指値や保留の注文はありませんでした。すべてのチェックが揃った。 私は常に1つのポジションを持ち、このメッセージはロットを増やしたときとオートトレードの ときだけ表示されます。あるサーバーで動作していても、周りのすべてのサーバーが同じ設定であるとは限りません :) . Petros Shatakhtsyan 2018.11.27 13:34 #19 Vladimir Karputov:あるサーバーで動作していても、周りのすべてのサーバーが同じ設定になっているとは限りません :) .それで、異なる実行タイプのサーバーを5〜6台ほどチェックしています。この投稿では、実行タイプはInstant です。 しかし、それは本筋ではありません。オートバリデーションは情報が少なく、エラーを発見するのが難しくなります。そして、それを回避する方法は必ずある。 Konstantin Nikitin 2018.12.02 18:58 #20 昨日、アップデートでAutovalidationを行いました。MT5では半ポカですが、MT4はほぼ夕方まで全注文を取らない状態で過ごしました。もういいやと思い、2時間ほどでホームに戻りました。飽きて数時間後に戻ってきた。Expert Advisorの問題ではなく、サービスの問題である場合もあります。 1234567 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
その他、証拠金不足に関するメッセージが届いています。
私は、エラーに記載されているように、保留中の注文を考慮に入れて、指定された方向の 楽器のすべてのロットを合計し、オープン注文を考慮して超えた場合、開くためのコマンドを与えないようにしようとしましたが、無駄でした。
エラーは同じで、検証中のレポートログにデバッグメッセージが表示されません。このエラーをキャッチしてデバッグする方法、またはターミナルでこのエラーをエミュレートする方法がわかりません。
エラー です。
....
エラーは同じで、私のデバッグメッセージは、検証中のレポートログに表示されません 私はこの処理をキャッチしてデバッグする方法、または私の端末でそのエラーをシミュレートする方法がわからない......
非常に大きなボリュームでポジションを持つようにしてください。EAが このエラーを キャッチするかどうか確認してください。
その他、証拠金不足に関するメッセージも予定しています。
私は、エラーに記載されているように、保留中の注文を考慮して、指定された方向の楽器のすべてのロットを合計し、オープン注文を考慮して超えた場合、開くためのコマンドを与えないようにしようとしましたが、無駄でした。
エラーは同じで、検証中のレポートログにデバッグメッセージが表示されません。このエラーをキャッチしてデバッグする方法、またはターミナルでこのエラーをシミュレートする方法がわかりません。
Margin Levelを確認することができます。5000%以下なら取引は実行されないとしましょう。
間違い です。
解決済み。
その後、製品は無事にチェックを通過しました。解決済み。
その後、製品のテストに成功した。:)
ちなみに、SYMBOL_VOLUME_LIMITは「0.0」に設定することができますので、ご注意ください。
チェックに引っかからないように。
あ、ちなみに、SYMBOL_VOLUME_LIMITは「0.0」でも良いので、計算の際にはご注意ください。
チェックに引っかからないようにするため。
このメッセージについて、何かが間違っている:1.14380で3.30 EURUSDの インスタント売りに失敗 しました [ボリューム 制限に達しました]。
ネッティング口座を持っていて、指値や保留の注文はありませんでした。すべてのチェックが揃った。
私は常に1つのポジションを持ち、このメッセージはロットを増やしたときとオートループの ときだけ表示されます。
このメッセージについて、何かが間違っている:1.14380で3.30 EURUSDの インスタント売りに失敗 しました [ボリューム 制限に達しました]。
ネッティング口座を持っていて、指値や保留の注文はありませんでした。すべてのチェックが揃った。
私は常に1つのポジションを持ち、このメッセージはロットを増やしたときとオートトレードの ときだけ表示されます。
あるサーバーで動作していても、周りのすべてのサーバーが同じ設定であるとは限りません :) .
あるサーバーで動作していても、周りのすべてのサーバーが同じ設定になっているとは限りません :) .
それで、異なる実行タイプのサーバーを5〜6台ほどチェックしています。この投稿では、実行タイプはInstant です。
しかし、それは本筋ではありません。オートバリデーションは情報が少なく、エラーを発見するのが難しくなります。そして、それを回避する方法は必ずある。