*

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】2024年4月第4週スタート

FX トレードは 自動売買プログラムを入れ替えて、今月(2024年4月)から再出発をしました。

記事を読む

超シンプルな自動売買プログラム(11) 前週の平均値と逆張り(3) 改良型

以前の記事「超シンプルな自動売買プログラム(11) 前週の平均値と逆張り」で作ったプログラムを「

記事を読む

【FX】2024年4月第1,2,3週総括

FX トレード記録「【FX】2024年4月第1,2週総括」の続きです。第3週が終わりました。

記事を読む

【FX】Evening Scalper Pro(2)

最近開いた2つの口座である Axiory ナノ口座と easyMarkets VIP口座は最初から

記事を読む

超シンプルな自動売買プログラム(14) ハル移動平均線

久々に「超シンプルな自動売買プログラム」シリーズを再開しますか。 ハル移動平均線 HUL移動平均

記事を読む

FXトレード 2014/1/5

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

記事を読む

【FX】1年で14億円稼いだ人でも破産する

Youtube で「1年で14億円稼いだ人が破産」したことをネタにした動画を観ました。

記事を読む

[FX] VQ_MTF システムにフィボナッチ・トレーリングストップを導入

マルチタイムフレーム化した VQ システムである yasciiVQ_MTF01 にフィボナッチ・

記事を読む

[FX] 15分足スキャルピング自動運転プログラム

最近は FX関係のブログをいろいろ読んでいます。 「MT5・MT4を使ってFX」というサイトで

記事を読む

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

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

記事を読む

Message

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

【AI】ノイズレスリサーチ

ノイズレスリサーチという AI での検索方法があるというお話。

AI を助言者(メンター)にする

漠然と AI と話していると、一般的な表面的な話に陥りがちです。

室生春秋: 前田真三写真集

★★★☆☆ 出版社 ‏ : ‎ 講談社 発売日 ‏

浮世絵を知りたい。 完全保存版 / 白倉敬彦(監修)

★★★☆☆(初心者に最低限の知識をつけさせてくれる) 著者名

ネクストジェネレーションの 2026年7月の配当

本日夕方熊本で最大震度7の地震があり、その後イオンモールでガス爆発事故

→もっと見る

  • 2026年8月
     12
    3456789
    10111213141516
    17181920212223
    24252627282930
    31  
  • アクセスカウンター
PAGE TOP ↑