*

[FX]タイムフィルター

公開日: : 最終更新日:2020/03/08 マネー

「時の旅人システム」はデータ不足でもう少し復帰に時間がかかりそうですので、別のシステムを改良しましょう。

「時の旅人システム」を開発中、いろんなシステムで使えるフィルタを思いつきました。

Heiken_Ashi_Real」というインディケーターを利用した EA 「yasciiHA04.ex4 」を以前紹介しましたが、夏時間導入後 EURUSD での成績が良好です。

EURUSD 1時間足 2015/3/9 – 2015/3/31 フィルタなし

EURUSD(ユーロドル)を取引するのは欧米人が9割以上と思われますので、彼らが目覚めて取引していると思われる、日本時間(夏時間)で午後4時から午前2時までにエントリ時間を制限してみると、重要でない取引がカットできるのではないでしょうか。

ということでそれ(タイムフィルタと呼びます)を組み込んでみました。

EURUSD 1時間足 2015/3/9 – 2015/3/31 タイムフィルタあり

取引回数は半分くらいに減ったのに勝率、プロフィットファクター、総損益がぐんとよくなりました。

資産曲線もなめらかになりましたね。

通貨ペアごとに時間帯を決める必要がありそうですが、それは常識で考えればわかりますよね。

関連記事

プログラムソース

//
// yasciiHA04a.mq4
//           Heiken_Ashi_Real(移動平均線クロス)を使用
//         通常平均足との組み合わせ 
//           with Time Filter

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

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

extern int Fast_period = 12 ;
extern double ILC = 20.0 ;

extern int in_time = 10; // 取引開始時間
extern int out_time = 22; // 取引停止時間

int       Tenkan_sen=9;
int       Kijun_sen=26;
double    Senkou_span_b=52;

//変数の設定//
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 = Low[iHighest(NULL, 0, MODE_HIGH, Fast_period, 1)];
   double FastLL1 = High[iLowest(NULL, 0, MODE_LOW, Fast_period, 1)];
   double margin = Ask - Bid ; 

   //買いポジションのエグジット
   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 HA_open1 = ( Open[2] + Close[2] ) / 2.0 ;
       double HA_close1 = ( Open[1] + Close[1] + High[1] + Low[1] ) / 4.0 ;
       double HA_open2 = ( Open[3] + Close[3] ) / 2.0 ;
       double HA_close2 = ( Open[2] + Close[2] + High[2] + Low[2] ) / 4.0 ;

       double HA_openMA1 = iCustom(NULL,0,"Downloads\\Heiken_Ashi_Real",2,1);
       double HA_openMA2 = iCustom(NULL,0,"Downloads\\Heiken_Ashi_Real",2,2);
       double HA_closeMA1 = iCustom(NULL,0,"Downloads\\Heiken_Ashi_Real",3,1);
       double HA_closeMA2 = iCustom(NULL,0,"Downloads\\Heiken_Ashi_Real",3,2);

       double cla1 = iIchimoku( NULL, 0, Tenkan_sen, Kijun_sen, Senkou_span_b, 3, Kijun_sen);
       double clb1 = iIchimoku( NULL, 0, Tenkan_sen, Kijun_sen, Senkou_span_b, 4, Kijun_sen);

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

   //買いポジションのエグジット
    OS1 = OrderSelect(Ticket_L, SELECT_BY_TICKET);  
    OOPL = OrderOpenPrice();
    if(    ((HA_openMA1 > HA_closeMA1 && HA_openMA2 > HA_closeMA2) || ( HA_open1 > HA_close1 && HA_open2 > HA_close2) ||( OOPL - lc*Point >= 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(    ((HA_openMA1 < HA_closeMA1 && HA_openMA2 < HA_closeMA2)||( HA_open1 < HA_close1 && HA_open2 < HA_close2)||( OOPS + lc*Point <= Close[1] ) ) 
          && ( Ticket_S != 0 && Ticket_S != -1 ))
    {     
      Exit_S = OrderClose(Ticket_S,Lots,Ask,Slip,Aqua);
      if( Exit_S ==1 ) {Ticket_S = 0;} 
    }   

   //買いエントリー
   if( HA_openMA1 < HA_closeMA1 && HA_openMA2 < HA_closeMA2 && HA_open1 < HA_close1
       && (Hour() >= in_time && Hour() <= out_time)
       && ((Close[1] > cla1 && Close[1] > clb1)||(Close[1] < cla1 && Close[1] < clb1))
       && ( 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( HA_openMA1 > HA_closeMA1 && HA_openMA2 > HA_closeMA2 && HA_open1 > HA_close1 
       && (Hour() >= in_time && Hour() <= out_time) 
       && ((Close[1] > cla1 && Close[1] > clb1)||(Close[1] < cla1 && Close[1] < clb1))
       && ( 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,Aqua);     
    } 
   return(0);
  }

###

関連記事

日本の貨幣コレクションというムック

「日本の貨幣コレクション」というムックが販売されています。 ディアゴスティーニではなく、Hac

記事を読む

FXトレーディングの真実 / 陳 満咲杜

FXトレーディングの真実 陳 満咲杜 扶桑社 2009-01-31 売り上

記事を読む

[FX] 曜日特性

外国為替(FX)の世界では アノマリーと呼ばれる いろんな経験則があります。 曜日特性もその一

記事を読む

[FX] 2015/4/14 予想通り逆トレンドがキター?

GBPUSD 1時間足ですが、あれから雲をちょっと下抜けして上昇し、上に一気に抜けました。

記事を読む

FX 現在稼働中のオリジナルシステム

現在 Windows VPS 上で稼働中の自作システムは3種類。 簡単にまとめてみます。

記事を読む

FX 再開します / 業者の選定

FX とは外国為替トレードのあれです。 じつは昔、忙しかったころに自動売買(パソコンのプログラ

記事を読む

FX最強チャート GMMAの真実 / 陳 満咲杜 (2)

FX最強チャート GMMAの真実 陳 満咲杜 扶桑社 2012-06-29

記事を読む

QQE を使った自動売買ソフト(2)

前回の記事「QQE を使った自動売買ソフト」でご紹介した、QQE という指標を使った EA(ex

記事を読む

2023/3/1 外国債券(既発債)続伸中

以前の記事「2023/2/22 外国債券が調子良い」で書きましたが、まだまだ米国の金利が上がりそうだ

記事を読む

月刊「FX攻略.com 2019年12月号」におまけの AI インジケーター(2)

前回紹介した「月刊「FX攻略.com 2019年12月号」におまけの AI インジケーター」ですが、

記事を読む

Message

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

杞憂

最近、古代中国由来の文言についての本を読んでいます。 それらの故

【FX】IS White という EA(2) デモの結果

以前紹介した EA です。 Exness でデモを開始し

【FX】TitanFX はデモ口座開設が簡単

TitanFX のブレード口座は最良というわけではありませんが、そこそ

HDMI VGA 変換アダプタ 1080p 対応

HDMI⇔VGA の変換アダプタです。 短いケーブルがついている

フリーレン第一期終わる

アニメ「葬送のフリーレン」第一期が今週で終わってしまいました。

→もっと見る

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