OrderSelect()の使用方法
MQL4 (MT4)のOrderSelect()の使い方をChatGPTに確認しました。
使用GPTs:EA Creator
MT4 MQL4のOrderSelectの使い方を実装例を交えて教えて下さい。補足で気を付ける点なども教えて下さい。
回答
OrderSelect
関数は、MetaTrader 4 (MT4) プラットフォームで特定の注文を選択し、その後の注文情報取得や操作のために使用されるMQL4言語の基本的な関数です。この関数を使うことで、指定された注文に関する詳細情報を取得したり、注文を変更したりするための前準備として注文を選択することができます。
OrderSelect関数の基本形式
bool OrderSelect(
int ticket, // 注文番号またはインデックス
int select, // 選択モード
int pool // 注文プール
);
ticket
: 選択する注文のチケット番号またはリスト内のインデックス。select
: 選択モード。SELECT_BY_TICKET
はチケット番号で注文を選択し、SELECT_BY_POS
は注文リストのインデックスで選択します。pool
: 注文プールを指定します。MODE_TRADES
は現在の取引(開いている注文と保留中の注文)を対象とし、MODE_HISTORY
は閉じた注文とキャンセルされた注文の履歴を対象とします。
使用例
以下の例では、アカウントの最初の開いている注文を選択し、その基本情報を表示する方法を示します。
void OnStart()
{
// 最初の開いている注文を選択
if(OrderSelect(0, SELECT_BY_POS, MODE_TRADES))
{
// 選択された注文の情報を表示
Print("注文選択成功: チケット #", OrderTicket(), ", タイプ: ", OrderType(), ", ロット数: ", OrderLots(), ", オープン価格: ", OrderOpenPrice());
}
else
{
Print("注文選択失敗。エラー: ", GetLastError());
}
}
注意点
- エラーハンドリング:
OrderSelect
が失敗した場合(false
を返す場合)、GetLastError
関数を使用してエラーコードを取得し、問題の原因を特定します。 - インデックスとチケット番号の違い:
SELECT_BY_POS
を使用する場合、インデックスは0から始まり、開いている注文リストの順番に従います。SELECT_BY_TICKET
を使用する場合は、具体的な注文チケット番号を指定します。 - 注文プールの選択:
MODE_TRADES
を使用すると、現在の取引(開いている注文と保留中の注文)のみが対象となります。履歴注文にアクセスするには、MODE_HISTORY
を使用します。 - 使用シナリオ:
OrderSelect
は、注文情報の取得、注文の変更(OrderModify
)、注文のクローズ(OrderClose
)など、注文に関するさまざまな操作を行う前に必ず必要となります。
OrderSelect
関数を適切に使用することで、MT4のプログラミングにおいて特定の注文に対して様々な操作を効率的に実行することが可能になります。これにより、自動取引戦略や注文管理の自動化における柔軟性と精度が向上します。
MQL4リファレンス
式な仕様は”MQL4 Reference“をご確認下さい。上記内容を確認しておくとより分かりやすいかと思います。
リンク:https://docs.mql4.com/trading/orderselect
他のトレード関数の使用方法
以下のそれぞれのリンク先で確認していますので、ご参照ください。
関数名 | 概要 |
---|---|
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 | 注文のタイプ(買い、売り、買い停止、売り停止、買いリミット、売りリミット)を表す整数値を返します。 |
コメント