エラー、バグ、質問 - ページ 2411 1...240424052406240724082409241024112412241324142415241624172418...3185 新しいコメント Vladimir Karputov 2019.03.24 06:45 #24101 Aleksey Sergan: このコードを実行してください:Multicurrency iMA Trend 2. 設定(Symbols パラメータ)で "EURUSD,GBPUSD "を指定します。 私の構成では MetaTrader 5 x64 build 2009 started (MetaQuotes Software Corp.) Windows 10 (build 17763) x64, IE 11, UAC, Intel Core i3-3120 M @ 2.50 GHz, Memory: 3518 / 8077 Mb, Disk: 86 / 415 Gb, GMT+2 C:\Users\barab\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075 は、すべてのSLがシンボル価格で終了しました。つまり、価格の重複誤差がないことです。 Aleksey Sergan 2019.03.24 07:10 #24102 Vladimir Karputov:このコードを実行してください:Multicurrency iMA Trend 2. 設定(Symbols パラメータ)で "EURUSD,GBPUSD "を指定します。 私の構成では は、すべてのSLがシンボル価格で終了しました。つまり、価格の重複誤差がないことです。ありがとうございます。エラーはローカライズされています。以下に投稿します。 Aleksey Sergan 2019.03.24 07:10 #24103 Andrey Barinov:は、2つの間違いがあります。 №1.あなたのミスです。コードのどこかにGBPUSDの価格を使ってEURUSDのポジションにSLを設定しています。端末は何も抵抗がないはずです。 №2.端末のバグEURUSDの流れで、その時に存在しない価格でこのSLが発動した場合、GBPUSDの価格を使用します。 アンドレイ・バリノフhttps://www.mql5.com/ru/docs/constants/structures/mqltraderequest 修正要求を送信する際、位置フィールドはシンボルよりも優先されるようです。req.positionを 印刷するそう、あなたの言う通り、私の間違いは論理的なものであることが判明したのです。 を構造体に組み込む。 MqlTradeRequest m_request; m_request.position = #3 m_request.symbol = GBPUSD m_request.sl = 1.60704 GBPUSD #4 の実際のポジション数 OrderSend が実行されると、テスターはポジション#3 に対応するシンボル、eurusd にストップを設定します。 テスターのバグ - m_request.position と m_request.symbol が一致するかどうかのチェックに失敗しました。 - は買いポジション、シンボルeurusd(現在の価格は1.30935)のストップを1.60704に設定します。 - は、実際の価格は1.30935ですが、次のティックで1.60704にストップを設定します。 皆さん、ありがとうございました。プラットフォームの開発者がこの投稿を見ることを期待しています。 Errors, bugs, questions MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第25部): 取引サーバから返されたエラーの処理 独自のトレーリングストップ注文を作成する方法 Andrey Barinov 2019.03.24 07:28 #24104 Aleksey Sergan: そう、あなたの言う通り、私の間違いは論理的なものであることが判明したのです。 構造で。 MqlTradeRequest m_request; m_request.position = #3 m_request.symbol = GBPUSD m_request.sl = 1.60704 GBPUSD #4 の実際のポジション数 OrderSend が実行されると、テスターはポジション#3 に対応するシンボル、eurusd にストップを設定します。 テスターのバグ - m_request.position と m_request.symbol が一致するかどうかのチェックに失敗しました。 - は買いポジション、シンボルeurusd(現在の価格は1.30935)のストップを1.60704に設定します。 - は、実際の価格は1.30935ですが、次のティックで1.60704にストップを設定します。 皆さん、ありがとうございました。プラットフォームの開発者がこの投稿を見ることを期待しています。1.60704の買いポジションのストップを現在値1.30935で実行することはエラーではありません。しかし、現在の価格1.30935で1.60704のレベルに買いストップを設定することはエラーです。 Andrey Dik 2019.03.24 13:30 #24105 ビルド2007 機能です。 bool GetDialLastProfit (string symbol, datetime startDate, datetime endDate, long magic, double &profit, double &lot) { HistorySelect (startDate, endDate); int deals = HistoryDealsTotal (); ulong ticket; for (int i = deals - 1; i >= 0; i--) //for (int i = 0; i < deals; i++) { ticket = HistoryDealGetTicket (i); if (ticket != 0) { if (HistoryDealGetInteger(ticket, DEAL_MAGIC) == magic) { profit = HistoryDealGetDouble (ticket, DEAL_PROFIT); //if (!HistoryDealGetDouble(ticket, DEAL_PROFIT, profit)) // return false; lot = HistoryDealGetDouble (ticket, DEAL_VOLUME); return (true); } } } return (false); } は取引の 財務結果をprofit変数に出力することになっているが、常に0.0となり、lot変数の値は常に正しい。 エラーは出ていませんか?- それとも私のやり方が悪いのでしょうか? Andrey Barinov 2019.03.24 13:33 #24106 Andrey Dik:ビルド2007 機能です。 は取引の 財務結果をprofit変数に出力することになっているが、常に0.0となり、lot変数の値は常に正しい。 エラーは出ていませんか?- それとも私のやり方が悪いのでしょうか?DEAL_ENTRY_OUTまたはINOUTを確認する必要があります。INのトレードは利益0 Andrey Dik 2019.03.24 13:35 #24107 Andrey Barinov:DEAL_ENTRY_OUTまたはINOUTを監視する必要があります。INのトレードは利益0まあ、リストの最後から1番目が取られているのだから、OUTのはずなのだが Andrey Barinov 2019.03.24 13:40 #24108 Andrey Dik:まあ、リストの最後から1番目ですから、OUTのはずです。endDateにTimeCurrent() を渡している場合は、TimeCurrent()+60などに置き換えてください。それが助けになるはずです。 Andrey Dik 2019.03.24 13:42 #24109 Andrey Barinov:endDateにTimeCurrent()を渡す場合は、TimeCurrent()+60などに置き換えてください。これは役に立つはずです。いや、まだ0.0なんですけどね。 Andrey Barinov 2019.03.24 13:43 #24110 Andrey Dik:いや、まだ0.0なんですけどね。そして、デバッグする。トランザクションチケットを印刷し、そこで実際に何が選択されたかをテスターで確認する。取引形態による フィルタを追加する。 1...240424052406240724082409241024112412241324142415241624172418...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
このコードを実行してください:Multicurrency iMA Trend 2.
設定(Symbols パラメータ)で "EURUSD,GBPUSD "を指定します。
私の構成では
は、すべてのSLがシンボル価格で終了しました。つまり、価格の重複誤差がないことです。
このコードを実行してください:Multicurrency iMA Trend 2.
設定(Symbols パラメータ)で "EURUSD,GBPUSD "を指定します。
私の構成では
は、すべてのSLがシンボル価格で終了しました。つまり、価格の重複誤差がないことです。
ありがとうございます。エラーはローカライズされています。以下に投稿します。
は、2つの間違いがあります。
№1.あなたのミスです。コードのどこかにGBPUSDの価格を使ってEURUSDのポジションにSLを設定しています。端末は何も抵抗がないはずです。
№2.端末のバグEURUSDの流れで、その時に存在しない価格でこのSLが発動した場合、GBPUSDの価格を使用します。
https://www.mql5.com/ru/docs/constants/structures/mqltraderequest
修正要求を送信する際、位置フィールドはシンボルよりも優先されるようです。req.positionを 印刷する
そう、あなたの言う通り、私の間違いは論理的なものであることが判明したのです。
を構造体に組み込む。
MqlTradeRequest m_request;
m_request.position = #3
m_request.symbol = GBPUSD
m_request.sl = 1.60704
GBPUSD #4 の実際のポジション数
OrderSend が実行されると、テスターはポジション#3 に対応するシンボル、eurusd にストップを設定します。
テスターのバグ
- m_request.position と m_request.symbol が一致するかどうかのチェックに失敗しました。
- は買いポジション、シンボルeurusd(現在の価格は1.30935)のストップを1.60704に設定します。
- は、実際の価格は1.30935ですが、次のティックで1.60704にストップを設定します。
皆さん、ありがとうございました。プラットフォームの開発者がこの投稿を見ることを期待しています。
そう、あなたの言う通り、私の間違いは論理的なものであることが判明したのです。
構造で。
MqlTradeRequest m_request;
m_request.position = #3
m_request.symbol = GBPUSD
m_request.sl = 1.60704
GBPUSD #4 の実際のポジション数
OrderSend が実行されると、テスターはポジション#3 に対応するシンボル、eurusd にストップを設定します。
テスターのバグ
- m_request.position と m_request.symbol が一致するかどうかのチェックに失敗しました。
- は買いポジション、シンボルeurusd(現在の価格は1.30935)のストップを1.60704に設定します。
- は、実際の価格は1.30935ですが、次のティックで1.60704にストップを設定します。
皆さん、ありがとうございました。プラットフォームの開発者がこの投稿を見ることを期待しています。
1.60704の買いポジションのストップを現在値1.30935で実行することはエラーではありません。しかし、現在の価格1.30935で1.60704のレベルに買いストップを設定することはエラーです。
ビルド2007
機能です。
は取引の 財務結果をprofit変数に出力することになっているが、常に0.0となり、lot変数の値は常に正しい。
エラーは出ていませんか?- それとも私のやり方が悪いのでしょうか?
ビルド2007
機能です。
は取引の 財務結果をprofit変数に出力することになっているが、常に0.0となり、lot変数の値は常に正しい。
エラーは出ていませんか?- それとも私のやり方が悪いのでしょうか?
DEAL_ENTRY_OUTまたはINOUTを確認する必要があります。INのトレードは利益0
DEAL_ENTRY_OUTまたはINOUTを監視する必要があります。INのトレードは利益0
まあ、リストの最後から1番目が取られているのだから、OUTのはずなのだが
まあ、リストの最後から1番目ですから、OUTのはずです。
endDateにTimeCurrent() を渡している場合は、TimeCurrent()+60などに置き換えてください。それが助けになるはずです。
endDateにTimeCurrent()を渡す場合は、TimeCurrent()+60などに置き換えてください。これは役に立つはずです。
いや、まだ0.0なんですけどね。
いや、まだ0.0なんですけどね。
そして、デバッグする。トランザクションチケットを印刷し、そこで実際に何が選択されたかをテスターで確認する。取引形態による フィルタを追加する。