*

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);
  }

関連記事

アメリカ株投資 2021-5-25

しばらくアメリカ株がプチ暴落していましたね(いわゆるイエレンショック)。 本日はだいぶ戻ってい

記事を読む

農業としてのFX

以前の記事「FX はギャンブル」で、FX にはギャンブル要素があるという話をしましたが、FX には農

記事を読む

[FX] 東京時間終了間際の逆張りを利用する自動売買プログラム

昨日の本「東大院生が考えたスマートフォンFX / 田畑昇人」にも書いてありましたが、東京株式市場の開

記事を読む

【FX】Han という EA

これも蔵から引っ張り出してきた EA です。Best Scalper と同じく 2年くらい前に入手し

記事を読む

[FX] MACDマルチタイムフレーム 15分足用(4) 実戦投入

yasciiMACD_MTF15_3.ex4 ですが、デモ口座にて来週から動かして見ることにしま

記事を読む

【ヤフオク】1965 チャーチル卿追悼、1972 エリザベス二世女王陛下銀婚式、1977 御在位25年 コインセット

じつは上のようなものも本日落札。300円+送料でした。 一番右のコインはおそらく昨日ゲ

記事を読む

2億円のジュエリー

2日ほど前に女優の安藤サクラさんが 2億円のジュエリー(チョーカー、ブレスレットなど)をつけて TV

記事を読む

世界でいちばん!日本経済の実力 / 三橋貴明

世界でいちばん!日本経済の実力 三橋 貴明 海竜社 2011-08 売り上

記事を読む

FOOD & LIFE COMPANIES の株式を 100株取得しました

本日、渦中のスシローを傘下に持つ FOOD & LIFE COMPANIES(3563)を

記事を読む

[FX] EMA5-10-34_Signal というインジケーター

連休ですが、コロナのため外出自主規制を守っています。 しばらくお休みしていた FX ですが、暇

記事を読む

Message

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

価格.com でインターネットプロバイダ料金が激安に

価格.com で「プロバイダ」の比較もできることを教えてくれた動画がこ

マルタイ ご当地 棒ラーメン 北海道旭川醤油

マルタイ食品の「ご当地シリーズ」棒ラーメンの一つです。2人前。

2026/2/5 株式市場そろそろ調整?

現在アメリカの大手企業の業績発表が続いており、個別株では悲喜交

【FX】平均足とプライスアクションチャンネルを使ったEA

5分足で動作する EA が欲しいなと思う今日このごろ。 大抵のインジ

CEPI(REX クリプト・エクイティ・プレミアム・インカムETF)について

CEPI とは REX社の運用している ETFの「クリプト・エクイティ

→もっと見る

  • 2026年2月
     1
    2345678
    9101112131415
    16171819202122
    232425262728  
  • アクセスカウンター
PAGE TOP ↑