OrderModify()の使用方法
MQL4 (MT4)のOrderModify()の使い方をChatGPTに確認しました。
使用GPTs:EA Creator
MT4 MQL4のOrderModifyの使い方を実装例を交えて教えて下さい。補足で気を付ける点なども教えて下さい。
回答
OrderModify
関数は、MetaTrader 4 (MT4) プラットフォームで既存の注文のパラメータ(例えば、ストップロス(SL)、テイクプロフィット(TP)、有効期限、および注文価格)を変更するために使用されるMQL4言語の関数です。この関数を使用することで、市場の変動や新たな分析に基づいて注文設定を動的に調整することが可能になります。
OrderModify関数の基本形式
bool OrderModify(
int ticket, // 注文チケット番号
double price, // 新しい注文価格
double stoploss, // 新しいストップロス価格
double takeprofit, // 新しいテイクプロフィット価格
datetime expiration, // 新しい有効期限
color arrow_color // 注文に関連付けられる矢印の色
);
使用例
以下の例では、特定の買い注文のストップロスとテイクプロフィットを更新する方法を示します。
void ModifyOrderExample()
{
int ticket = 123456; // 変更したい注文のチケット番号
double newStopLoss = 1.10500; // 新しいストップロスの価格
double newTakeProfit = 1.11500; // 新しいテイクプロフィットの価格
// 注文を選択
if(OrderSelect(ticket, SELECT_BY_TICKET))
{
// 注文を変更
bool result = OrderModify(ticket, OrderOpenPrice(), newStopLoss, newTakeProfit, 0, clrNONE);
if(result)
{
Print("注文 ", ticket, " が成功に変更されました。");
}
else
{
Print("注文の変更に失敗しました。エラー: ", GetLastError());
}
}
else
{
Print("注文の選択に失敗しました。エラー: ", GetLastError());
}
}
注意点
- 注文の選択:
OrderModify
を使用する前に、OrderSelect
関数で適切な注文が選択されていることを確認してください。 - 価格の正確性: 新しい価格(
price
)、ストップロス(stoploss
)、テイクプロフィット(takeprofit
)は、ブローカーの要件や市場の規則に従って正確に設定する必要があります。価格は、適切な小数点以下の桁数で丸める必要があります。 - エラーハンドリング:
OrderModify
がfalse
を返した場合、GetLastError
関数を使用してエラーコードを取得し、エラーの原因を特定することが重要です。 - 実行時の市場条件: 市場が急速に動いている場合、指定した価格での注文変更が拒否されることがあります。このような状況では、再試行する前に市場の状況を再評価することが重要です。
- 有効期限: 保留中の注文に有効期限を設定する場合、新しい有効期限が現在時刻よりも未来であることを確認してください。即時注文(市場注文)の場合は、有効期限を
0
に設定することが一般的です。
OrderModify
関数を適切に使用することで、既存の注文を市場の変動や新たな取引戦略に応じて柔軟に調整することができます。これにより、取引リスクを管理し、収益性を最大化することが可能になります。
MQL4リファレンス
式な仕様は”MQL4 Reference“をご確認下さい。上記内容を確認しておくとより分かりやすいかと思います。
リンク:https://docs.mql4.com/trading/ordermodify
他のトレード関数の使用方法
以下のそれぞれのリンク先で確認していますので、ご参照ください。
関数名 | 概要 |
---|---|
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 | 注文のタイプ(買い、売り、買い停止、売り停止、買いリミット、売りリミット)を表す整数値を返します。 |
コメント