
MQL5 標準ライブラリ CTrade クラス(MQL5)
CTrade::PositionOpen()
- できること
- 売買の向きを引数で指定して成行注文を出す
- 対応
- MQL5(#include <Trade\Trade.mqh> が必要)
CTrade::PositionOpen() とは
CTrade クラスで、ORDER_TYPE_BUY / ORDER_TYPE_SELL を引数で指定して成行注文を出すメソッドです。Buy() と Sell() を1つにまとめたもので、売買の向きを変数で切り替えたいときに便利です。
CTrade::PositionOpen() の書式と引数
bool CTrade::PositionOpen(
const string symbol,
const ENUM_ORDER_TYPE order_type,
const double volume,
const double price,
const double sl,
const double tp,
const string comment=""
)| 引数 | 型 | 省略時 | 説明 |
|---|---|---|---|
symbol | const string | 必須 | 銘柄名。 |
order_type | const ENUM_ORDER_TYPE | 必須 | ORDER_TYPE_BUY または ORDER_TYPE_SELL。 |
volume | const double | 必須 | ロット数。 |
price | const double | 必須 | 注文価格(買いは Ask、売りは Bid)。 |
sl | const double | 必須 | 損切り価格。0 なら付けません。 |
tp | const double | 必須 | 利確価格。0 なら付けません。 |
comment | const string | "" | 注文のコメント。 |
戻り値
リクエストを送信できたら true を返します。
CTrade::PositionOpen() の使い方(コード例)
#include <Trade\Trade.mqh>
CTrade trade;
bool isBuy = true; // 売買の向き
ENUM_ORDER_TYPE type = isBuy ? ORDER_TYPE_BUY : ORDER_TYPE_SELL;
double price = isBuy ? SymbolInfoDouble(_Symbol, SYMBOL_ASK) : SymbolInfoDouble(_Symbol, SYMBOL_BID);
if(!trade.PositionOpen(_Symbol, type, 0.1, price, 0, 0))
Print("発注失敗 ", trade.ResultRetcodeDescription());OnTick()・OnStart() などの関数の中に書いて使う例です。MetaEditor でコンパイルできることを確認済みです。
CTrade::PositionOpen() の注意点
- Buy()・Sell() と違い、price に 0 を渡しても現在値は自動で入りません。
関連する関数
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












