ライブラリ: MT4Orders - ページ 35

 
Vladislav Andruschenko:

mt4で完璧に機能するものがmt5で完璧に機能するわけではありません。

残念ながら、コードがなければ、このような発言は建設的な議論を引き起こすことはないでしょう。

 
fxsaber:

残念ながら、コードがなければ、このような発言は建設的なものにはならない。


私はそう思う。

私はあなたのレポートを実行しました。

私は自分自身のエラーを探しています。

ありがとう。


追伸

私はあなたのコードを理解しようとしています。


でも、これを見つけました:

      if (Sort ? OrderSelect((int)Tickets[i][TICKET_INDEX], SELECT_BY_TICKET) : (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) && Filter.Is())) // int - (Sort == true) MQL4のみ。

ということは、まだソートに関する何かがあるのでしょうか?


#ifdef __MQL5__
      static const bool Sort = false;
    #else // MQL5__
      #ifdef __VIRTUAL__
        static const bool IsTester = ::MQLInfoInteger(MQL_TESTER);

        const bool Sort = !IsTester && !VIRTUAL::GetHandle();
      #else // __VIRTUAL__
        static const bool Sort = !::MQLInfoInteger(MQL_TESTER);
      #endif // __VIRTUAL__
 
Vladislav Andruschenko:

あなたのコードを理解しようとしているのですが、頭に入ってきません。

でも、これを見つけました:

ソートについて何か書いてあるんですか?

コードはクロスプラットフォームです。ソートコードはMT4でのみ実行される。

そのコードは、2006年の同名のスクリプトをローカルで作り直したもので、ひどいものです。
 
fxsaber:

コードはクロスプラットフォームです。ソートコードはMT4でのみ実行される。

このコードは、2006年に作成された同名のスクリプトをローカルで作り直したもので、ひどいものだ。


大まかには次のような話だ:

2012年、私は統計収集のためのインジケーターを作成し、MT4用のHTMLですべてを収集しました。

長い間悪戦苦闘し、(他の何百ものプロジェクトのように)それを放棄しました。

2016年にこのプロジェクトを見つけ、完成させることにしました。しかし、(履歴の)ソート順と、結果をmt4のレポートと同じにするために、終了時間でソートすることに苦労しました、

しかし、そこにはいくつかのニュアンスもありました:

終値が同じである場合、ブローカーが(トータル・ストップ・ロスがトリガーされた場合)順番にクローズするのではなく、チケットがばらばらにクローズすることがあります(時々あります)。

私はこの問題を解決しました。

MT4と 私のインジケーターからのレポートは同じです。あなたのレポートのように


ほとんどのユーザーはmt5で同じことをするよう求めています。

もちろん、私は自分のライブラリを構築するのが億劫なので、あなたのライブラリを参考にしました。


私のコードでは何も変更していません - MT4Ordersライブラリを接続しました - しかし、私のコードがその中で動作しないことがわかりました(理由はまだわかりません、多分私の怠惰と曲がった性格のせいでしょう)。


mt4の場合:クローズ時間が同じ場合、ブローカーが順番にクローズするのではなく(トータル・ストップロスがトリガーされた場合)、チケットがばらばらにクローズすることがある(たまにある)。

mt5では: このソートはせずに、BACのように終値から始めるようにしました。


で、結果:





ご覧の通り、あなたのレポートと私のレポートの結果は同じです。これがあるべき姿です。


しかし、mt5のレポートではソートが異なります。



ご覧の通り、mt5ターミナルからのレポートには異なるソートがあります。

そしてそれはソート(リストの最後から、またはリストの最初から)ではなく、開いた時間によって表現されます。

大規模なレポートでは、統計(例えば、連続勝ち)に違いが出ます。


それが私が言いたかったことです。

だから、私は最後まですべてを理解しようとしているのです。

混乱させてしまったのなら謝ります。

これからも良い仕事を続けてください。

 
Vladislav Andruschenko:

ご覧のように、あなたのレポートと私のレポートの結果は同じです。そういうものだ。


しかし、mt5のレポートではソートが異なっています。



ご覧のように、mt5ターミナルからのレポートはソートが異なります。

そして、それはソート(リストの最後から、またはリストの最初から)ではなく、開いた時間で表現されています。

大規模なレポートでは、統計(例えば、連続勝ち)に違いが生じます。

実際、現在の MT5 のポジションレポートは開始 時間でソートされています。このポジションレポートは、開発者が最近、何の苦労もなく作ったものです。だから、こんなに粗雑になってしまったのだ。このような非論理的なソートの理由は、ほぼ間違いないと思います。指摘すれば修正してくれると思います。

連勝については、ポジションレポートとは何の関係もない。彼らのポジションレポートは、スタッツに影響を与えない後付けのものだ。

 
fxsaber:

確かに、現在のMT5のポジションレポートは、オープン 時間でソートされています。このポジションレポートは、開発者が最近、何の苦労もなく作ったものです。そのため、このような粗雑なものになってしまった。このような非論理的なソートの理由は、ほぼ間違いないと思います。指摘すれば修正してくれると思います。

連勝については、ポジションレポートとは何の関係もない。彼らのポジションレポートは、スタッツに影響を与えない後付けのものだ。

洞察に感謝する。

ニュアンスについては後で考えてみるよ。

ライブラリーをありがとう。

 
Vladislav Andruschenko:

私のコードでは何も変更していません - MT4Ordersライブラリを接続しました - しかし、私のコードがその中で動作しない ことがわかりました(理由はまだわかりません、私の怠惰と曲がった性格のせいかもしれません)。

ご覧のように、あなたのレポートと私のレポートの結果は同じです。そうあるべきだ

この2つのフレーズは互いに矛盾している。

 
fxsaber:

この2つのフレーズは互いに矛盾しています。

私は、mt4のコードではクローズ時間でソートしているが、クローズ時間が同じ場合はチケット番号でソートしているという意味である(時々、ポジションが 順番通りにクローズされない口座があり、このため全体の統計が悪くなった)。- 統計はmt4からのレポートに合わせました。注意しないでください。私の頭の中には私自身のゴキブリがいます。

どういうわけか、このコードはmt5では機能せず、ソートなしでレポートを作成した。

だからmt5でも同じ結果になったのだ。わざわざする必要があったのだろうか?今はソートなしでもエラーは出ません。3年(7年)前から何かが変わったのかもしれない。

Совершение сделок - Торговые операции - MetaTrader 5
Совершение сделок - Торговые операции - MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
// 変更リスト:
// 13.03.2019
// 追加: OrderTicketID() を追加 - MT5 取引または MT5 ポジションの PositionID、保留中の MT4 注文のチケット。
// 追加: SELECT_BY_TICKET は、すべての MT5 チケット (および MT5-PositionID) に対して有効です。
 
スーパー!私の理解では、これは履歴でSELECT_BY_TICKETを選択する(部分的な実行がない保証の下で)問題を解決するのですか?