ライブラリ: MT4Orders - ページ 87 1...80818283848586878889909192939495 新しいコメント hini 2025.02.16 07:49 #861 fxsaber #:Tester では、MT5-OrderSend/OrderSendAsync の 最初の実行が 成功すると、常にMqlTradeResult.request_id == 0 になります。request_idは1から始まるはず なので、この動作はMQ側の欠陥だと考えています。これがMT4OrdersがTesterにOrderSendAsyncを実装しない理由の1つです。もう一つ、あまり良くない理由があります(本から)。追加情報をありがとうございました! mbjen 2025.03.02 08:52 #862 申し訳ありません、このスレッド全体を読み通すことができませんでした。注文のない未決済ポジションの 数を取得するには、OrdersTotal() のオーバーロードのようなものがあるのでしょうか: int GetOpenTradesCount() { int count = 0; for (int i = 0; i < OrdersTotal(); i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) // 位置による順序の選択 { if (OrderType() == OP_BUY || OrderType() == OP_SELL) // 成行注文のみをカウントする { count++; } } } return count; } fxsaber 2025.03.02 09:02 #863 mbjen 未決済ポジションの 数を取得するには、OrdersTotal() のオーバーロードのようなものがあるのでしょうか、それとも毎回同じようなコードを書かなければならないのでしょうか: #include <MT4Orders.mqh> int GetOpenTradesCount1() { return(PositionsTotal()); } int GetOpenTradesCount2() { return(OrdersTotal() - OrdersTotal(false)); } あなたのオリジナルは、ポジションをオープンする MT5 注文をオープンポジションとしてカウントするという点で、より優れています。これはGetOpenTradesCount1 ではできません。 あなたのソースの変形は、ポジションをクローズする MT5 注文を カウントしないという点で優れています。GetOpenTradesCount2 はこれを行いません。 mbjen 2025.03.02 09:09 #864 fxsaber #: 注文合計(false) 'OrdersTotal' - 間違ったパラメータ数 fxsaber 2025.03.02 09:10 #865 mbjen #:注文合計(false)'OrdersTotal' - 間違ったパラメータ数 #include <MT4Orders.mqh> mbjen 2025.03.02 09:14 #866 fxsaber #: aaがコードに含まれていた。ありがとう。 mbjen 2025.03.02 09:38 #867 fxsaber #:あなたの元の変形は、ポジションをオープンする MT5 注文をオープンポジションとしてカウントするという点で、より優れています。これはGetOpenTradesCount1 ではできません。ソースの変種は、ポジションをクローズする MT5 注文を カウントしないという点で優れています。GetOpenTradesCount2 はこれを行いません。 仮想ライブラリも接続されている場合、OrdersTotal(false) で失敗します。 fxsaber 2025.03.26 10:50 #868 // 変更リスト: // 26.03.2025 // 修正:OrderTypeはバランス・トランザクション・タイプをより良く扱う。 // 修正: ByPassモードで取引履歴を扱う場合、HistorySelectの呼び出し回数が減少します。 // 追加: MT4ORDERS_LIBRARYマクロでライブラリモードを有効にする: #import "MT4Orders.ex5". fxsaber 2025.03.26 11:16 #869 取引、自動取引システム、取引戦略のテストに関するフォーラム ライブラリ: MT4Orders fxsaber, 2025.03.26 10:50 pm. // 変更リスト: // 26.03.2025 // 修正:OrderTypeはバランス・トランザクション・タイプをより良く扱う。 // 修正: ByPassモードで取引履歴を扱う場合、HistorySelectの呼び出し回数が減少します。 // 追加: MT4ORDERS_LIBRARYマクロでライブラリモードを有効にする: #import "MT4Orders.ex5". ライブラリが深刻なコンパイル速度を低下させるという公正なコメントが ありました。そのため、インポートされたEX5-libraryの 形で代替のフルライブラリモードを追加しました。 コンパイル速度 以下のクロスプラットフォームスクリプトのMT4/5(MT5 - 最大X64_Regular最適化)でのコンパイル速度測定。 取引、自動取引システム、取引戦略のテストに関するフォーラム。 どのようにMQL4/5を学びましたか? fxsaber, 2024.12.03 14:30 #define MT4ORDERS_LIBRARY // library-mode: #import "MT4Orders.ex5". #include <MT4Orders.mqh> //https://www.mql5.com/ja/code/16006 bool Buy( const double Lots = 0.1, const string Symb = NULL, const string Comm = NULL ) { return(OrderSend(Symb, OP_BUY, Lots, SymbolInfoDouble(Symb, SYMBOL_ASK), 0, 0, 0, Comm) != -1); } bool Sell( const double Lots = 0.1, const string Symb = NULL, const string Comm = NULL ) { return(OrderSend(Symb, OP_SELL, Lots, SymbolInfoDouble(Symb, SYMBOL_BID), 0, 0, 0, Comm) != -1); } void OnStart() { Buy(); Sell(); } MT4_b1440 MT5_b4885 + MT4Orders MT5_b4885 +MT4Orders_library 90ミリ秒 5050 ミリ秒 255 ミリ秒 6.0 KBytes 125.4 KBytes 13.3 KBytes 新しいモードのコードは、MT4 と同様の速度で MT5 でコンパイルされます。コンパイル速度は、例えば CTrade を使用する場合よりも速い。これは、MT4 でそうであるように、すべての取引関数が類推によってインポートされるためであり、コンパイラはそれらに時間を浪費しません。 EX5のサイズには相応の影響があります。 。 2行のMQL5Libraries\MT4Orders.mq5 ファイルを作成し、一度コンパイルするだけです。 #property library // #define MT4ORDERS_BYPASS_MAXTIME 1000000 // 取引環境の同期を待機する最大時間(µs単位)。 // #define MT4ORDERS_AUTO_VALIDATION // 正しさのチェックに成功した場合のみ、取引注文が送信される。 // #define MT4ORDERS_ORDERS_SORT // MT4 の注文履歴を終了/削除時刻順にソートしたもの。 #include <MT4Orders.mqh> //https://www.mql5.com/ja/code/16006 そして、MT4Ordersを有効にする前のコードに、マクロを書く。 #define MT4ORDERS_LIBRARY // library-mode: #import "MT4Orders.ex5". #include <MT4Orders.mqh> //https://www.mql5.com/ja/code/16006 そして、ライブラリはコンパイルの期間に影響しなくなる。 プログラムを起動すると、[依存関係]タブでMT4Ordersコールの存在を確認できます。 DLLは使用されていません、オープンソースコード。 Учебник по MQL5: Расширенные средства языка / Разработка и подключение библиотек двоичных форматов / Создание ex5-библиотек и export функций www.mql5.com Для описания библиотеки следует добавить в исходный код главного (компилируемого) модуля директиву #property library (обычно, в начало файла)... Maxim Kuznetsov 2025.03.26 11:54 #870 fxsaber #: このライブラリはコンパイルに深刻なスローダウンを引き起こすという意見が ありました。そのため、インポートされたEX5-libraryという 形で、代替のフルライブラリモードが追加されました。 コンパイル速度 以下のクロスプラットフォームスクリプトのMT4/5(MT5 - 最大X64_Regular最適化)でのコンパイル速度測定。 MT4_b1440 MT5_b4885 + MT4Orders MT5_b4885 +MT4Orders_library 90ミリ秒 5391 ミリ秒 255 ミリ秒 新しいモードのコードは、MT4 と同様の速度で MT5 でコンパイルされます。コンパイル速度は、たとえば CTrade を使用する場合よりも高速です。MT4と同様に、すべての取引関数が類推によってインポートされるため、コンパイラはそれらに時間を浪費しません。有効にする方法 2行のMQL5Libraries\MT4Orders.mq5 ファイルを一度作成し、コンパイルするだけです。そして、MT4Ordersを有効にする前のコードに、マクロを書く。そうすれば、ライブラリはコンパイル時間に影響しなくなります。プログラムを実行すると、[依存関係] タブで MT4Orders 呼び出しの存在を確認できます。DLLは使用されておらず、オープンソース・コードです。 それはお粗末なオプションです...地面にレーキ。 ex5が "非推奨 "と宣言されることがあまりにも多く、#importディレクティブもその対象になります。 1...80818283848586878889909192939495 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
Tester では、MT5-OrderSend/OrderSendAsync の 最初の実行が 成功すると、常にMqlTradeResult.request_id == 0 になります。
request_idは1から始まるはず なので、この動作はMQ側の欠陥だと考えています。
これがMT4OrdersがTesterにOrderSendAsyncを実装しない理由の1つです。もう一つ、あまり良くない理由があります(本から)。
申し訳ありません、このスレッド全体を読み通すことができませんでした。注文のない未決済ポジションの 数を取得するには、OrdersTotal() のオーバーロードのようなものがあるのでしょうか:
あなたのオリジナルは、ポジションをオープンする MT5 注文をオープンポジションとしてカウントするという点で、より優れています。これはGetOpenTradesCount1 ではできません。
あなたのソースの変形は、ポジションをクローズする MT5 注文を カウントしないという点で優れています。GetOpenTradesCount2 はこれを行いません。
注文合計(false)
'OrdersTotal' - 間違ったパラメータ数
注文合計(false)
'OrdersTotal' - 間違ったパラメータ数
#include <MT4Orders.mqh>あなたの元の変形は、ポジションをオープンする MT5 注文をオープンポジションとしてカウントするという点で、より優れています。これはGetOpenTradesCount1 ではできません。
ソースの変種は、ポジションをクローズする MT5 注文を カウントしないという点で優れています。GetOpenTradesCount2 はこれを行いません。
仮想ライブラリも接続されている場合、OrdersTotal(false) で失敗します。
取引、自動取引システム、取引戦略のテストに関するフォーラム
ライブラリ: MT4Orders
fxsaber, 2025.03.26 10:50 pm.
ライブラリが深刻なコンパイル速度を低下させるという公正なコメントが ありました。そのため、インポートされたEX5-libraryの 形で代替のフルライブラリモードを追加しました。
コンパイル速度
以下のクロスプラットフォームスクリプトのMT4/5(MT5 - 最大X64_Regular最適化)でのコンパイル速度測定。
取引、自動取引システム、取引戦略のテストに関するフォーラム。
どのようにMQL4/5を学びましたか?
fxsaber, 2024.12.03 14:30
新しいモードのコードは、MT4 と同様の速度で MT5 でコンパイルされます。コンパイル速度は、例えば CTrade を使用する場合よりも速い。これは、MT4 でそうであるように、すべての取引関数が類推によってインポートされるためであり、コンパイラはそれらに時間を浪費しません。
EX5のサイズには相応の影響があります。
。
2行のMQL5Libraries\MT4Orders.mq5 ファイルを作成し、一度コンパイルするだけです。
そして、MT4Ordersを有効にする前のコードに、マクロを書く。
そして、ライブラリはコンパイルの期間に影響しなくなる。
プログラムを起動すると、[依存関係]タブでMT4Ordersコールの存在を確認できます。
DLLは使用されていません、オープンソースコード。
このライブラリはコンパイルに深刻なスローダウンを引き起こすという意見が ありました。そのため、インポートされたEX5-libraryという 形で、代替のフルライブラリモードが追加されました。
コンパイル速度
以下のクロスプラットフォームスクリプトのMT4/5(MT5 - 最大X64_Regular最適化)でのコンパイル速度測定。
新しいモードのコードは、MT4 と同様の速度で MT5 でコンパイルされます。コンパイル速度は、たとえば CTrade を使用する場合よりも高速です。MT4と同様に、すべての取引関数が類推によってインポートされるため、コンパイラはそれらに時間を浪費しません。
有効にする方法
2行のMQL5Libraries\MT4Orders.mq5 ファイルを一度作成し、コンパイルするだけです。
そして、MT4Ordersを有効にする前のコードに、マクロを書く。
そうすれば、ライブラリはコンパイル時間に影響しなくなります。
プログラムを実行すると、[依存関係] タブで MT4Orders 呼び出しの存在を確認できます。
DLLは使用されておらず、オープンソース・コードです。
それはお粗末なオプションです...地面にレーキ。
ex5が "非推奨 "と宣言されることがあまりにも多く、#importディレクティブもその対象になります。