重心指標を基にしたEA作成の試み - MetaTrader 4でのシステムトレード

Mike 2016.07.01 18:21 17 0 0
添付ファイル

こんにちは、トレーダーの皆さん!今日は、重心指標に基づいてEA(エキスパートアドバイザー)を作成しようとしている私のアイデアについてお話ししたいと思います。

このアイデアは昔からありましたが、「保守的なデイトレードスキャルピング」戦略に基づいていて、MT4で適切な指標を見つけるのに苦労していました。

そこで見つけたのが、この重心指標 (Center of Gravity.mq4)です。現在、これをEAに組み込もうとしているのですが、EAが頑なにトレードを開いてくれません(デモでもテストでも)。なぜでしょうか?

このアイデアは、指標がトレンドに平行な5本のラインを生成し、極端なラインの交差点でトレードを開くことができるというものです(もちろん、トレーリングがあればなお良いです)。私の考えでは、LOW価格に基づく期間1の移動平均線(SMA)が指標の下のラインを下から上にクロスすることで、トレンドチャネルに戻ったサインとして買いのシグナルが出るというものです。逆に、SELLの場合は、HIGH価格に基づく移動平均線が上のラインを上から下にクロスすることでサインが出ます。このアイデアは無限に発展する可能性がありますが、今はこれに取り組む必要があります。

指標: 重心指標 (Center of Gravity.mq4)

エキスパートアドバイザー: C_S_intraday.mq4 / シンプルな形で、口座管理や時間足、トレーリングなどの機能はありません。


Bitmap

//+---------------------------------------------------------------------+
//|                              C_S_intraday.mq4                       |
//|                                                                     |
//+---------------------------------------------------------------------+
//
//
//
extern double    lots=0.1;
//extern int       StopLoss=30 ;
//extern int       TrailingStop=15;
//extern int       Slippage=2;

extern int BB = 125;
extern int MM = 2;
extern int II = 0;
extern double KK = 2.0;
extern int NN = 1102;

double  maH0,maH1,maL0,maL1;
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
maH0=iMA(NULL,0,1,0,MODE_LWMA,PRICE_HIGH,0); //HIGHに基づく移動平均
maH1=iMA(NULL,0,1,0,MODE_LWMA,PRICE_HIGH,1); //HIGHに基づく移動平均
maL0=iMA(NULL,0,1,0,MODE_LWMA,PRICE_LOW,0);  //LOWに基づく移動平均
maL1=iMA(NULL,0,1,0,MODE_LWMA,PRICE_LOW,1);  //LOWに基づく移動平均

   int      B= BB;         // 
   int      M= MM;         // 
   int      I= II;         // 
   double   K= KK;         // 
   int      N= NN;         // 
   
   double cgh = iCustom(NULL,0,"Center of Gravity",B,M,I,K,N,3,0);
   double cgl = iCustom(NULL,0,"Center of Gravity",B,M,I,K,N,4,0);
   

if (cgl<maL0)  //移動平均線(LOW)が指標の下のラインを下から上にクロスした場合
   {
   OrderSend(NULL,OP_BUY,lots,Ask,2,Ask-10*Point,Ask+20*Point,"create1",123,0,Lime);
   }
/*
if (cgh>maH0)
   {
   OrderSend(NULL,OP_SELL,lots,Bid,2,Bid+10*Point,Bid-20*Point,"create1",123,0,Red);
   }  
*/   
//----
   return(0);
  }
//+------------------------------------------------------------------+

リスト
コメント 0