
MQL5 標準ライブラリ CTrade クラス(MQL5)
CTrade::OrderModify()
- できること
- 待機注文の価格・損切り・利確・期限を変更する
- 対応
- MQL5(#include <Trade\Trade.mqh> が必要)
CTrade::OrderModify() とは
CTrade クラスで、まだ約定していない待機注文の価格・損切り・利確・有効期限を変更するメソッドです。保有中のポジションの損切り・利確の変更には PositionModify() を使います。
CTrade::OrderModify() の書式と引数
bool CTrade::OrderModify(
const ulong ticket,
const double price,
const double sl,
const double tp,
const ENUM_ORDER_TYPE_TIME type_time,
const datetime expiration,
const double stoplimit=0.0
)| 引数 | 型 | 省略時 | 説明 |
|---|---|---|---|
ticket | const ulong | 必須 | 待機注文のチケット番号。 |
price | const double | 必須 | 新しい注文価格。 |
sl | const double | 必須 | 新しい損切り価格。 |
tp | const double | 必須 | 新しい利確価格。 |
type_time | const ENUM_ORDER_TYPE_TIME | 必須 | 有効期限の種類(ORDER_TIME_GTC など)。 |
expiration | const datetime | 必須 | 有効期限。 |
stoplimit | const double | 0.0 | ストップリミット注文のリミット価格。 |
戻り値
リクエストを送信できたら true を返します。
CTrade::OrderModify() の使い方(コード例)
#include <Trade\Trade.mqh>
// 最初の待機注文の価格を 10pips 下げる
CTrade trade;
double pip = (_Digits == 3 || _Digits == 5) ? _Point * 10 : _Point;
ulong ticket = OrderGetTicket(0);
if(ticket > 0)
{
double price = NormalizeDouble(OrderGetDouble(ORDER_PRICE_OPEN) - 10 * pip, _Digits);
if(!trade.OrderModify(ticket, price, OrderGetDouble(ORDER_SL), OrderGetDouble(ORDER_TP), ORDER_TIME_GTC, 0))
Print("変更失敗 ", trade.ResultRetcodeDescription());
}OnTick()・OnStart() などの関数の中に書いて使う例です。MetaEditor でコンパイルできることを確認済みです。
CTrade::OrderModify() でよく出るエラー
関連する関数
CTrade クラス(MQL5)の関数一覧
- CTrade::Buy
- CTrade::Sell
- CTrade::BuyLimit
- CTrade::SellLimit
- CTrade::BuyStop
- CTrade::SellStop
- CTrade::PositionOpen
- CTrade::PositionClose
- CTrade::PositionClosePartial
- CTrade::PositionModify
- CTrade::OrderModify
- CTrade::OrderDelete
- CTrade::SetExpertMagicNumber
- CTrade::SetDeviationInPoints
- CTrade::SetTypeFilling
- CTrade::SetTypeFillingBySymbol
- CTrade::ResultRetcode
- CTrade::ResultRetcodeDescription
- CTrade::ResultOrder












