バイタル・バーン EA の作成 その3 | メタトレーダー4でプログラムを作ってみよう

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

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

それではプログラムしていきます。

とりあえず、先に買いだけ作成します。


初期宣言の部分に以下を追加します。

int entrybar;
double entrylow;





そして、start部分に以下を追加します。

//ポジション計算
   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++;
        }
     }

//指標計算
   double macd1=iMACD(NULL,0,FastEMA,SlowEMA,MACDSMA,PRICE_CLOSE,MODE_MAIN,1);
   double macd2=iMACD(NULL,0,FastEMA,SlowEMA,MACDSMA,PRICE_CLOSE,MODE_MAIN,2);

   if(entrybar==Bars) entrylow=Low[0];
  
//手仕舞い判断
   if(entrybar!=Bars && buypos!=0
      && (entrylow>Close[1] || (Close[1]<Close[2] && macd1<macd2)))
   {
      for(i=0;i<OrdersTotal();i++)
      {
         if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
         if(OrderMagicNumber()!=magic01 || OrderSymbol()!=Symbol()) continue;
         if(OrderType()==OP_BUY)
         {
            OrderClose(OrderTicket(),OrderLots(),Bid,3,White);
         }
      }
   }

//仕掛判断
   if(entrybar!=Bars && buypos==0 && Close[1]>Close[2] && macd1>macd2)
   {
      OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,"",magic01,0,Blue);
      entrybar=Bars;
   }



次回から解説していきます。