
MQL4 MQL4 の注文関数
OrderOpenPrice()
- できること
- 選択中の注文の約定価格(注文価格)を取得する
- 対応
- MQL4
OrderOpenPrice() とは
MQL4 で、OrderSelect() で選んだ注文の約定価格(待機注文なら注文価格)を返す関数です。建値への損切り移動や、含み益の pips 計算に使います。
OrderOpenPrice() の書式と引数
double OrderOpenPrice()引数はありません。
戻り値
約定価格(待機注文は注文価格)。
OrderOpenPrice() の使い方(コード例)
// 含み益が 30pips を超えた買いポジションの損切りを建値に移動
double pip = (_Digits == 3 || _Digits == 5) ? _Point * 10 : _Point;
for(int i = OrdersTotal() - 1; i >= 0; i--)
{
if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES) || OrderType() != OP_BUY || OrderSymbol() != _Symbol) continue;
double open = OrderOpenPrice();
if(Bid - open >= 30 * pip && OrderStopLoss() < open)
if(!OrderModify(OrderTicket(), open, NormalizeDouble(open, _Digits), OrderTakeProfit(), 0))
Print("建値移動 失敗 error=", GetLastError());
}OnTick()・OnStart() などの関数の中に書いて使う例です。MetaEditor でコンパイルできることを確認済みです。
OrderOpenPrice() の注意点
- OrderModify() でポジションの損切りだけを変えるときも、price 引数には OrderOpenPrice() を渡します。
MQL4 と MQL5 の違い
MQL5 では PositionGetDouble(POSITION_PRICE_OPEN) で取得します。












