ライブラリ: MT4Orders - ページ 81 1...747576777879808182838485868788...95 新しいコメント Stanislav Korotky 2023.02.05 22:00 #801 define MT4ORDERS_FASTHISTORY_OFFディレクティブを有効にすると、コンパイルできません。 以前、私はこのディレクティブを有効にしなければならなかったが、それはこの記事で使用されているいくつかの機能(ここで 議論されている)が、このディレクティブなしでは使用できないからである。もしまだ機能が低下しているのであれば、修正することが望ましい。 Библиотеки: MT4Orders - Попробуйте отключить этот медленный режим. Выделенная ссылка отвечает за игнорирование закрытых позиций по CloseBy, а поиск соответствующего выхода 2019.09.27www.mql5.com что такой простой код не работал корректно в MT5 со старой версией библиотеки. Было бы очень желательно указать как минимум в шапке комменатриев исходника. а поиск соответствующего выхода как раз обложен условной компиляцией на MT4ORDERS fxsaber 2023.02.05 22:08 #802 Stanislav Korotky #:define MT4ORDERS_FASTHISTORY_OFFディレクティブを有効にすると、コンパイルできません。 これは歴史的な名残で、どうにも取り除くことができない。 MQは多くの頭痛の種を作り出したので、騙された亜種しか使う価値がない。 バグ報告が妙に少ないが、ライブラリのメジャーアップデートがあるはずだ。まだ準備ができていない。 fxsaber 2023.03.01 19:48 #803 OrderSelect(i, SELECT_BY_POS) この操作では、下位の指数には常に未決済のポジションがあり、上位の指数には未決済の注文が あります。 この事実を利用すれば、必要なMT4注文の検索を多少早めることができます。 fxsaber 2023.03.01 20:11 #804 その可能性はないはずのスピードでテスターに勝つことは可能なのだろうか?私は「チャンスなし」のエキスパート・アドバイザーを書きました。#include <MT4Orders.mqh> //https://www.mql5.com/ja/code/16006 input int inAmountMagics = 50; // エミュレートするTCの数 // 各TSに対してポジションと注文をオープンする。簡潔にするためMT4コード。 void OnInit() { MqlTick Tick; if (SymbolInfoTick(_Symbol, Tick)) for (int i = 0; i < inAmountMagics; i++) { OrderSend(_Symbol, OP_BUY, 1, Tick.ask, 0, 0, 0, NULL, i); OrderSend(_Symbol, OP_BUYLIMIT, 1, Tick.ask - 1 e4*_Point, 0, 0, 0, NULL, i); } } // 正しいポジション/注文から情報を収集する。最高速のMT5コード。 double CountOrders( const int Type, const int Magic ) { double Res = 0; if (Type <= OP_SELL) { for (int i = PositionsTotal() - 1; i >= 0; i--) if (PositionGetTicket(i) && (PositionGetInteger(POSITION_TYPE) == Type) && PositionGetInteger(POSITION_MAGIC) == Magic) Res += PositionGetDouble(POSITION_PRICE_OPEN) + PositionGetDouble(POSITION_PRICE_CURRENT) + PositionGetDouble(POSITION_TP) + PositionGetDouble(POSITION_SL); } else for (int i = OrdersTotal(true) - 1; i >= 0; i--) if (OrderGetTicket(i) && (OrderGetInteger(ORDER_TYPE) == Type) && OrderGetInteger(ORDER_MAGIC) == Magic) Res += OrderGetDouble(ORDER_PRICE_OPEN) + OrderGetDouble(ORDER_PRICE_CURRENT) + OrderGetDouble(ORDER_TP) + OrderGetDouble(ORDER_SL); return(Res); } // 代替実装の正しさを管理するための番号。 double OnTesterValue = 0; double OnTester() { return(OnTesterValue); } void OnTick() { // すべてのTCで動作をシミュレートする。 for (int i = 0; i < inAmountMagics; i++) OnTesterValue += CountOrders(POSITION_TYPE_BUY, i) + CountOrders(POSITION_TYPE_SELL, i) + CountOrders(ORDER_TYPE_BUY_LIMIT, i) + CountOrders(ORDER_TYPE_SELL_LIMIT, i); }コードを見れば、遅いと思うかもしれません。しかし、このコードは多くの「TS」の動作をエミュレートしている。そして、多くのTSは全く同じように動作します - まず第一に、彼らはポジション/注文を見つけます。OnTester result 54790620.97344553 EURCAD,M1: 192394 ticks, 1440 bars generated. Environment synchronized in 0:00:00.023. Test passed in 0:01:21.775 (including ticks preprocessing 0:00:00.016). 約定まで81秒。実際のダニの1日のために何か非常に。しかし、そこに何がある。 fxsaber 2023.03.01 20:37 #805 fxsaber #:完了まで81秒。実際の刻みで1日分というのは多い。しかし、それが何なのか。 取引、自動取引システム、取引戦略のテストに関するフォーラム ライブラリ:仮想 fxsaber、2023.03.01 20:36 OnTester result 54790620.97344553 EURCAD,M1: 192394 ticks, 1440 bars generated. Environment synchronized in 0:00:00.023. Test passed in 0:00:46.653 (including ticks preprocessing 0:00:00.016). チェックサムが一致しました。倍 近くスピードアップできました。 簡単ではありませんが、うまくいきました。 fxsaber 2023.03.31 11:42 #806 fxsaber #:ノーチャンス "EAを書いた - スピードを最大限に最適化した。 スピードを上げる簡単な方法。 fxsaber 2023.05.10 20:48 #807 取引、自動取引システム、取引戦略のテストに関するフォーラム ライブラリ: MT4Orders fxsaber, 2022.07.20 00:39 // 変更リスト: // 20.07.2022 // 追加:OrderLotsOpen() を追加 - 決済/削除前にポジション/注文の全量を表示。ByPass-modeでのみ正しく動作します。 同じ例(1ロットをオープンし、0.1、0.2、0.3、0.4ロットで徐々にクローズ)を使用していますが、異なるビジュアライゼーションを使用しています。 画像上部の赤枠のOrderLotsOpen()。 Cuong Le Van 2023.05.19 06:23 #808 こんにちは、 OrderTicket()にバグがあるようです。 それはMT5の履歴から正しいチケットではありません。 これは私のコードです: bool isCopyHistory2(string u_symbol, int master_ticket) { int ticket_copy; bool is_exists = false; // 取引履歴から情報を取り出す for(int i = 0; i < OrdersHistoryTotal(); i++) { //---- 選択結果をチェックする if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) == false) { Print("Access to history failed with error (", GetLastError(), ")"); continue; } // オーダーを少し変更 ticket_copy = (int)extract_master_ticket(OrderComment()); if(ticket_copy == master_ticket) { //print-for-debug Print("c ticket: ", OrderTicket()); // これはMT5では正しいチケットではありません。 is_exists = true; break; } } //--- if(!is_exists) Print("New Signal #" + (string)master_ticket); return(is_exists); } fxsaber 2023.05.19 07:27 #809 Cuong Le Van #:OrderTicket()にバグがあるようです。MT5の履歴から正しいチケットではない どうやら入手したいようだ。 // 変更点のリスト: // 13.03.2019 // 追加OrderTicketID()を 追加 - PositionID of an MT5 transaction or MT5 position, and the ticket of a pending MT4 order. 理由はこちらに 詳しい。 Cuong Le Van 2023.05.19 10:18 #810 fxsaber #:どうやら、あなたはそれを手に入れたいようだ。その理由はここに 詳しい。 ありがとうございます。 でいいんだ。 OrderTicketID() 1...747576777879808182838485868788...95 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
define MT4ORDERS_FASTHISTORY_OFFディレクティブを有効にすると、コンパイルできません。
以前、私はこのディレクティブを有効にしなければならなかったが、それはこの記事で使用されているいくつかの機能(ここで 議論されている)が、このディレクティブなしでは使用できないからである。もしまだ機能が低下しているのであれば、修正することが望ましい。
define MT4ORDERS_FASTHISTORY_OFFディレクティブを有効にすると、コンパイルできません。
これは歴史的な名残で、どうにも取り除くことができない。
MQは多くの頭痛の種を作り出したので、騙された亜種しか使う価値がない。
バグ報告が妙に少ないが、ライブラリのメジャーアップデートがあるはずだ。まだ準備ができていない。
OrderSelect(i, SELECT_BY_POS)この操作では、下位の指数には常に未決済のポジションがあり、上位の指数には未決済の注文が あります。
この事実を利用すれば、必要なMT4注文の検索を多少早めることができます。
その可能性はないはずのスピードでテスターに勝つことは可能なのだろうか?
私は「チャンスなし」のエキスパート・アドバイザーを書きました。
コードを見れば、遅いと思うかもしれません。しかし、このコードは多くの「TS」の動作をエミュレートしている。そして、多くのTSは全く同じように動作します - まず第一に、彼らはポジション/注文を見つけます。
約定まで81秒。実際のダニの1日のために何か非常に。しかし、そこに何がある。完了まで81秒。実際の刻みで1日分というのは多い。しかし、それが何なのか。
取引、自動取引システム、取引戦略のテストに関するフォーラム
ライブラリ:仮想
fxsaber、2023.03.01 20:36
チェックサムが一致しました。倍 近くスピードアップできました。
簡単ではありませんが、うまくいきました。
ノーチャンス "EAを書いた - スピードを最大限に最適化した。
取引、自動取引システム、取引戦略のテストに関するフォーラム
ライブラリ: MT4Orders
fxsaber, 2022.07.20 00:39
同じ例(1ロットをオープンし、0.1、0.2、0.3、0.4ロットで徐々にクローズ)を使用していますが、異なるビジュアライゼーションを使用しています。

画像上部の赤枠のOrderLotsOpen()。こんにちは、
OrderTicket()にバグがあるようです。
それはMT5の履歴から正しいチケットではありません。
これは私のコードです:
OrderTicket()にバグがあるようです。
MT5の履歴から正しいチケットではない
どうやら入手したいようだ。
理由はこちらに 詳しい。
どうやら、あなたはそれを手に入れたいようだ。
その理由はここに 詳しい。
ありがとうございます。
でいいんだ。
OrderTicketID()