ライブラリ: MT4Orders - ページ 64 1...575859606162636465666768697071...95 新しいコメント mktr8591 2021.06.18 18:55 #631 fxsaber:注文が800件を超えたことがある。このような場合、数百の注文をハッシュマップする必要があります。 しかし、15分ごとに起こるわけではありませんよね? fxsaber 2021.06.18 20:41 #632 mktr8591: でも、15分ごとに起こることじゃないでしょう? そうだね。 fxsaber 2021.06.30 15:56 #633 このバンドルをご利用の方へ 取引、自動取引システム、取引戦略のテストに関するフォーラム ライブラリ: MT4Orders fxsaber, 2021.05.12 21:58 #define MT4ORDERS_BYPASS_MAXTIME 1000000 // 取引環境の同期を待つ最大時間(単位:µs #include <MT4Orders.mqh> //https://www.mql5.com/ja/code/16006 私はシンクロナイザーを更新することをお勧めします。 取引、自動取引システム、取引戦略のテストに関するフォーラム。 ライブラリ: TradesID fxsaber, 2021.06.30 15:53 ByPass.mqhが更新されました。部分的に約定した注文を削除する状況で正しく機能します。問題発生時のロギングを追加しました。 修正 されるまではb2958で 作業することをお勧めします。 mktr8591 2021.07.09 13:58 #634 fxsaber: MT4Orders.mqhのコード(2021.06.01から)について、いくつかの点を明確にしてください: 1. 1413行目 HistoryDealSelect2(): else if (::HistoryDealGetInteger(DealTicket, DEAL_TIME_MSC) < OrderTimeFill) break; ここでは、取引時刻が注文時刻より短い場合、履歴サイクルが中断されます。 mqh における取引の時間が、その取引が約定した注文の時間よりも短いということは、実際には起こりませんか(注文が一度に複数の取引で約定した場合を意味するのではありません)。 2. 2259行目 MT4OrderSend():return((arrow_color == INT_MAX) ? (MT4ORDERS::NewOrderCheck() ? 0 : -1) : ((((int)arrow_color != INT_MIN) || MT4ORDERS::NewOrderCheck()) && MT4ORDERS::OrderSend(MT4ORDERS::LastTradeRequest, MT4ORDERS::LastTradeResult) #ifdef MT4ORDERS_BYPASS_MAXTIME && (!MT4ORDERS::IsHedging || _B2(MT4ORDERS::ByPass += MT4ORDERS::LastTradeResult.order)) #endif // #ifdef MT4ORDERS_BYPASS_MAXTIME ? (MT4ORDERS::IsHedging ? (long)MT4ORDERS::LastTradeResult.order : // PositionID == Result.order - MT5-ヘッジ機能 ((MT4ORDERS::LastTradeRequest.action == TRADE_ACTION_DEAL) ? (MT4ORDERS::IsTester ? (_B2(::PositionSelect(MT4ORDERS::LastTradeRequest.symbol)) ? PositionGetInteger(POSITION_TICKET) : 0) : // MT4ORDERS::OrderSendのHistoryDealSelect ::HistoryDealGetInteger(MT4ORDERS::LastTradeResult.deal, DEAL_POSITION_ID)) : (long)MT4ORDERS::LastTradeResult.order)) : -1));注文が MT4ORDERS::ByPass+= に追加されないのはなぜですか?3: いくつかの関数で、WHILE(A) マクロを使用しています: 1088行目#define WHILE(A) while ((!(Res = (A))) && MT4ORDERS::Waiting())なぜIsStopped()をチェックしないのですか? 時間を最適化するためですか? ユーザーがOrderSend_MaxPauseを数秒に設定したらどうしますか?4.OrderSend(LastTradeRequest,LastTradeResult)の前に、LastTradeResultをクリアしていないことに気づきました。これは関数自体が行っているのでしょうか?文書化されていない機能ですか? fxsaber 2021.07.09 14:15 #635 mktr8591:MT4Orders.mqhのコード(2021.06.01から)について、いくつかの点を明確にしてください: 1. 1413行目 HistoryDealSelect2(): ここでは、取引時刻が注文時刻より短い場合、履歴サイクルが中断されます。 mqh における取引の時間が、その取引が約定した注文の時間よりも短いということは、実際には起こりませんか(注文が一度に複数の取引で約定した場合を意味するのではありません)。 文脈から大きく外れている。HistoryDealSelect2が 呼び出される場所を見てください。Result.orderが完全に実行された状態でnullの場合、Result.dealはそこにあります。保存には時間制限があります。おそらく、大規模なヒストリーの問題でテストされています。すでに覚えていない。私自身は、OrderSendの 組み込みシンクロナイザーを使用していません。なぜなら、NULL MT4ORDERS::OrderSend_MaxPauseを取るから です。 fxsaber 2021.07.09 14:17 #636 mktr8591:2. 行 2259 MT4OrderSend():MT4ORDERS::ByPass+=に注文が追加されないのはなぜですか? ネッティングのためのByPassは考えたことがありません。自分用に書いています。 fxsaber 2021.07.09 14:19 #637 mktr8591:3. いくつかの関数でマクロWHILE(A)を使っている:1088行目なぜIsStopped()をチェックしないのですか? 時間を最適化するためですか? ユーザーがOrderSend_MaxPauseを数秒に設定したらどうしますか? 実際には、ここで問題はないと思います。忘れっぽいから追加しなかったのではありません。 fxsaber 2021.07.09 14:20 #638 mktr8591:4.OrderSend(LastTradeRequest,LastTradeResult)の前に、LastTradeResultをクリアしていないことに気づきました。これは関数自体が行っているのでしょうか?文書化されていない機能ですか? すべてのMqlTradeResultフィールドはOrderSendによって埋められるようです。 mktr8591 2021.07.09 14:29 #639 fxsaber: ありがとう! 図書館は素晴らしい。 mktr8591 2021.07.09 14:34 #640 fxsaber: 僕はネットのためにByPassをデザインしたわけじゃない。自分のために書いているんだ。 ネットの観点からByPassのコードを見てみた。(もちろん、テストしてください)。 1...575859606162636465666768697071...95 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
注文が800件を超えたことがある。このような場合、数百の注文をハッシュマップする必要があります。
でも、15分ごとに起こることじゃないでしょう?
そうだね。
このバンドルをご利用の方へ
取引、自動取引システム、取引戦略のテストに関するフォーラム
ライブラリ: MT4Orders
fxsaber, 2021.05.12 21:58
私はシンクロナイザーを更新することをお勧めします。
取引、自動取引システム、取引戦略のテストに関するフォーラム。
ライブラリ: TradesID
fxsaber, 2021.06.30 15:53
ByPass.mqhが更新されました。部分的に約定した注文を削除する状況で正しく機能します。問題発生時のロギングを追加しました。
修正 されるまではb2958で 作業することをお勧めします。
MT4Orders.mqhのコード(2021.06.01から)について、いくつかの点を明確にしてください:
1. 1413行目 HistoryDealSelect2():ここでは、取引時刻が注文時刻より短い場合、履歴サイクルが中断されます。
mqh における取引の時間が、その取引が約定した注文の時間よりも短いということは、実際には起こりませんか(注文が一度に複数の取引で約定した場合を意味するのではありません)。
2. 2259行目 MT4OrderSend():
注文が MT4ORDERS::ByPass+= に追加されないのはなぜですか?
3: いくつかの関数で、WHILE(A) マクロを使用しています: 1088行目
なぜIsStopped()をチェックしないのですか? 時間を最適化するためですか? ユーザーがOrderSend_MaxPauseを数秒に設定したらどうしますか?
4.OrderSend(LastTradeRequest,LastTradeResult)の前に、LastTradeResultをクリアしていないことに気づきました。これは関数自体が行っているのでしょうか?文書化されていない機能ですか?
MT4Orders.mqhのコード(2021.06.01から)について、いくつかの点を明確にしてください:
1. 1413行目 HistoryDealSelect2():ここでは、取引時刻が注文時刻より短い場合、履歴サイクルが中断されます。
mqh における取引の時間が、その取引が約定した注文の時間よりも短いということは、実際には起こりませんか(注文が一度に複数の取引で約定した場合を意味するのではありません)。
文脈から大きく外れている。HistoryDealSelect2が 呼び出される場所を見てください。Result.orderが完全に実行された状態でnullの場合、Result.dealはそこにあります。保存には時間制限があります。おそらく、大規模なヒストリーの問題でテストされています。すでに覚えていない。私自身は、OrderSendの 組み込みシンクロナイザーを使用していません。なぜなら、NULL MT4ORDERS::OrderSend_MaxPauseを取るから です。
2. 行 2259 MT4OrderSend():
MT4ORDERS::ByPass+=に注文が追加されないのはなぜですか?
3. いくつかの関数でマクロWHILE(A)を使っている:1088行目
なぜIsStopped()をチェックしないのですか? 時間を最適化するためですか? ユーザーがOrderSend_MaxPauseを数秒に設定したらどうしますか?
実際には、ここで問題はないと思います。忘れっぽいから追加しなかったのではありません。
4.OrderSend(LastTradeRequest,LastTradeResult)の前に、LastTradeResultをクリアしていないことに気づきました。これは関数自体が行っているのでしょうか?文書化されていない機能ですか?
すべてのMqlTradeResultフィールドはOrderSendによって埋められるようです。
ありがとう!
図書館は素晴らしい。
僕はネットのためにByPassをデザインしたわけじゃない。自分のために書いているんだ。