*

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】Tesla Power Trends Indicator というインジケータ

Tesla Power Trends Indicator というインジケータを 2年くらい前に知った

記事を読む

FXブレイクアウトシステムのテスト

ブレイクアウトシステムは今まで食わず嫌いでしたが、試作してみました。 ルールはシンプル。

記事を読む

楽天SCHD(正式名称:楽天・高配当株式・米国ファンド(四半期決算型))発進

本日、楽天証券の HP を見ると、通称「楽天SCHD」と呼ばれている 楽天・高配当株式・米国ファンド

記事を読む

ナウル共和国の悲劇

ナウル共和国とはニュージーランドの北、インドネシアの東の太平洋上にある島国です。 かつ

記事を読む

【FX】朝スキャ(2)

前回の記事「【FX】朝スキャ」の続きです。 早朝スキャルピング(朝スキャ)は、日本の朝6時ごろ

記事を読む

[FX]やはり THV v3 は裁量トレードシステム最強かも

今週の EURUSD、EURJPY は結構トレンディで、前回紹介した AI システムとともに

記事を読む

アメリカ株投資 2021-11-19

以前の記事「アメリカ株投資 2021-10-18」の続きです。 今週終わって純益がはじ

記事を読む

無料の自動売買プログラムの宝庫 AndreaForex

本日 AndreaForex というサイトから無料の自動売買プログラムを 236個、インジケーターを

記事を読む

【FX】プロップファームの Fintokei について

以前の記事「【FX】プロップファーム(Prop Firm)について(2)」の続きです。 日本で

記事を読む

意外な県民所得

この前北陸新幹線の話題を扱ったTV番組で知りましたが、富山県は一人当たりの県民所得が47都道府県

記事を読む

Message

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

HFM ドル口座開設

以前紹介した スプレッドが狭い業者である HFM ですが、リアル口座を

ウエスタンデジタルHDD Ultrastar 14TB

以前書いた記事「500GB HDD が安い」の中で紹介した 2.5イン

フランケーヌの犬

腐乱犬:「イオーン、イオーン」 子供:「あ、なにか遠吠えしてるね

【FX】AXI Select 4日目 エッジスコアがちょっとだけ上がる

プロップファームの一種である AXI Select のインキュベーショ

8分間の奇跡

ついこの前 歯科医に行って治療が終わったと思ったのに、また先週 右下の

→もっと見る

  • 2025年12月
    1234567
    891011121314
    15161718192021
    22232425262728
    293031  
  • アクセスカウンター
PAGE TOP ↑