*

第8回:決済の記述 OrderClose

公開日: : FX自動売買開発 , , , ,

ここではポジションを決済するための記述を行います。

OrderClose

OrderSendで新規ポジションを持てたように
ポジションを決済することができます。

OrderCloseは

OrderClose(ticket,lots,price,slippage,color);

で記述します。

日本語にすると、

OrderClose(チケットナンバー、ロット、価格、スリッページ、チャート上の色)

という意味になります。

チケットナンバーとは、
オーダーごとの固有の識別番号のようなものです。

OrderSend関数が成功するとOrderSend関数はチケットナンバーを返します。

※○○を返す とはプログラミング用語でその値に変化することを指します。

int TicketNumber = OrderSend("USDJPY", OP_BUY, 0.1, Ask, 3, 0,  0, "EA", 1234, 0, Red);

上記のように記述すると
TicketNumberという変数に今回のオーダーのチケットナンバーが格納されます。

※変数とは、数学でいうxのように特定の文字列に数値などを代入できるもののことです。

OrderSendで受け取ったTicketNumberをOrderCloseに利用して記述します。

OrderClose(TicketNumber,0.1,Bid,3,Yellow);

これでポジションの決済を行います。

OrderSendとOrderClose、IF文と関数を使ったコード

これまでの内容を元に新規ポジションと決済をまとめた記述を行います。

「ポジション数が0で、かつ、6時か18時のときに」新規ポジションを取り、
「ポジション数が1以上で、かつ7時か19時のときに」決済するEAを考えてみます。

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
static int TicketNumber;
void OnTick()
  {
//---
   if( OrdersTotal() == 0 && ( Hour() == 6 || Hour() == 18 ) ){
      TicketNumber = OrderSend("USDJPY",OP_BUY,0.1,Ask,3,0,0,"EA",1234,0,Red);
   }
   
   if( OrdersTotal() > 0 && ( Hour() == 7 || Hour() == 19)){
      OrderClose(TicketNumber,0.1,Bid,3,Yellow);
   }
   
  }

これでポジション数が0で、かつ、6時か18時に新規ポジションを取り、
ポジション数が1以上で、かつ7時か19時に決済するというEAができあがります。

OnTick()の上部に
static int TicketNumber;
という記述を忘れずに行ってください。

これに関する説明は次回以降に行います。

ordersend_orderclose

上記のコードをコンパイルして実行すると上記のように、
短時間に大量にポジションを取るという処理が回避され、

少しEAらしいEAになります。

このコメントはWEBに公開されるので、問い合わせ等はメールでお願いします。

関連記事

MQLxPHP サーバを経由するコピートレードツールを作る6

前回までの内容でサーバを経由するコピートレードツールは (ある程度MQLとPHPがわかっていれば)

記事を読む

no image

【MT4EA配布企画】ハイリスクのEAも複数口座でポートフォリオを組めば… ~個別の11アカウントで~

EURUSD 2018/1/1~2018/12/31 H1 Spread:2 PF:1.52

記事を読む

第13回:コードに汎用性を持たせる~”USDJPY”よりSymbol()~

MT4で設定を変更ができるような記述をする これまでに様々なコードを扱いましたが、 これまでの書

記事を読む

【MT4MT5】チャート上にWEBサイトの情報を載せる その2

今回はWEBサイトから取得したデータのスクレイピングです。 スクレイピングとは、すごい長い文字列か

記事を読む

【MQL4】シンプルに稼働するコピートレードツールを作る。その⑩

今回はリバーストレードができるように改良します。 端的に言うと、コピー元と逆向きのポジションをコピ

記事を読む

 
  • ブログ管理人の横瀬兼元(ペンネーム)です。

    各トピックに対するコメントは各記事のコメント欄にお願いします。それ以外のご質問、ご相談などは
    infoあっとfxantenna.com
    まで
    私の偽者がいるらしいのでご注意ください。

PAGE TOP ↑