ライブラリ: MT4Orders - ページ 80 1...737475767778798081828384858687...95 新しいコメント Daniel Molnar 2022.12.08 13:34 #791 fxsaber #:最新版を お試しください。コピーペースト fxsaberさん、ありがとうございます。確認には時間がかかりそうですが、今のところメモリ使用量は減っていないようです。 興味本位ですが、OrderSwap()はどこで定義されているのでしょうか?コードに見当たらないようです。 fxsaber 2022.12.08 13:44 #792 pcdeni #:今のところ、メモリ使用量は減っていないようだ。 問題を再現するにはデータが必要です。ラコニックコードと問題が発生した取引口座への投資アクセス。多分プライベート・メッセージで。 興味本位ですが、OrderSwap()はどこで定義されていますか?コードには見当たりません。 MT4_ORDERFUNCTION(Swap, double, ::PositionGetDouble(POSITION_SWAP), 0, true) Filip Valkovic 2022.12.13 12:59 #793 このライブラリ/コードをEAに組み込んでも、何年も問題は起きませんでした。 今、MT5 EAをコンパイルしていると、このコードから3つのエラーが返されます。'=' - 予期しないトークン MT4Orders.mqh 192 25 ')' - 予期しないトークン MT4Orders.mqh 192 68 '*=' - 予想される名前 MT4Orders.mqh 194 13 私のEAでは、 もインクルードしています。 <stderror.mqh> をインクルードする。 #include <stdlib_mq5.mqh>#import"kernel32.dll" ライブラリ単体ではエラーもなく、いつものように問題なくコンパイルできます。EAをコンパイルしようとしたときだけ、エラーが出ます。 #define ORDER_SELECT (-2) static int GetDigits( double Price ) { int Res = 0; while ((bool)(Price = ::NormalizeDouble(Price - (int)Price, 8))) // <- LINE 192 だから、これは明らかに問題だ。 { Price *= 10; // LINE 194 Res++; } return(Res); } 私の EAで 不審な点を 見つけました: union Price { uchar buffer[8]; double close; }; ということは、このユニオンのプライス名は、GetDigits関数のプライス名を上書きするのでしょうか? これが問題なのでしょうか? Libraries: MT4Orders MQL5 コードの保護:パスワード保護、キージェネレータ、時間制限、リモートライセンス、高度 EA ライセンスキー暗号化技術 リプレイシステムの開発(第41回):第2段階(II)の開始 fxsaber 2022.12.13 14:58 #794 Filip Valkovic #: このユニオンのプライス名は、GetDigits 関数のプライス名を上書きするのですか? これが原因です。 fxsaber 2023.01.02 12:24 #795 手数料計算のエラーを特定するのを手伝ってください。そのためには、利用可能な取引口座でこのスクリプトを実行してください。 // MT4/MT5-Styleを介した手数料/スワップ/利益の合計の計算と比較。 #define MT4ORDERS_BYPASS_MAXTIME 1000000 // 取引環境の同期を待つ最大時間(単位:µs #include <MT4Orders.mqh> #define TOSTRING(A) (#A + " = " + DoubleToString(A, 2)) #define PRINT(A, B) Print(TOSTRING(A) + ", " + TOSTRING(B) + ", " + (string)!NormalizeDouble((A) - (B), 2)) // MT4スタイル void Calc_MT4( double &Commission, double &Swap, double &Profit ) { Commission = 0; Swap = 0; Profit = 0; for (int i = OrdersHistoryTotal() - 1; i >= 0; i--) if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) && (OrderType() <= OP_SELL)) { Commission += OrderCommission(); Swap += OrderSwap(); Profit += OrderProfit(); } } // MT5-スタイル void Calc_MT5( double &Commission, double &Swap, double &Profit ) { Commission = 0; Swap = 0; Profit = 0; if (HistorySelect(0, INT_MAX)) for (int i = HistoryDealsTotal() - 1; i >= 0; i--) { const ulong Ticket = HistoryDealGetTicket(i); if (HistoryDealGetInteger(Ticket, DEAL_TYPE) <= DEAL_TYPE_SELL) { Commission += HistoryDealGetDouble(Ticket, DEAL_COMMISSION); Swap += HistoryDealGetDouble(Ticket, DEAL_SWAP); Profit += HistoryDealGetDouble(Ticket, DEAL_PROFIT); } } } void OnStart() { if (PositionsTotal()) MessageBox("The script works when there are no open positions."); else { double Commission_MT4, Swap_MT4, Profit_MT4; double Commission_MT5, Swap_MT5, Profit_MT5; Calc_MT4(Commission_MT4, Swap_MT4, Profit_MT4); // MT4スタイル Calc_MT5(Commission_MT5, Swap_MT5, Profit_MT5); // MT5-スタイル PRINT(Commission_MT4, Commission_MT5); PRINT(Swap_MT4, Swap_MT5); PRINT(Profit_MT4, Profit_MT5); } }次のような結果が得られます。Commission_MT4 = -15591.12, Commission_MT5 = -15591.12, true Swap_MT4 = -5948.77, Swap_MT5 = -5948.77, true Profit_MT4 = 34851.13, Profit_MT5 = 34851.13, true万が一、ハイライトされたスペースに偽が あれば、教えてください。ありがとうございました。 Enrique Dangeroux 2023.01.02 13:26 #796 2023.01.02 13:23:28.780 fxsaber_test (EURCHF,H1) Commission_MT4 = -2875.33, Commission_MT5 = -2875.29, false 2023.01.02 13:23:28.835 fxsaber_test (EURCHF,H1) Swap_MT4 = -1051.56, Swap_MT5 = -1051.56, true 2023.01.02 13:23:28.835 fxsaber_test (EURCHF,H1) Profit_MT4 = 7198.08, Profit_MT5 = 7198.08, true fxsaber 2023.01.02 13:28 #797 Enrique Dangeroux #: 本当にその線でコンパイルしたのか? 取引、自動取引システム、取引戦略のテストに関するフォーラム ライブラリ: MT4Orders fxsaber, 2023.01.02 12:24 pm. #define MT4ORDERS_BYPASS_MAXTIME 1000000 // 取引環境の同期を待つ最大時間(単位:µs telegramからのEX5は偽を与える? Enrique Dangeroux 2023.01.02 13:31 #798 コピーペーストで1対1にコンパイル。ただし、Swap = 0の後にセミコロンがない。 fxsaber 2023.01.02 13:34 #799 fxsaber #:電報のEX5が嘘に? これが、ソースのバージョン不一致を除外する最も確実な方法でしょう。 Enrique Dangeroux 2023.01.02 13:37 #800 EX5のプライベートメッセージに 書き込んでください。 1...737475767778798081828384858687...95 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
最新版を お試しください。コピーペースト
fxsaberさん、ありがとうございます。確認には時間がかかりそうですが、今のところメモリ使用量は減っていないようです。
興味本位ですが、OrderSwap()はどこで定義されているのでしょうか?コードに見当たらないようです。
今のところ、メモリ使用量は減っていないようだ。
問題を再現するにはデータが必要です。ラコニックコードと問題が発生した取引口座への投資アクセス。多分プライベート・メッセージで。
興味本位ですが、OrderSwap()はどこで定義されていますか?コードには見当たりません。
このライブラリ/コードをEAに組み込んでも、何年も問題は起きませんでした。 今、MT5 EAをコンパイルしていると、このコードから3つのエラーが返されます。
私のEAでは、
もインクルードしています。
#import"kernel32.dll"
ライブラリ単体ではエラーもなく、いつものように問題なくコンパイルできます。EAをコンパイルしようとしたときだけ、エラーが出ます。
私の EAで 不審な点を 見つけました:
ということは、このユニオンのプライス名は、GetDigits関数のプライス名を上書きするのでしょうか? これが問題なのでしょうか?
このユニオンのプライス名は、GetDigits 関数のプライス名を上書きするのですか?
これが原因です。
次のような結果が得られます。
万が一、ハイライトされたスペースに偽が あれば、教えてください。ありがとうございました。
本当にその線でコンパイルしたのか?
取引、自動取引システム、取引戦略のテストに関するフォーラム
ライブラリ: MT4Orders
fxsaber, 2023.01.02 12:24 pm.
電報のEX5が嘘に?
これが、ソースのバージョン不一致を除外する最も確実な方法でしょう。