ライブラリ: MT4Orders - ページ 56 1...495051525354555657585960616263...95 新しいコメント fxsaber 2020.11.11 18:37 #551 SysFX:私はMT4Ordersを使用してMT5に移植しようとしているMT4 EAを持っています。 1) 注文がSLまたはTPにヒットしたとき、EAがOrderSend()中にコメントを追加した場合、通常の[sl]または[tp]テキストが注文コメントに追加されません。 これは MT5 の通常の動作ですか?もしそうなら、注文が実際に SL/TP にヒットしたのか、手動でクローズされたのかを判断する信頼できる方法はありますか? (始値/終値/SL/TPを確認して判断しようとしても、スリッページのため信頼できません。特に、SLがTPのすぐ近くに移動した場合)。 https://www.mql5.com/ru/forum/93352/page20#comment_7112531https://www.mql5.com/ru/forum/93352/page18#comment_6246123 2) 部分的なクローズが発生した場合、オープン部分とクローズ部分の注文のコメントには「#xxxxxxxxxxへ」と「#xxxxxxxxxxから」が表示されないまた、特定の注文に何が起こったかを判断する信頼できる(できれば簡単な)方法はありますか? 。 3) 未決済取引のチケット番号は決済時に変更されるため、OrderTicket() を使用して注文を追跡することはできませんが、OrderTicketID() は MT4 の OrderTicket() と同様に機能し、決済された取引でも同じ ID を保持するようです。この値は一定ですか、それともプラットフォームの再起動時に変更されますか?一定である場合、OrderTicketID() を使用して MT4 との互換性を維持する最善の方法は何でしょうか (OrderTicketID() は MT4 関数ではない ため)。** OrderTicketID() は MT4_TICKET_TYPE ディレクティブを無視するようで、常に "long" です。 SELECT_BY_TICKET は、OrderTicket/OrderTicketID/OrderTicketOpen で正しく機能します。MT4Ordersのすべての関数は、ターミナルをリロードしても値が変更されません。MT5 の同じ OrderTicketID は、複数のクローズポジションを持つことができます(部分クローズの場合)。同じ理由で、オープンポジションとクローズポジションが同じ OrderTicketID を持つこともあります。この曖昧さのため、MT5 では、クローズ/オープン ポジションごとに一意のチケットである OrderTicket を使用します。このライブラリの更新は、クロスプラットフォーム(MT4 との互換性)のために行われました。** OrderTicketID() が MT4_TICKET_TYPE ディレクティブを無視し、常に "long" になるようです。 ありがとうございます。 // 変更リスト: // 11.11.2020 // 修正:OrderTicketID() および OrderTicketOpen() は、TICKET_TYPE で指定された値タイプを返します。 SysFX 2020.11.11 19:16 #552 2) 部分的なクローズが発生した場合、オープン部分とクローズ部分の注文のコメントに「#xxxxxxxxxxへ」と「#xxxxxxxxxxから」が表示されないまた、特定の注文に何が起こったかを判断する信頼できる(できれば簡単な)方法はありますか? 私が言いたかったのはこういうことです: MT4でチケット番号123456の1.00ロットの取引があり、0.40ロットを一部決済した場合、チケット番号123456は履歴タブに0.40ロットとして表示され、その取引コメントは「#NewTicketへ」と表示されます。 取引] タブでは、チケット番号「NewTicket」で新しい 0.60 ロットの取引が表示され、その取引コメントには「#123456 から」と表示さ れます。 fxsaber 2020.11.11 19:32 #553 SysFX:私が言いたかったのはこういうことだ:MT4で1.00ロットの取引をチケット番号123456で行い、0.40ロットを一部決済した場合、チケット番号123456は履歴タブに0.40ロットとして表示され、その取引コメントは「#NewTicketへ」と表示されます。取引] タブでは、チケット番号「NewTicket」で新しい 0.60 ロットの取引が表示され、その取引コメントには「#123456 から」と表示さ れます。 #include <MT4Orders.mqh> //https://www.mql5.com/ja/code/16006 #define Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK) void OnStart() { const TICKET_TYPE Ticket = OrderSend(_Symbol, OP_BUY, 1, Ask, 0, 0, 0); if (OrderSelect(Ticket, SELECT_BY_TICKET)) OrderClose(OrderTicket(), 0.4, OrderClosePrice(), 0); } このスクリプトは、あなたの状況を作成します。この状況で何を得たいかを明確に書いてください。 SysFX 2020.11.11 20:01 #554 fxsaber:この台本があなたの状況を作り出す。この状況で何を手に入れる必要があるのか、明確に書いてください。 つまり、テスターでは、次の行がチケット #2 を作成します。 const TICKET_TYPE Ticket = OrderSend(_Symbol, OP_BUY, 1, Ask, 0, 0, 0); そして、この次の行が実行されると、新しいチケット(#3)が0.6ロットでオープンされ、チケット#2が0.4ロットの取引として注文履歴に表示されるはずです。 OrderClose(OrderTicket(), 0.4, OrderClosePrice(), 0); MT4では、#2の注文コメントは「#3へ」となり、#3の注文コメントは「#2から」となります。 MT5 ではこのようなことは起こりません。コメントは [取引] / [履歴] タブには表示されず、OrdersToString() は取引コメントに「0」を表示するだけです。 テスターでも実際の取引でも同じ機能が 存在するはずです。テスターについて述べたのは、チケット番号が予想されるためです。 fxsaber 2020.11.11 20:13 #555 SysFX:MT4では、#2の注文コメントは「#3へ」となり、#3の注文コメントは「#2から」となる。MT5ではこのようなことは起こりません。取引/履歴タブにコメントは表示されず、OrdersToString()は取引コメントに「0」を表示するだけです。 すでにお気づきのように、MT5 では MT4 のように部分約定時に特定のコメントを作成しません。 MT4Orders が MT4 の動作をエミュレートすることはありません。 このライブラリは、MT5 で MT4 スタイルの取引 API を利用するように設計されています。それ以上でも以下でもありません。 つまり、MT4を理解していれば、MT5で簡単に取引ロジックを書くことができます。 各プラットフォームの微妙な特殊性を考慮する必要がある場合は、そのためのマクロがあります。 #ifdef __MQL5__ // MQL5のコードはこちら。 #else // #ifdef __MQL5__ // MQL4のコードはこちら。 #endif // #ifdef __MQL5__ #else MT5で解決できないことがあれば、助けてくれる人がいます。MT4Ordersでできることはたくさんあります。 SysFX 2020.11.11 20:40 #556 fxsaber:すでにお気づきのように、MT5はMT4のように部分実行中に特定のコメントを作成しません。MT4Orders が MT4 の動作をエミュレートすることはありません。 このライブラリは、MT5でMT4スタイルの取引APIを利用するように設計されています。それ以上でも以下でもありません。つまり、MT4の知識があれば、MT5で簡単に取引ロジックを書くことができます。各プラットフォームの微妙な特殊性を考慮する必要がある場合は、そのためのマクロがあります。MT5で解決できないタスクがある場合、ここには助けてくれる人がいます。MT4Ordersでできることはたくさんあります。 はい.MT5の動作が原因だと気づき、その解決策を見つけました。私にとって、[sl] / [tp]の問題を解決することの方が重要 で、今はうまく機能しています。) grin4k 2020.11.14 11:55 #557 コピーしても空のアーカイブができる Edgar Akhmadeev 2020.11.14 12:11 #558 grin4k: コピーしたら空のアーカイブができた ああ、空っぽだ。サイトの不具合だ。 しかし、コードが更新されている場合はアーカイブをアップロードしないでください。Zipは更新されていません。ファイル単位でダウンロードしてください。 Enrique Dangeroux 2020.11.16 14:39 #559 fxsaber :MT5のケースは興味深い。 テイクが部分的に実行され、その後削除された。この場合、DEAL_ORDER のステータスが FILLED/PARTIAL ではなく ORDER_STATE_CANCELED になります。この場合、DEAL_TIME_MSCはORDER_TIME_DONE_MSCと等しくありません。 この場合の ORDER_TYPE_FILLING は何ですか? 私はcensor url brokerを通して取引しています。Take Profit を設定する場合、デフォルト値はORDER_TYPE_FILLING== ORDER_FILLING_IOC です。あなたのケースはIOCでは起こらないはずですよね? Konstantin Kurkin 2020.11.16 15:06 #560 エラー処理方法 -GetLastError、ERR_INVALID_PRICE、ERR_PRICE_CHANGED、ERR_REQUOTE、ERR_OFF_QUOTES、ERR_TRADE_CONTEXT_BUSY - 定数は定義されていません。 1...495051525354555657585960616263...95 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
私はMT4Ordersを使用してMT5に移植しようとしているMT4 EAを持っています。
1) 注文がSLまたはTPにヒットしたとき、EAがOrderSend()中にコメントを追加した場合、通常の[sl]または[tp]テキストが注文コメントに追加されません。
これは MT5 の通常の動作ですか?もしそうなら、注文が実際に SL/TP にヒットしたのか、手動でクローズされたのかを判断する信頼できる方法はありますか?
(始値/終値/SL/TPを確認して判断しようとしても、スリッページのため信頼できません。特に、SLがTPのすぐ近くに移動した場合)。
https://www.mql5.com/ru/forum/93352/page20#comment_7112531
https://www.mql5.com/ru/forum/93352/page18#comment_6246123
2) 部分的なクローズが発生した場合、オープン部分とクローズ部分の注文のコメントには「#xxxxxxxxxxへ」と「#xxxxxxxxxxから」が表示されない
また、特定の注文に何が起こったかを判断する信頼できる(できれば簡単な)方法はありますか?
。
3) 未決済取引のチケット番号は決済時に変更されるため、OrderTicket() を使用して注文を追跡することはできませんが、OrderTicketID() は MT4 の OrderTicket() と同様に機能し、決済された取引でも同じ ID を保持するようです。
この値は一定ですか、それともプラットフォームの再起動時に変更されますか?一定である場合、OrderTicketID() を使用して MT4 との互換性を維持する最善の方法は何でしょうか (OrderTicketID() は MT4 関数ではない ため)。
** OrderTicketID() は MT4_TICKET_TYPE ディレクティブを無視するようで、常に "long" です。SELECT_BY_TICKET は、OrderTicket/OrderTicketID/OrderTicketOpen で正しく機能します。MT4Ordersのすべての関数は、ターミナルをリロードしても値が変更されません。
MT5 の同じ OrderTicketID は、複数のクローズポジションを持つことができます(部分クローズの場合)。同じ理由で、オープンポジションとクローズポジションが同じ OrderTicketID を持つこともあります。この曖昧さのため、MT5 では、クローズ/オープン ポジションごとに一意のチケットである OrderTicket を使用します。
このライブラリの更新は、クロスプラットフォーム(MT4 との互換性)のために行われました。
また、特定の注文に何が起こったかを判断する信頼できる(できれば簡単な)方法はありますか?
私が言いたかったのはこういうことです:
MT4でチケット番号123456の1.00ロットの取引があり、0.40ロットを一部決済した場合、チケット番号123456は履歴タブに0.40ロットとして表示され、その取引コメントは「#NewTicketへ」と表示されます。
取引] タブでは、チケット番号「NewTicket」で新しい 0.60 ロットの取引が表示され、その取引コメントには「#123456 から」と表示さ れます。
私が言いたかったのはこういうことだ:
MT4で1.00ロットの取引をチケット番号123456で行い、0.40ロットを一部決済した場合、チケット番号123456は履歴タブに0.40ロットとして表示され、その取引コメントは「#NewTicketへ」と表示されます。
取引] タブでは、チケット番号「NewTicket」で新しい 0.60 ロットの取引が表示され、その取引コメントには「#123456 から」と表示さ れます。
このスクリプトは、あなたの状況を作成します。この状況で何を得たいかを明確に書いてください。
この台本があなたの状況を作り出す。この状況で何を手に入れる必要があるのか、明確に書いてください。
つまり、テスターでは、次の行がチケット #2 を作成します。
そして、この次の行が実行されると、新しいチケット(#3)が0.6ロットでオープンされ、チケット#2が0.4ロットの取引として注文履歴に表示されるはずです。
MT4では、#2の注文コメントは「#3へ」となり、#3の注文コメントは「#2から」となります。
MT5 ではこのようなことは起こりません。コメントは [取引] / [履歴] タブには表示されず、OrdersToString() は取引コメントに「0」を表示するだけです。
テスターでも実際の取引でも同じ機能が 存在するはずです。テスターについて述べたのは、チケット番号が予想されるためです。
MT4では、#2の注文コメントは「#3へ」となり、#3の注文コメントは「#2から」となる。
MT5ではこのようなことは起こりません。取引/履歴タブにコメントは表示されず、OrdersToString()は取引コメントに「0」を表示するだけです。
すでにお気づきのように、MT5 では MT4 のように部分約定時に特定のコメントを作成しません。
MT4Orders が MT4 の動作をエミュレートすることはありません。 このライブラリは、MT5 で MT4 スタイルの取引 API を利用するように設計されています。それ以上でも以下でもありません。
つまり、MT4を理解していれば、MT5で簡単に取引ロジックを書くことができます。
各プラットフォームの微妙な特殊性を考慮する必要がある場合は、そのためのマクロがあります。
MT5で解決できないことがあれば、助けてくれる人がいます。MT4Ordersでできることはたくさんあります。
すでにお気づきのように、MT5はMT4のように部分実行中に特定のコメントを作成しません。
MT4Orders が MT4 の動作をエミュレートすることはありません。 このライブラリは、MT5でMT4スタイルの取引APIを利用するように設計されています。それ以上でも以下でもありません。
つまり、MT4の知識があれば、MT5で簡単に取引ロジックを書くことができます。
各プラットフォームの微妙な特殊性を考慮する必要がある場合は、そのためのマクロがあります。
MT5で解決できないタスクがある場合、ここには助けてくれる人がいます。MT4Ordersでできることはたくさんあります。
はい.MT5の動作が原因だと気づき、その解決策を見つけました。私にとって、[sl] / [tp]の問題を解決することの方が重要 で、今はうまく機能しています。)
コピーしたら空のアーカイブができた
ああ、空っぽだ。サイトの不具合だ。
しかし、コードが更新されている場合はアーカイブをアップロードしないでください。Zipは更新されていません。ファイル単位でダウンロードしてください。
MT5のケースは興味深い。
テイクが部分的に実行され、その後削除された。この場合、DEAL_ORDER のステータスが FILLED/PARTIAL ではなく ORDER_STATE_CANCELED になります。
この場合、DEAL_TIME_MSCはORDER_TIME_DONE_MSCと等しくありません。
この場合の ORDER_TYPE_FILLING は何ですか?
私はcensor url brokerを通して取引しています。Take Profit を設定する場合、デフォルト値はORDER_TYPE_FILLING== ORDER_FILLING_IOC です。あなたのケースはIOCでは起こらないはずですよね?