*

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詐欺について(2) 詐欺とは言えないが、使う必要もない

以前の記事「【FX】EA詐欺について」の続きです。 EA詐欺という言葉がよく使われています。E

記事を読む

[FX] ハーフGMMA チックな順張りプログラム

本日あるブログの記事を読んでいて、4本(GMMA の半分バージョン)を使ったトレンドフォロワーのシス

記事を読む

MetaTrader4 自前インディケーター作成 /準備編

MetaTrader4 は自分でプログラムすれば、インディケーターや EA を作ることができます

記事を読む

7300円の魔力

本日銀行へ行ったときにふと思いつきました・・・ 7300円のお金があると、5%(単利)で回る資

記事を読む

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

以前の記事「【FX】2024年5月第1,2,3週総括」の続きです。 2024年5月第4週のトレ

記事を読む

一戸建てがいいかマンションがいいか (3)

「一戸建てがいいかマンションがいいか」という問題ですが、私は 防犯面や防災面ではマンションがはる

記事を読む

最大ドローダウンについて

おまえのつくる EA は「最大ドローダウンがどれも 10%超えていて使えない」とか思っておられる

記事を読む

【FX】Fintokei の禁止事項

FX のプロップファームである Fintokei にはトレードについての禁止事項が存在します。

記事を読む

【FX】4本のEMA で売買する EA

Youtube を見てみると、4本のEMA で売買するトレード法が載っていたので、EA を作ってみま

記事を読む

Message

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

Google Workspace はいかが?

Google Workspace というサービスは名前だけ知っていたの

Ryzen5 ミニPC 購入

また ミニPCをアマゾンで注文。 「インテルは逝ってる」ようなの

「pCloud」というクラウドストレージサービス

pCloud というクラウドストレージサービスが Youtube で紹

イラン・イスラエル戦争

イスラエルがイランを攻撃してから数日しか経っていませんが、イランは戦闘

SUV は嫌い

先日、愛車(2017年式)の点検に行ってきました。 半日かかるの

→もっと見る

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