*

Trend Intensity Index を使った EA

公開日: : 最終更新日:2015/02/24 マネー

以前の記事で紹介した Trend Intensity Index(TII) という指標で作った EA ですが、実際にサーバー上で運用すると致命的バグを発見。

修正したコードを載せます。

バックテスト結果(2014/1/1-2015/1/4)USDJPY 1時間足です。

プロフィットファクター 1.38、勝率 37.50%、最大ドローダウン 26.90% と散々な結果でした。

レンジ相場を除くとまずまずかもしれませんが。

関連記事

プログラソース(TII_RLH.ex4 が必要)

//
//    yasciiTII02
//

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

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

extern int Major_Period=18;
extern int Minor_Period=12;
int Major_MaMode=1; //0=sma, 1=ema, 2=smma, 3=lwma, 4=lsma
extern int Major_PriceMode=0;//0=close, 1=open, 2=high, 3=low, 4=median(high+low)/2, 5=typical(high+low+close)/3, 6=weighted(high+low+close+close)/4
color LevelColor=Silver;
extern int BuyLevel=37;
int MidLevel=50;
extern int SellLevel=65;
extern int R1Level=3;
extern int R2Level=97;

extern int Fast_period = 14 ;
extern double margin = 0.0 ;

extern double ILC = 60.0 ;
// extern double TP = 110 ;

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

int start(){

    //暴落対策(始め)

   double FastHH1 = Close[iHighest(NULL, 0, MODE_CLOSE, Fast_period, 1)];
   double FastLL1 = Close[iLowest(NULL, 0, MODE_CLOSE, Fast_period, 1)];

   OS1 = OrderSelect(Ticket_L, SELECT_BY_TICKET);  

   //買いポジションのエグジット
   if( Bid < FastLL1-margin 
       && ( Ticket_L != 0 && Ticket_L != -1 ))
    {     
      Exit_L = OrderClose(Ticket_L,Lots,Bid,Slip,Red);
      if( Exit_L ==1 ) {Ticket_L = 0;}
    }    

   OS2 = OrderSelect(Ticket_S, SELECT_BY_TICKET); 

   //売りポジションのエグジット
   if( Ask> FastHH1+margin
       && ( Ticket_S != 0 && Ticket_S != -1 ))
    {     
      Exit_S = OrderClose(Ticket_S,Lots,Ask,Slip,Blue);
      if( Exit_S ==1 ) {Ticket_S = 0;} 
    }   

   //暴落対策(終わり)

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

       double tii1 = iCustom(NULL, 0,"TII_RLH", Major_Period, Major_MaMode, Major_PriceMode, Minor_Period, LevelColor , BuyLevel, MidLevel , SellLevel, 0 , 1);
       double tii2 = iCustom(NULL, 0,"TII_RLH", Major_Period, Major_MaMode, Major_PriceMode, Minor_Period, LevelColor , BuyLevel, MidLevel , SellLevel, 0 , 2);
       double tii3 = iCustom(NULL, 0,"TII_RLH", Major_Period, Major_MaMode, Major_PriceMode, Minor_Period, LevelColor , BuyLevel, MidLevel , SellLevel, 0 , 3);       
       double tii4 = iCustom(NULL, 0,"TII_RLH", Major_Period, Major_MaMode, Major_PriceMode, Minor_Period, LevelColor , BuyLevel, MidLevel , SellLevel, 0 , 4);   
       double tiiSM1 = (tii1+tii2+tii3) / 3.0 ;
       double tiiSM2 = (tii4+tii2+tii3) / 3.0 ;

   double lc = ILC;
   if(( Digits ==3 ) ||(Digits ==5)) lc = lc*10.0 ;

   //買いポジションのエグジット
    OS1 = OrderSelect(Ticket_L, SELECT_BY_TICKET);  
    OOPL = OrderOpenPrice();
    if(    ((tii1 < R2Level && tii2 > R2Level) || (tii1 < tiiSM1 && tii2 > tiiSM2 && tii1 > BuyLevel && tii1 < R2Level) || ( OOPL - lc*Point >= Close[1] ) ) //|| ( OOPL+TP <= Close[1] ))
            && ( Ticket_L != 0 && Ticket_L != -1 ))
    {     
      Exit_L = OrderClose(Ticket_L,Lots,Bid,Slip,Red);
      if( Exit_L ==1 ) {Ticket_L = 0;}
    }    

   //売りポジションのエグジット
   OS2 = OrderSelect(Ticket_S, SELECT_BY_TICKET); 
   OOPS = OrderOpenPrice();
   if(    ((tii1 > R1Level && tii2 < R1Level )|| (tii1 > tiiSM1 && tii2 < tiiSM2 && tii1 > R1Level && tii1 < SellLevel)||( OOPS + lc*Point <= Close[1] ) ) //|| ( OrderOpenPrice()-TP >= Close[1] ))
          && ( Ticket_S != 0 && Ticket_S != -1 ))
    {     
      Exit_S = OrderClose(Ticket_S,Lots,Ask,Slip,Blue);
      if( Exit_S ==1 ) {Ticket_S = 0;} 
    }   

   //買いエントリー
   if( ((tii1 > BuyLevel && tii2 < BuyLevel) || (tii1 > tiiSM1 && tii2 < tiiSM2 && tii1 > BuyLevel && tii1 < R2Level) )
       && ( 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,Red);
    }

   //売りエントリー
   if(( (tii1 < SellLevel && tii2 > SellLevel) || (tii1 < tiiSM1 && tii2 > tiiSM2 && tii1 > R1Level && tii1 < SellLevel))
       && ( 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,Blue);     
    } 

   return(0);

  }
###

関連記事

印税生活

昔、医学書の一部を分担執筆させていただいたことがあり、そのとき印税というものをいただきました。

記事を読む

[FX]前週の平均値と順張り&逆張り EA化

以前の記事「超シンプルな自動売買プログラム(13) 前週の平均値と順張り 時間特性」での結果を踏まえ

記事を読む

iFreeNEXT NASDAQ次世代50 始めました

本日、「iFreeNEXT NASDAQ次世代50」というファンドを 20000円分買ってみました。

記事を読む

アメリカ株投資 2021-9/2

「アメリカ株投資 2021-8-28」の続きです。 純益が 191.1万円になりました

記事を読む

【FX】メタトレーダー(MT4)の武装化

インストールしたばかりのチャートソフト(売買機能付き)のメタトレーダー(MT4)はまだ素手の状態なの

記事を読む

株でソンする原因

下は以前の記事「祝!日経平均 33000円突破」で示したチャートで、200年間の各資産の偏移を見たも

記事を読む

【FX】AXI 開始

Axi(アクシ)という海外FX業者に口座を開きました。 キャッシュバックを狙って TariTali

記事を読む

DAISO 直管LEDランプ 昼白色 20型 8W 1000lm

ダイソーで昼白色の直管LEDランプが 500円で売られていたので試しに1本買ってみました。

記事を読む

【FX】XM 極口座 発進

以前の記事「XM で極口座を開いてみる」で書いたとおり、有名(悪名高い?)な XM でスプレッドの最

記事を読む

[FX] Tokyo Box(ロンドン・コーリング) の新作プログラム (6) おまけプログラム

以前の記事「 Tokyo Box(ロンドン・コーリング) の新作プログラム (5) 2週間めの実動結

記事を読む

Message

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

32インチIPS液晶モニタ 32GS75Q-B 注文しました

型番は 32GS75Q-B。 LGエレクトロニクス製のモニタ

ZorinOS18 インストール

やっと、Zorin18 core(無料版)のダウンロードが終了し、本日

ZorinOS18

Zorin OS という linux ディストリビューションは大好きで

五木食品 トマトラーメン

【メール便 5食 送料無料】濃

【FX】久々に作ってみたトレンドフォローの EA

本日少しヒマだったので、以前から考えていた Waddah Attar

→もっと見る

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