移動平均線のクロスで売買するEAの作成 その10 | メタトレーダー4でプログラムを作ってみよう

メタトレーダー4でプログラムを作ってみよう

無料のトレードソフトであるメタトレーダー4のプログラムを作るコツをアップします。初心者がインジケーターとEAのプログラムを作成できるのを目指します。

それでは、残りの説明に入ります。

//ポジション計算
   int buypos=0;
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic01)
        {
         if(OrderType()==OP_BUY)  buypos++;
        }
     }



OrderSymbol() Symbol() はどちらも、通貨ペアを調べる関数です。

EURUSD や USDJPY などがわかります。

OrderSymbol() の方は、保有ポジションの通貨ペアを調べます。

Symbol() は、EAがセットされているチャートの通貨ペアを調べます。


OrderMagicNumber() は、保有ポジションのマジックナンバーを調べます。

この、if文で判断しているのは、通貨ペアとマジックナンバーを調べて、

EAがセットされているチャートで、そのEAが建てた玉かどうかを調べます。


OrderType() は、保有ポジションが買いか売りかを調べるのに使用します。

OP_BUY
 は、注文の種類が成り行き買いであることを表します。

そして、買いのポジションを保有していたら、buypos に1を加えます。


このポジション計算は、

保有ポジションを0から順番に調べる。

↓→もしポジションが存在しないなら、繰り返しの処理を抜ける。

保有ポジションの通貨ペアとマジックナンバーを調べる。


↓→通貨ペアとマジックナンバーが一致するポジションがあれば、1を加える。

保有ポジションの回数だけ繰り返し。


という流れです。

今回は買いポジションだけでしたが、売りポジションも必要な場合は同じように処理します。


保有ポジションの情報を調べるには、Order○○○ という関数になります。

Order が付いていたら、保有ポジション関連だなと覚えていてください。

では~~~