OrderModify()

 OrderModify()関数は、すでに約定した注文(=保有ポジション)や、待機注文に修正・変更を加えるために使用します。

 OrderModify()関数は、以下のように定義されています。

bool OrderModify(
int ticket,
double price,
double stoploss,
double takeprofit,
datetime expiration,
color arrow_color
);

 各引数の意味は、以下のとおりです。

  • int ticket
    修正・変更を加える注文のチケット番号を指定します。
  • double price
    待機注文の新しい注文価格を指定します。
  • double stoploss
    新しい損切り価格を指定します。
  • double takeprofit
    新しい利益確定価格を指定します。
  • datetime expiration
    待機注文の新しい有効期限を指定します。
  • color arrow_color
    MetaTrader4(MT4)では、OrderModify()関数によって損切り価格や利益確定価格を変更すると、チャート上の注文の修正・変更を行った位置にオブジェクトが表示されます。
    この引数では、当該オブジェクトの表示色を指定します。
    オブジェクトを表示させたくない場合は、「clr_NONE」と記述します。

戻り値

 注文の修正・変更が正常になされた場合は「true」が返され、正常に注文の修正・変更がなされなかった場合は「false」が返されます。

 「false」が返された場合に、エラーのより詳しい情報を得るためには、GetLastError()関数を使用します。

 GetLastError()関数の詳細については「こちら」を参照してください。

注意点

 注文価格と有効期限は、待機注文に対してのみ修正・変更を加えることができます。

 OrderModify()関数の引数として変更されていない値が渡された場合は、エラー1(ERR_NO_RESULT:計算結果の不存在)が生成されます。

 待機注文の有効期限を指定することのできないトレードサーバーを使用している場合に、「0」以外の値を有効期限として指定すると、エラー147(ERR_TRADE_EXPIRATION_DENIED:有効期限の指定の拒否)が生成されます。

具体例

 買いポジションを取得した後に、当該ポジションに対して損切り価格をしてたい場合は、以下のように記述します。


if(買いエントリー条件)
  {
   int Ticket = OrderSend(……);

   if(OrderSelect(Ticket,SELECT_BY_TICKET) == true);
     {
      bool Modified =
      OrderModify(OrderTicket(),OrderOpenPrice(),
                  OrderOpenPrice() - 50 * Point,
                  OrderTakeProfit(),0,clr_NONE);
     }
  • OrderSend()関数の詳細については「こちら」を参照してください。
  • OrderSelect()関数の詳細については「こちら」を参照してください。
  • OrderTicket()関数の詳細については「こちら」を参照してください。
  • OrderOpenPrice()関数の詳細については「こちら」を参照してください。
  • OrderTakeProfit()関数の詳細については「こちら」を参照してください。

関連EA

新しいトレーリング・ストップ登場!ハサミ打ちで利益を確保!!!
W-Trailing(ダブル・トレーリング)
W-Trailing(ダブル・トレーリング) | fx-on.com

W-Trailing(ダブル・トレーリング)
W-Trailing(ダブル・トレーリング) | fx-on.com

特 徴

  • ユックリしたストップロス機能
    通常のトレーリングストップでは、レートが保有ポジションの利益方向に1pips動いたらストップも1pips切り上がるところ、ストップの切り上がり方を自由に設定できる
    例えば、
    レートが保有ポジションの利益方向に5pips動いたらストップを1pips切り上げる。
    レートが保有ポジションの利益方向に10pips動いたらストップを1pips切り上げる。
    など
  • テイクプロフィットをトレーリングする機能
    一定時間の経過とともに利益確定値を切り下げていく。
    例えば、
    1分経過するごとに利益確定値を1pips切り下げる。
    5分経過するごとに利益確定値を1pips切り下げる。
    など

基本機能

 裁量等で建てたポジションに対してSL/TPを自動操作する。

パラメーター

  • StopLoss,TakeProfit(設定単位はpips)
    EAをチャートに適用した時点で、保有ポジションにSL/TPの設定がない場合に、自動でSL/TPを設定する。
  • StartTrailPips
    トレーリングを開始するPips設定(=レートが始値よりも何pips利益方向に動いたらトレールを開始するかの設定)
  • SLRatio
    レートが「A」pips(例えば3ips)動いたらSLを1pips動かす。
  • TLSeconds
    トレール開始後「B」秒(例えば250秒)経過したらTPを1pips動かす。

 上記EA(W-Trailing(ダブル・トレーリング)W-Trailing(ダブル・トレーリング) | fx-on.com)のより詳しい内容については「こちらW-Trailing(ダブル・トレーリング) | fx-on.com」を参照してください。

関連ツール

MQL言語の学習ができ、裁量トレーダーもEA開発が可能になる!
『EAつくーる』
『EAつくーる』 | fx-on.com

『EAつくーる』
『EAつくーる』 | fx-on.com

 上記ツール(EAつくーる『EAつくーる』 | fx-on.com)の詳細については「こちら『EAつくーる』 | fx-on.com」を参照してください。


MT4の使い方からプログラミングまで、わかりやすく解説