MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1311

 
MakarFX:

質問1:質問がよくわからない(

選択された期間の開始または期間そのものを取得するためのプログラム

 
Andrey Sokolov:

選択された期間の先頭または期間そのものを取得するため

No,"OrdersHistoryTotal クライアント端末に読み込まれた現在のアカウント履歴のうち、クローズされた注文と削除された注文の数を返します。"
 
Andrey Sokolov:

選択された期間の先頭または期間そのものを取得するため

かつては、「履歴」タブの設定によって、期間だけでなく、ソート順も変わっていました。仕分けは不変になったようですが、期間は依存したままだったようです。つまり、2020.12.01~2020.12.04の履歴を表示する場合、OrdersHistoryTotal()はこの期間の注文量のみを 返します。そして、脳が完全に乾ききっていない場合は、閉店時間までにカウントされます。オープンタイムを考慮していない。例えば、2020.12.02にオープンし、2020.12.05にクローズした(まだあまり良い日付ではないが)注文があったとすると、2020.12.01から2020.12.04までの期間に入ることはないだろう。
 
Alexey Viktorov:
脳みそが完全に乾いていなくても、閉店時間にはカウントされますしね。

はい、閉じるか削除のみ

 
Alexey Viktorov.MakarFXは、どのような日付がカウントされるかを明確にしてくれてありがとうございます。しかし、質問は正確にはそれについてではありません。例えば「先月」の期間を選択したとすると、その日に取引がなかったとしても、この(選択した)期間の開始日を取得するにはどうすればよいでしょうか。
 
Andrey Sokolov:
Alexey Viktorov.MakarFXは、どのような日付がカウントされるかを明確にしてくれてありがとうございます。しかし、質問は正確にはそれについてではありません。期間「先月」を選択したとすると、その日に取引をしていなくても、この(選択した)期間の開始日を取得するにはどうしたらよいでしょうか。
ありえません。
 
Andrey Sokolov:
Alexey Viktorov.MakarFX, どのような日付が考慮されるかを明確にしていただき、ありがとうございます。しかし、私の質問は正確にはこれに関するものではありませんでした。例えば、「先月」の期間を選択したとします。この(選択した)期間の開始日を、その日に取引していなくても、プログラムで取得するにはどうすればよいでしょうか。

期間開始日はなく、最短で日付のある令状があります。正直悲しいことに、履歴に注文がなければ、期日はない。実は、それだけなんです。

 
Valeriy Yastremskiy:

期間開始日はなく、最短で日付のある令状があります。正直悲しいことに、履歴に注文がなければ、期日はない。実は、それだけなんです。

この設定は、「日常的な調整」のためのものではありません。

99.9%の取引システムでは、3ヶ月の履歴の期間は完全に動作しますが、おそらくTSの例外は、月に数万件の注文 - 1ヶ月の期間は、ここで設定する必要があります。

SZZ:長時間の 履歴でも性能低下は感じられなかった(何事も壊れるということがよくわかる))。)- が、1ヶ月の場合、意外とあるのかもしれませんね


だから、もしMetaTraderの開発者が注文履歴を「回転」させることを許可したなら、それは悪いことだ!

)))

 
Igor Makanu:

この設定は、"日々の微調整 "向けではありません。

99.9%の取引システムでは、3ヶ月の履歴の期間は完全に動作しますが、まあ、おそらくTSの例外で、月に数万件の注文 - ここでは、最も可能性の高い1ヶ月の期間を設定する必要があります。

SZZ:長時間の 履歴でも性能低下は感じられなかった(何事も壊れるということがよくわかる)))- が、1ヶ月の場合、意外とあるのかもしれませんね


だから、もしMetaTraderの開発者が注文履歴を「回転」させることを許可したなら、それは悪いことです。

)))

私はもっと悲観的なアプローチをとっています。履歴のようなデフォルトのデータでは解析ができない。なぜなら、履歴は存在しなければならないし、見つけなければならないし、効率的な解析には独自のデータ収集が必要だからだ ))))履歴は運用管理のためだけのものです。

 

WinAPIを使ってフォームから日付を引っ張ってきてみてください。そして、新しいピリオドも注文してください。

4の場合、5の場合はどうなのかわからない。


これを見つけたんです、数年前にやったんです、こんな感じで。

#import "user32.dll"
   int GetForegroundWindow();
   int PostMessageA(int hWnd, int msg, int wParam, int lParam);
#import

//загружает всю историю закрытых ордеров
bool DownloadOrderHistory()
   {
   int eHandle=GetForegroundWindow();
   if(eHandle<=0) return(false);
   return(PostMessageA(eHandle,0x0111,0x8122,0)==1);
   }
GetForegroundWindow を置き換えた方が良いのでは?
理由: