*

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トレード 2014/1/5

うちのマックトリプルバーガーと名づけた EA(自動売買プログラム)のトレードですが、早速ビビ

記事を読む

投資信託日記 2013/8/1

* 昨夜は「HSBCインドオープン」、「UTIインドインフラ」、「ブラックロック」が 1% 以

記事を読む

[FX] 12月に入って相場急変

11/8 から先週(11/30)まで続いたドル円上昇相場(上図はドル円 15分足 )が今週か

記事を読む

FX トレード 2014/11/20

本日のトレードのご報告。 本日はデイトレの心づもりです。 ヒロセ通商の15分足のデータがおか

記事を読む

【FX】Fintokei チャレンジ 14日め

以前の記事「【FX】Fintokei チャレンジ 7日め」の続きです。 現在わたしはプロップフ

記事を読む

今どきのソーラーシステム

本日、ラジオを聴いていたら辛坊治郎がこんなことを言っていました。 最近は200万円くらいで

記事を読む

日本は世界1位の政府資産大国 / 髙橋洋一

日本は世界1位の政府資産大国 (講談社+α新書) 高橋 洋一 講談社 2013-

記事を読む

【かんたん図解】しっかり儲けるFX入門 / 今井 雅人 酒匂 隆雄

【かんたん図解】しっかり儲けるFX入門 今井 雅人/酒匂 隆雄 日本実業出版

記事を読む

[FX] 驚異のプログラム?(2)

前回の記事「 驚異のプログラム?」の続きです。 ロジックに問題のある例のプログラムをちょこっと

記事を読む

【ヤフオク】金貨 新五圓金貨 大正2年 菊の御紋 大日本

ヤフオクで落札した金貨のレプリカです。 ヤフオクの販売ページには直径 17mm

記事を読む

Message

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

マルタイ宮崎辛麺風ラーメン

マルタイ ご当地 棒ラーメン

BMAX ミニPC N150+DDR4 16GB+512GB SSD+Windows 11 Pro

タイムセールで 19800円(送料込み)と安かったのでポチっと

2025-9-15 またまた万博へ

朝から万博に行きました。 栃木に住んでいる義兄(妻の兄)がうちに

2025-9-14 びわ湖バレイ

本日は、遠方から義兄が来てくれていたので、孫たちも連れてびわ湖バレイに

【FX】珍しい現象

デモ口座でフォワードテストをしている EA がいくつかありますが、その

→もっと見る

  • アクセスカウンター
PAGE TOP ↑