2016年1月3日日曜日

EA MA Averaging Heging  MACD⇒MAへ

MACDの平均化システムをそのまま平均に変えてみました。
エントリーはゴールデンクロス、デッドクロス(短期平均と長期平均の突き抜け)です。
期間は設定できますのでいろいろ試してみてください。
SMA単純平均でしていますがEMAなども可能です。MModeを変えてみてください。
結果はMACDを超えました。
10万→26万へ!!最適化すればもう少し伸びます。
平均は期間の設定が難しいですね。
短期、長期の期間差を極端に縮めるとピンポイントで損益が上がります。
また長期、短期の期間の逆転でも数字が出るところがあります。


#property copyright "Copyright 201/1/3,TACA"
#property link      "http://mt4kyoto.blogspot.jp/"
datetime TimeOld;
int Ticket;
extern int Profit=10;
extern int FastP=3;
extern int SlowP=14;
extern int MMode=0;
double PrSub;
double PosAve;
int Mode=0;
extern double Lots=0.01;
int start(){if(Time[0]!=TimeOld){TimeOld=Time[0];
if(OrdersTotal()==0){Mode=0;}
if(Mode>=0)
{if(iMA(NULL,1,FastP,0,MMode,0,2)<=iMA(NULL,1,SlowP,0,MMode,0,2))
{if(iMA(NULL,1,FastP,0,MMode,0,1)>iMA(NULL,1,SlowP,0,MMode,0,1))
{int b=OrderSend(NULL,0,Lots,Ask,3,0,Bid+Profit*Point,"Long",1231,0,Red);Mode=1;}}}
if(Mode<=0)
{if(iMA(NULL,1,FastP,0,MMode,0,2)>=iMA(NULL,1,SlowP,0,MMode,0,2))
{if(iMA(NULL,1,FastP,0,MMode,0,1)<iMA(NULL,1,SlowP,0,MMode,0,1))
{int c=OrderSend(NULL,1,Lots,Bid,3,0,Bid-Profit*Point,"Short",1231,0,Blue);Mode=-1;}}}   
Averaging();   
}return(0);}
int Averaging()
{ double LastPrice=0;double PosAll=0;double PosNum=0;
  for(int i=0;i<OrdersTotal();i++)
  {int d=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
    LastPrice=OrderOpenPrice();
    PosAll+=LastPrice*OrderLots();
    PosNum+=OrderLots();
  }
  if(PosNum==0){PosAve=0;}
  else{ PosAve=PosAll/PosNum;}  
  for(i=0;i<OrdersTotal();i++)
  { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==True)
    { Ticket=OrderTicket();
      if(OrderType()==0)
      {PrSub=PosAve+Profit*Point;}
      else
      {PrSub=PosAve-Profit*Point;}
    int e=OrderModify(Ticket,OrderOpenPrice(),0,PrSub,0,CLR_NONE);
    }
  }
return(0);
}

0 件のコメント:

コメントを投稿