
MQL5 MQL5 の取引関数
OrderCalcProfit()
- できること
- 指定した価格で決済したときの損益を計算する
- 対応
- MQL5
OrderCalcProfit() とは
MQL5 で、指定した銘柄・ロット数で、ある価格で買って(売って)別の価格で決済したときの損益を口座通貨で計算する関数です。損切りまでの損失額から、リスクに合わせたロット数を計算するときに便利です。
OrderCalcProfit() の書式と引数
bool OrderCalcProfit(
ENUM_ORDER_TYPE action,
string symbol,
double volume,
double price_open,
double price_close,
double &profit
)| 引数 | 型 | 省略時 | 説明 |
|---|---|---|---|
action | ENUM_ORDER_TYPE | 必須 | 注文の種類。ORDER_TYPE_BUY または ORDER_TYPE_SELL。 |
symbol | string | 必須 | 銘柄名。 |
volume | double | 必須 | ロット数。 |
price_open | double | 必須 | エントリー価格。 |
price_close | double | 必須 | 決済価格。 |
profit | double & | 必須 | 計算した損益が入る変数(損失ならマイナス)。 |
戻り値
計算できたら true、できなければ false を返します。
OrderCalcProfit() の使い方(コード例)
// 1ロットで 20pips 逆行したときの損失額
double pip = (_Digits == 3 || _Digits == 5) ? _Point * 10 : _Point;
double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
double loss = 0;
if(OrderCalcProfit(ORDER_TYPE_BUY, _Symbol, 1.0, ask, ask - 20 * pip, loss))
Print("1ロットで20pipsの損失:", loss);OnTick()・OnStart() などの関数の中に書いて使う例です。MetaEditor でコンパイルできることを確認済みです。
OrderCalcProfit() の注意点
- スワップと手数料は含まれません。
MQL4 と MQL5 の違い
MQL4 では MarketInfo(銘柄, MODE_TICKVALUE) と MODE_TICKSIZE から自分で計算します。
関連する関数
MQL5 の取引関数の関数一覧
- OrderCheck
- OrderCalcMargin
- OrderCalcProfit
- PositionsTotal
- PositionGetTicket
- PositionGetSymbol
- PositionSelect
- PositionSelectByTicket
- PositionGetDouble
- PositionGetInteger
- PositionGetString
- OrderGetTicket
- OrderGetDouble
- OrderGetInteger
- HistorySelect
- HistoryDealsTotal
- HistoryDealGetTicket
- HistoryDealSelect
- HistoryDealGetDouble
- HistoryDealGetInteger
- HistoryDealGetString












