OrdersHistoryTotal()の使い方
MQL4 (MT4)のOrdersHistoryTotal()の使い方をChatGPTに教えてもらいました。
使用GPTs:EA Creator
MT4 MQL4のOrdersHistoryTotalの利用方法を装例を教えて下さい。補足で気を付ける点なども教えて下さい。
回答
OrdersHistoryTotal
関数は、MetaTrader 4 (MT4) プラットフォームでユーザーのアカウントに紐づいた完了した(決済されたまたはキャンセルされた)注文の総数を返すMQL4言語の関数です。この関数を使うことで、過去の取引履歴に基づいた分析や統計の取得が可能になります。
OrdersHistoryTotal関数の使用例
OrdersHistoryTotal
関数は非常にシンプルで、引数を取らずに完了した注文の総数を整数で返します。
完了した注文の基本情報を表示する例
void OnStart()
{
// 完了した注文総数を取得
int totalHistory = OrdersHistoryTotal();
// 完了した注文総数を表示
Print("完了した注文総数: ", totalHistory);
// 各完了した注文の基本情報を表示
for(int i = 0; i < totalHistory; i++)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) // 完了した注文を選択
{
// 注文情報の表示
Print("注文 #", OrderTicket(), ": ", OrderType(), " ", NormalizeDouble(OrderLots(), 2), " ロット ", OrderSymbol(), " at ", NormalizeDouble(OrderOpenPrice(), 5), " Closed at ", NormalizeDouble(OrderClosePrice(), 5));
}
}
}
この例では、OrdersHistoryTotal
を使用して完了した注文の総数を取得し、その後でOrderSelect
関数を使って各注文にアクセスし、注文の基本情報を表示しています。
注意点
- 注文の選択:
OrderSelect
関数を使用して特定の注文を選択する際には、第二引数にSELECT_BY_POS
を、第三引数にMODE_HISTORY
を指定することで、完了した注文のリストから注文を選択します。 - 履歴データの利用: 完了した注文の履歴は、トレードの分析や戦略の改善、またはレポート作成に有用な情報を提供します。例えば、特定の期間における成功した取引と失敗した取引の割合を計算することができます。
- 履歴データの更新: MT4では、特定の条件下で履歴データが自動的に更新されることがあります。たとえば、ブローカーによっては、データの保持期間に制限がある場合があります。また、履歴データはMT4プラットフォームの「履歴センター」から手動で更新することも可能です。
- エラーハンドリング:
OrderSelect
関数が失敗(false
を返す)した場合のエラーハンドリングを適切に行うことが重要です。失敗の原因を特定するにはGetLastError
関数を使用します。
OrdersHistoryTotal
関数とこれに関連する注文操作関数を理解し、適切に使用することで、EAやスクリプトでの過去の取引データの分析や管理が容易になります。
MQL4リファレンス
正式な仕様は”MQL4 Reference“をご確認下さい。上記内容を確認しておくとより分かりやすいかと思います。
リンク:https://docs.mql4.com/trading/ordershistorytotal
他のトレード関数の使用方法
以下のそれぞれのリンク先で確認していますので、ご参照ください。
関数名 | 概要 |
---|---|
OrderClose | 指定されたチケット番号、ロット数、クローズ価格、スリッページを指定して特定の注文を閉じるために使用されます。成功した場合、真を返します。 |
OrderCloseBy | 2つの相反する注文を相殺するために使用され、一方の注文を閉じ、もう一方には相当する利益または損失が記録されます。 |
OrderClosePrice | 最後に閉じられた注文のクローズ価格を返します。注文が選択されている必要があります。 |
OrderCloseTime | 注文が閉じられた正確な日時を返します。注文が閉じられていない場合は、ゼロを返します。 |
OrderComment | 注文に関連付けられたコメントを返します。 |
OrderCommission | 注文にかかるコミッションの金額を返します。 |
OrderDelete | 指定されたチケット番号の保留中の注文を削除します。成功した場合、真を返します。 |
OrderExpiration | 保留注文の有効期限を日時形式で返します。有効期限が設定されていない場合は、ゼロを返します。 |
OrderLots | 注文のロット数を返します。 |
OrderMagicNumber | 注文に割り当てられたマジックナンバーを返します。これは注文を識別するためにEAによって使用される数値です。 |
OrderModify | 既存の注文のパラメータ(価格、ストップロス、テイクプロフィット、有効期限等)を変更します。成功した場合、真を返します。 |
OrderOpenPrice | 注文が開かれた価格を返します。 |
OrderOpenTime | 注文が開かれた正確な日時を返します。 |
OrderProfit | 選択された注文の詳細情報をエキスパートログに出力します。 |
OrderProfit | 注文から得られた利益または損失を返します。 |
OrderSelect | 指定されたチケット番号の注文を選択するか、全注文の中から特定の注文を選択します。成功した場合、真を返します。 |
OrderSend | 新しい注文を送信します。注文のタイプ、量、価格、ストップロス、テイクプロフィット等を指定できます。成功した場合、注文のチケット番号を返します。 |
OrdersHistoryTotal | アカウントの取引履歴に含まれる注文の総数を返します。これには閉じられた注文とキャンセルされた注文が含まれます。 |
OrderStopLoss | 注文のストップロスレベルを返します。 |
OrdersTotal | 現在開いている注文の総数を返します。 |
OrderSwap | 注文にかかるスワップ料金を返します。 |
OrderSymbol | 注文が関連する通貨ペアを返します。 |
OrderTakeProfit | 注文のテイクプロフィットレベルを返します。 |
OrderTicket | 注文のユニークなチケット番号を返します。 |
OrderType | 注文のタイプ(買い、売り、買い停止、売り停止、買いリミット、売りリミット)を表す整数値を返します。 |
コメント