*

ADXcrosses を EA に

公開日: : マネー

前々回の記事「未来を予測する(?)便利なインジケータ AdamPriceReflection」の最後にちょこっと紹介したインディケーターの ADXcrosses をもとに自動売買ソフトを作りました。

ADXDMI という指標を使い、+DI  と -DI の 2本のクロスで売り買いをするという、どんな教科書に載っているくらいのごく初歩的なロジックです。

ドテンになりますし、都合の悪いときにも売買してしまうので、Damiani フィルタ(効きが悪い!)と ADX フィルター(簡易版)をかませています。

USDJPY(ドル円) 4時間足の結果がいいです。

プロフィットファクター 1.41、勝率 36.49%。

取引回数が多いので、22ヶ月で資金は 4.29 倍になっています。

最大ドローダウンが破滅的に大きいですけど・・・

資産曲線を見ると、トレンド以外は全くだめで資金を浪費していますから、 トレンド以外には起動しないようにもっと強めのフィルタをかけるように改良していくつもりです。

プログラムソース

//
// yasciiADXcross01a.mq4
//                with Damiani
//

//マジックナンバーの定義
#define MAGIC  42511

//パラメーターの設定//
extern double Lots = 1.0;     //取引ロット数
extern int Slip = 10;         //許容スリッページ数
extern string Comments =  ""; //コメント

extern int ADXcrossesPeriod = 14;

extern double ILC = 730.0 ; 
// extern double TP = 110.0 ; 

//---- input parameters
extern int       Viscosity=13;
extern int       Sedimentation=50;
extern double    Threshold_level=1.3;
extern bool      lag_supressor=true;

//変数の設定//
int Ticket_L = 0; //買い注文の結果をキャッチする変数
int Ticket_S = 0; //売り注文の結果をキャッチする変数
int Exit_L = 0;   //買いポジションの決済注文の結果をキャッチする変数
int Exit_S = 0;   //売りポジションの決済注文の結果をキャッチする変数
int OS1 ;
int OS2 ;

double   OOPL;
double   OOPS;
double   LwT = 0.0;
double   HgT = 10000.0 ;

//damiani_filter用
double    lag_s_K=0.5;
double   s0 = 0; 
double   s1= 0;
double   s2 = 0;
double   s3 = 0;
double   vol=0;
double t=Threshold_level;

int damiani_f()
{

      double sa=iATR(NULL,0,Viscosity,1);
      double ia = iATR(NULL,0,Sedimentation,1) ;
      if(lag_supressor){
         if (ia == 0) vol = 1.0 ;
         else vol= sa/ia + lag_s_K*(s1-s3);   
      }else{
         if (ia == 0) vol = 1.0 ;
         else vol= sa/ia;   
      }

      double anti_thres=iStdDev(NULL,0,Viscosity,0,MODE_LWMA,PRICE_TYPICAL,1);

      double isd = iStdDev(NULL,0,Sedimentation,0,MODE_LWMA,PRICE_TYPICAL,1) ;
      if (isd == 0) anti_thres = 1.0 ;
      else anti_thres = anti_thres/isd ;

      t=t-anti_thres;

      s3 = s2; s2 = s1; s1= s0; 
      s0 = vol;

      if (vol>t){
      	return(1);
      }else{
      	return(0);
      }

}

int start()
  {

   if (Volume[0]>1 || IsTradeAllowed() == false) return(0) ;

     double plusdi2 = iADX(NULL, 0, ADXcrossesPeriod, PRICE_CLOSE, MODE_PLUSDI, 2);
     double plusdi1 = iADX(NULL, 0, ADXcrossesPeriod, PRICE_CLOSE, MODE_PLUSDI, 1);
     double minusdi2 = iADX(NULL, 0, ADXcrossesPeriod, PRICE_CLOSE, MODE_MINUSDI, 2);
     double minusdi1 = iADX(NULL, 0, ADXcrossesPeriod, PRICE_CLOSE, MODE_MINUSDI, 1);  

     double maindi1 = iADX(NULL, 0, ADXcrossesPeriod, PRICE_CLOSE, MODE_MAIN, 1); 

   OS1 = OrderSelect(Ticket_L, SELECT_BY_TICKET);  
   OOPL = OrderOpenPrice();   

   //買いポジションのエグジット
   if(    ((plusdi1 < minusdi1 && plusdi2 > minusdi2 ) || ( OOPL - ILC*Point >= Close[1] ) ) //|| ( OOPL+TP*Point <= Close[1] ))
       && ( Ticket_L != 0 && Ticket_L != -1 ))
    {     
      Exit_L = OrderClose(Ticket_L,Lots,Bid,Slip,Yellow);
      if( Exit_L ==1 ) {Ticket_L = 0;}
    }    

   OS2 = OrderSelect(Ticket_S, SELECT_BY_TICKET); 
   OOPS = OrderOpenPrice();

   //売りポジションのエグジット
   if(    ((plusdi1 > minusdi1 && plusdi2 < minusdi2 ) ||( OOPS + ILC*Point <= Close[1] ) ) //|| ( OrderOpenPrice()-TP*Point >= Close[1] ))
       && ( Ticket_S != 0 && Ticket_S != -1 ))
    {     
      Exit_S = OrderClose(Ticket_S,Lots,Ask,Slip,Red);
      if( Exit_S ==1 ) {Ticket_S = 0;} 
    }   

   //買いエントリー
   if(    (plusdi1 > minusdi1 && plusdi2 < minusdi2 ) && maindi1 > 18.0 && maindi1 < 50.0 && damiani_f() ==1  // && maindi1 > mainsig
       && ( Ticket_L == 0 || Ticket_L == -1 ) 
       && ( Ticket_S == 0 || Ticket_S == -1 ))
    {  
      Ticket_L = OrderSend(Symbol(),OP_BUY,Lots,Ask,Slip,0,0,Comments,MAGIC,0,Yellow);
    }

   //売りエントリー
   if(    (plusdi1 < minusdi1 && plusdi2 > minusdi2 ) && maindi1 > 18.0 && maindi1 < 50.0 && damiani_f() ==1  // && maindi1 > mainsig
       && ( Ticket_S == 0 || Ticket_S == -1 )
       && ( Ticket_L == 0 || Ticket_L == -1 ))
    {   
      Ticket_S = OrderSend(Symbol(),OP_SELL,Lots,Bid,Slip,0,0,Comments,MAGIC,0,Red);     
    } 

   return(0);
  }

関連記事

実戦デイトレーディング―株取引、革命バイブル / 串田 誠一

実戦デイトレーディング―株取引、革命バイブル (ホームマネジメントシリーズ)

記事を読む

FX 裁量トレード 現在の方法 (3)

以前の記事の「FX 裁量トレード 現在の方法(2)」の続きです。 上がかなり完成型に近

記事を読む

[FX]一目均衡表の雲の色

一目均衡表の雲についてですが、「この反転が相場の転換を示唆する」という考え方があります。 本当

記事を読む

[FX] 2015/5/26 ドル高のためパラメーター変更

先週からドル高となり、EU(EURUSD)、GU(GBPUSD)もそれまでの緩やかな上昇と違い、

記事を読む

[FX]yasciiHA04a 暴落対策変更

先週から実戦投入していた yasciiHA04a.ex4 ですが、今朝見ると 4233円の負けを発見

記事を読む

[FX] 早朝のスプレッド 10/23

本日 10/23 早朝のスプレッドの酷さを晒します。 OANDA 5:22:13 AM

記事を読む

FXで勝率を上げる方法はいくつも存在します

FX で勝率8割なんて無理だようという方もいらっしゃるかもしれませんが、すでにいくつかの方法が開

記事を読む

未来を予測する(?)便利なインジケータ AdamPriceReflection

ドル円15分足[/caption]   AdamPriceReflect

記事を読む

幸福の呪文

* 私の幸福の呪文は 「multiple streams of income(多数の収入の流

記事を読む

月収の10倍稼ぐ外資投資―横尾式トレンドフォローで着実に儲けよう / 横尾 寧子

月収の10倍稼ぐ外資投資―横尾式トレンドフォローで着実に儲けよう 横尾 寧子

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本人の給料はなぜこんなに安いのか / 坂口孝則

★★★☆☆(思ったより良い) 坂口さんは以前から何冊か読

米国株投資(2) ETF ってすごい

昨日の記事「米国株投資(1)」の続きです。 本日は米国ETF の

米国株投資(1)

先月から米国株投資信託&ETF を始めましたが、いい時代になりましたね

金持ちになる男、貧乏になる男 / スティーブ・シーボルド

★★★★☆ スティーブ・シーボルドのことは他の本で知りま

OM-MF4+WP-SPMF4 バスレフスピーカーのその後

今年のムックの付録のマークオーディオ製フルレンジユニット OM

→もっと見る

PAGE TOP ↑