
MQL5 標準ライブラリ CTrade クラス(MQL5)
CTrade::Sell()
- できること
- 成行で売り注文を出す
- 対応
- MQL5(#include <Trade\Trade.mqh> が必要)
CTrade::Sell() とは
CTrade クラスで、成行の売り注文を出すメソッドです。ロット数だけ指定すれば、チャートの銘柄を現在の Bid で売ります。
CTrade::Sell() の書式と引数
bool CTrade::Sell(
const double volume,
const string symbol=NULL,
double price=0.0,
const double sl=0.0,
const double tp=0.0,
const string comment=""
)| 引数 | 型 | 省略時 | 説明 |
|---|---|---|---|
volume | const double | 必須 | ロット数。 |
symbol | const string | NULL | 銘柄名。NULL ならチャートの銘柄。 |
price | double | 0.0 | 注文価格。0 なら現在の Bid が使われます。 |
sl | const double | 0.0 | 損切り価格(売りなので現在値より上)。0 なら付けません。 |
tp | const double | 0.0 | 利確価格(売りなので現在値より下)。0 なら付けません。 |
comment | const string | "" | 注文のコメント。 |
戻り値
リクエストを送信できたら true を返します。成立したかは ResultRetcode() で確認します。
CTrade::Sell() の使い方(コード例)
#include <Trade\Trade.mqh>
CTrade trade;
trade.SetExpertMagicNumber(12345);
double pip = (_Digits == 3 || _Digits == 5) ? _Point * 10 : _Point;
double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
double sl = NormalizeDouble(ask + 20 * pip, _Digits);
double tp = NormalizeDouble(ask - 40 * pip, _Digits);
if(!trade.Sell(0.1, _Symbol, 0.0, sl, tp) || trade.ResultRetcode() != TRADE_RETCODE_DONE)
Print("売り失敗 ", trade.ResultRetcode(), " ", trade.ResultRetcodeDescription());OnTick()・OnStart() などの関数の中に書いて使う例です。MetaEditor でコンパイルできることを確認済みです。
CTrade::Sell() の注意点
- 売りの損切りは Ask より上、利確は Ask より下に置きます。向きを逆にすると 10016(ストップが不正)になります。
MQL4 と MQL5 の違い
MQL4 の OrderSend(_Symbol, OP_SELL, ロット, Bid, …) にあたります。
CTrade::Sell() でよく出るエラー
関連する関数
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












