ライブラリ: MT4Orders - ページ 34 1...272829303132333435363738394041...95 新しいコメント Vladislav Andruschenko 2019.03.11 20:00 #331 私はこのような興味深い特異性に気づいた 私はmt4用の統計インジケーター(無料)を持っている。 私はmt5用のものを作ることにしました。 ライブラリは間に合いました!(自分でそのようなライブラリを書くのはあまりにも怠惰です)。 その前にMT5用のバージョンを作っていたのですが、それなりに不具合がありました。 MQL5のコードをすべて削除し、MT4Ordersライブラリを接続したところ、起動時にナンセンスが表示されるようになりました。 同時に、履歴はすべて正常です: また、OrderPrintは(履歴と同様に)すべてを正しく表示します。 私はチケット番号で取引を選択しています(複雑で分かりにくいシステムで、私自身いつも混乱してしまい、しばらくすると仕組みを忘れてしまいます :-))。) これがコードの一部です: if(SearchNextTicket(firsttimeticket,ticketREPORT,i,HistoryarrayNumber)==2) { firsttimeticket=MT45_OrderCloseTime(); } ticketREPORT=MT45_OrderTicket(); ポイントは、(統計のために)次のチケットは終了時間でソートして選択され、時間が同じならチケット番号で選択されるということです。 この場合、無意味な表示になってしまいます。 しかし、無害なprint文字列を追加すると、すべてが動作します: Print("1=== i="+i+" firsttimeticket="+firsttimeticket+" ticketREPORT="+ticketREPORT+" HistoryarrayNumber="+HistoryarrayNumber); if(SearchNextTicket(firsttimeticket,ticketREPORT,i,HistoryarrayNumber)==2) { firsttimeticket=MT45_OrderCloseTime(); } ticketREPORT=MT45_OrderTicket(); という無害な文字列を追加すると、すべてがうまくいく。 プリントのマジックは何ですか? この印刷はうまくいきます: Print("1=== i="+i); このようなプリントはもう正常に動作しません。 Print("1=== i="); Vladislav Andruschenko 2019.03.11 21:37 #332 わかった。 int i; // 動作しない int i=0; // すべてうまくいく fxsaber 2019.03.11 21:40 #333 Vladislav Andruschenko:面白いことに気づいたこの機能を再現する短いソースを書く。そうすれば、推測せずに行動できるようになる。 チケットによる選択 #include <MT4Orders.mqh> void OnStart() { TICKET_TYPE Tickets[]; const int Size = ArrayResize(Tickets, OrdersHistoryTotal()); for (int i = 0; i < Size; i++) if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) Tickets[i] = OrderTicket(); // チケットの暗記 for (int i = 0; i < Size; i++) if (OrderSelect(Tickets[i], SELECT_BY_TICKET)) // チケットで選ぶ OrderPrint(); } Vladislav Andruschenko 2019.03.11 21:43 #334 fxsaber:この機能をプレーするための短いソースを書いてください。そうすれば、推測せずに行動することが可能になる。チケットの選択 おそらく変数の初期 化が原因だろう(私にとっては)。 さらに解析する。 fxsaber 2019.03.12 23:13 #335 Andrey Khatimlianskii:私たちの通信で掘り起こした:このタスクでは 注文を設定するレベルは価格履歴に基づいて計算されますが、ティックの動きの性質に基づいて調整されます。注文がトリガーされ、取引が終了した後、EAは同じ価格レベルに基づいて注文を出すべきではありません(ただし、その時点で異なる値で調整することができます)。私はこの情報(注文が関連するレベル)をチケットにバインドされたメイン変数に格納します。もちろん、コメントに書くこともできますが、必ずしも便利で信頼できるとは限りません。OrderTicketOpen にバインドするのが論理的です。それから、TicketOpen-transactionのためにSELECT_BY_TICKETを作る必要があります。そして、TicketOpenオーダーにSELECT_BY_TICKETを追加します。 TicketOpenの両方のバリアントに対して複数のENTRY_OUT-dealsが存在し得るが、選択されるべきは1つだけであることは明らかである。しかし、このような会計業務では、このような曖昧さは障害にはなりません。 良いご指摘をありがとうございます。そのような配置は考えていませんでした。 Vladislav Andruschenko 2019.03.13 08:16 #336 mt5 のレポートでは、mt4 のレポートとはすべて数え方が違うのが興味深い。 mt4 では、ソートは取引終了時刻で行われ、取引終了時刻が同じ場合はチケットでカウントされます。 mt5では、レポートのソートは取引開始時刻で 行われます。 不便ですね。 それとも mt5 ではチケット番号(取引開始時間)順ですか? fxsaber 2019.03.13 08:27 #337 Vladislav Andruschenko:mt5のレポートでは、すべてがmt4のレポートとは異なる方法でカウントされるのが興味深い。mt4 では、ソートは終了時刻で行わ れ、取引の終了時刻が同じであればチケットでカウントされる。 開始 時間で行われます。 不便だ。そして、そうではありません。 それともチケット番号(開始時間)順ですか?MT5では終値でソートしています - MT5自身が履歴に記録を残す方法です。 Vladislav Andruschenko 2019.03.13 08:36 #338 fxsaber:そんなことはない。そうではありません。MT5 は終了時間でソートする - MT5 自体が履歴にレコードを入れる方法だ。 私はmt4からダウンロードしたレポートを使っています。 統計インジケーターを作っていたとき、私の数値はmt4からのレポートと一致しませんでした。 すべての数字を同じにするには、すべてのポジションを終値でソートする必要があることが経験的にわかりました(終値が同じ場合は、これらのポジションを取引でソートします)。 この原則によれば、私のレポートとmt4のレポートの統計の数字はすべて同じです。 mt5の場合、私の計算では何も変更せず、あなたのライブラリを適用しただけです。そして、レポートをアップロードするときに、mt5では始値でソートしていることがわかりました。 SELECT_BY_TICKETはなぜか正しく機能しません。 Vladislav Andruschenko 2019.03.13 08:46 #339 Vladislav Andruschenko:mt4からダウンロードしたレポートを見ている。統計インジケータを作成したところ、私の数値はmt4からのレポートと一致しませんでした。すべての数字を同じにするためには、すべてのポジションを終値でソートする必要があることが経験的にわかりました(終値が同じ場合は、これらのポジションを取引でソートします)。この原則に従えば、私のレポートの統計とmt4のレポートの数値はすべて同じになります。mt5の場合、私の計算では何も変更せず、あなたのライブラリを適用しただけです。そして、レポートをアップロードする際に、mt5でのソートが開始時間でソートされることがわかりました。SELECT_BY_TICKETはなぜか正しく機能しません。mt4では完璧に動作するものが、mt5では完璧に動作しません。 fxsaber 2019.03.13 08:49 #340 Vladislav Andruschenko:mt4からダウンロードしたレポートを見ている。統計インジケータを作成したところ、私の数値はmt4からのレポートと一致しませんでした。すべての数字を同じにするためには、すべてのポジションを終値でソートする必要があることが経験的にわかりました(終値が同じ場合は、これらのポジションを取引でソートします)。この原則に従えば、私のレポートの統計とmt4のレポートの数値はすべて同じになります。mt5の場合、私の計算では何も変更せず、あなたのライブラリを適用しただけです。そして、レポートをアップロードする際に、mt5では始値でソートしていることがわかりました。 実行する 取引、自動取引システム、取引戦略のテストに関するフォーラム。 ライブラリ:レポート fxsaber, 2018.12.11 12:28 pm.レポートがどのように見えるかをすぐに理解するには、以下のスクリプトを自分の口座で実行すれば十分です。 #define REPORT_BROWSER // ブラウザ起動時にレポートを作成 - DLL許可が必要です。 #include <Report.mqh> //https://www.mql5.com/ja/code/18801 void OnStart() { REPORT::ToFile(); // ブラウザでレポートを作成し、開く。 } SELECT_BY_TICKETがなぜか正しく動作しません。 取引、自動取引システム、取引戦略のテストに関するフォーラム。 ライブラリ: MT4Orders fxsaber, 2019.03.11 21:40 チケット選択が機能する #include <MT4Orders.mqh> void OnStart() { TICKET_TYPE Tickets[]; const int Size = ArrayResize(Tickets, OrdersHistoryTotal()); for (int i = 0; i < Size; i++) if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) Tickets[i] = OrderTicket(); // チケットの暗記 for (int i = 0; i < Size; i++) if (OrderSelect(Tickets[i], SELECT_BY_TICKET)) // チケットで選ぶ OrderPrint(); } 1...272829303132333435363738394041...95 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
私はこのような興味深い特異性に気づいた
私はmt4用の統計インジケーター(無料)を持っている。
私はmt5用のものを作ることにしました。
ライブラリは間に合いました!(自分でそのようなライブラリを書くのはあまりにも怠惰です)。
その前にMT5用のバージョンを作っていたのですが、それなりに不具合がありました。
MQL5のコードをすべて削除し、MT4Ordersライブラリを接続したところ、起動時にナンセンスが表示されるようになりました。
同時に、履歴はすべて正常です:
また、OrderPrintは(履歴と同様に)すべてを正しく表示します。
私はチケット番号で取引を選択しています(複雑で分かりにくいシステムで、私自身いつも混乱してしまい、しばらくすると仕組みを忘れてしまいます :-))。)
これがコードの一部です:
ポイントは、(統計のために)次のチケットは終了時間でソートして選択され、時間が同じならチケット番号で選択されるということです。
この場合、無意味な表示になってしまいます。
しかし、無害なprint文字列を追加すると、すべてが動作します:
という無害な文字列を追加すると、すべてがうまくいく。
プリントのマジックは何ですか?
この印刷はうまくいきます:
このようなプリントはもう正常に動作しません。
わかった。
int i; // 動作しない
int i=0; // すべてうまくいく
面白いことに気づいた
この機能を再現する短いソースを書く。そうすれば、推測せずに行動できるようになる。
チケットによる選択
この機能をプレーするための短いソースを書いてください。そうすれば、推測せずに行動することが可能になる。
チケットの選択
おそらく変数の初期 化が原因だろう(私にとっては)。
さらに解析する。
私たちの通信で掘り起こした:
このタスクでは
注文を設定するレベルは価格履歴に基づいて計算されますが、ティックの動きの性質に基づいて調整されます。注文がトリガーされ、取引が終了した後、EAは同じ価格レベルに基づいて注文を出すべきではありません(ただし、その時点で異なる値で調整することができます)。私はこの情報(注文が関連するレベル)をチケットにバインドされたメイン変数に格納します。もちろん、コメントに書くこともできますが、必ずしも便利で信頼できるとは限りません。
OrderTicketOpen にバインドするのが論理的です。それから、TicketOpen-transactionのためにSELECT_BY_TICKETを作る必要があります。そして、TicketOpenオーダーにSELECT_BY_TICKETを追加します。
TicketOpenの両方のバリアントに対して複数のENTRY_OUT-dealsが存在し得るが、選択されるべきは1つだけであることは明らかである。しかし、このような会計業務では、このような曖昧さは障害にはなりません。
良いご指摘をありがとうございます。そのような配置は考えていませんでした。
mt5 のレポートでは、mt4 のレポートとはすべて数え方が違うのが興味深い。
mt4 では、ソートは取引終了時刻で行われ、取引終了時刻が同じ場合はチケットでカウントされます。
mt5では、レポートのソートは取引開始時刻で 行われます。
不便ですね。
それとも mt5 ではチケット番号(取引開始時間)順ですか?
mt5のレポートでは、すべてがmt4のレポートとは異なる方法でカウントされるのが興味深い。
mt4 では、ソートは終了時刻で行わ れ、取引の終了時刻が同じであればチケットでカウントされる。
開始 時間で行われます。
不便だ。
そして、そうではありません。
それともチケット番号(開始時間)順ですか?
MT5では終値でソートしています - MT5自身が履歴に記録を残す方法です。
そんなことはない。
そうではありません。
MT5 は終了時間でソートする - MT5 自体が履歴にレコードを入れる方法だ。
私はmt4からダウンロードしたレポートを使っています。
統計インジケーターを作っていたとき、私の数値はmt4からのレポートと一致しませんでした。
すべての数字を同じにするには、すべてのポジションを終値でソートする必要があることが経験的にわかりました(終値が同じ場合は、これらのポジションを取引でソートします)。
この原則によれば、私のレポートとmt4のレポートの統計の数字はすべて同じです。
mt5の場合、私の計算では何も変更せず、あなたのライブラリを適用しただけです。そして、レポートをアップロードするときに、mt5では始値でソートしていることがわかりました。
SELECT_BY_TICKETはなぜか正しく機能しません。
mt4からダウンロードしたレポートを見ている。
統計インジケータを作成したところ、私の数値はmt4からのレポートと一致しませんでした。
すべての数字を同じにするためには、すべてのポジションを終値でソートする必要があることが経験的にわかりました(終値が同じ場合は、これらのポジションを取引でソートします)。
この原則に従えば、私のレポートの統計とmt4のレポートの数値はすべて同じになります。
mt5の場合、私の計算では何も変更せず、あなたのライブラリを適用しただけです。そして、レポートをアップロードする際に、mt5でのソートが開始時間でソートされることがわかりました。
SELECT_BY_TICKETはなぜか正しく機能しません。
mt4では完璧に動作するものが、mt5では完璧に動作しません。
mt4からダウンロードしたレポートを見ている。
統計インジケータを作成したところ、私の数値はmt4からのレポートと一致しませんでした。
すべての数字を同じにするためには、すべてのポジションを終値でソートする必要があることが経験的にわかりました(終値が同じ場合は、これらのポジションを取引でソートします)。
この原則に従えば、私のレポートの統計とmt4のレポートの数値はすべて同じになります。
mt5の場合、私の計算では何も変更せず、あなたのライブラリを適用しただけです。そして、レポートをアップロードする際に、mt5では始値でソートしていることがわかりました。
実行する
取引、自動取引システム、取引戦略のテストに関するフォーラム。
ライブラリ:レポート
fxsaber, 2018.12.11 12:28 pm.
レポートがどのように見えるかをすぐに理解するには、以下のスクリプトを自分の口座で実行すれば十分です。
SELECT_BY_TICKETがなぜか正しく動作しません。
取引、自動取引システム、取引戦略のテストに関するフォーラム。
ライブラリ: MT4Orders
fxsaber, 2019.03.11 21:40
チケット選択が機能する