2016年2月3日水曜日

EA Manneken Pis 少し構想と変わりました。

昨日はブリュッセルからアントワープでフランダースの犬の教会を見学、ロッテルダムへ来ました。
宮藤勘九郎もロッテルダムにいるようです。

時差ボケでウトウトしながらもICの中で、EA Manneken Pisを検討していました。
小便小僧をみて長期と短期のボリンジャーバンドの二重バンドの違いによるエントリーをひらめいたのです。長期100の1σは安定しているため短期20の2σに比べてトレンドがわかりやすく、短期のバンドが長期を超えるときには大きな変動のシグナルになると考えたのですが...

構想はよかったのですが結果は惨敗 まったく無意味でした。
構想自体はよかったのですがだましが極端に多くなってしまいました。
構想はよかったんですがね...

さてその代わりにバンド4σボンバーです。
3σに収まるのは99.73%ですが4σは99.99% FourNineです。

ロジックは4σを超えている間はずっと反対にベットします。
一分足でも取引総数はわずか83 週一、二回のペースですね。
いつもの期間でやったのですが、売り6買い77
2015年はレンジ相場にみえてそうでもなっかったという事でしょうか。
LONGのみで作ったEAがうまくいくはずです。

ソースコードも載せておきます活用ください。
マジックナンバーは2泊のホテル代です。




#property copyright "Copyright 2016/2/2,TACA@Brussel"
#property link      "http://mt4kyoto.blogspot.jp/"
#define MAGIC 197 //EUR
datetime TimeOld;
extern int Period=20;
extern double DevL=3;
extern double DevS=3;
extern double Lots=0.01;
extern double Profit=970;
extern int Spread=5;
string Comments="Manneken";
double PosAve;
int Slip=3;
int d;
int i;
bool Asi;
int start(){
if(!Asi){
if(OrdersTotal()==0)
   {
   if(iBands(NULL,0,Period,DevL,0,0,1,0)<=Close[0])
      {EntryShort();}
   else
      if(iBands(NULL,0,Period,DevS,0,0,2,0)>=Close[0])
         {EntryLong(); }
   }
else
   {
   d=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
   if (OrderType()==0)
      {if(iBands(NULL,0,Period,DevL,0,0,1,0)<=Close[0]){EntryLong(); }}
   else  
      {if(iBands(NULL,0,Period,DevS,0,0,2,0)>=Close[0]){EntryShort();}}
   }
   }
if(Time[0]!=TimeOld){TimeOld=Time[0];Asi=0;}
return(0);}
void EntryLong()
{if (MarketInfo(Symbol(),MODE_SPREAD) <= Spread)
{d = OrderSend(Symbol(),OP_BUY,Lots,Ask,5,0,0,Comments,MAGIC,0,Red);}
Asi=1;Averaging();
}
void EntryShort()
{if (MarketInfo(Symbol(),MODE_SPREAD) <= Spread)
{d = OrderSend(Symbol(),OP_SELL,Lots,Bid,5,0,0,Comments,MAGIC,0,Blue);}
Asi=1;Averaging();
}
void Averaging()
{double PosAll=0;double PosNum=0;double PrSub;
  for(i=0;i<OrdersTotal();i++)
  {d=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
    PosAll+=OrderOpenPrice()*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)
    { if(OrderType()==0)
      {PrSub=PosAve+Profit*Point;}
      else
      {PrSub=PosAve-Profit*Point;}
    int e=OrderModify(OrderTicket(),OrderOpenPrice(),0,PrSub,0,CLR_NONE);
    }
  }
}






0 件のコメント:

コメントを投稿