*

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

###

関連記事

年末FXトレーディング

下は 11/10 から今日までの USDJPN の 1時間足です。 12/8 まで長期の円安ト

記事を読む

外貨預金より外貨建てMMF

銀行で扱っている外貨預金ですが、利用している人はいるのでしょうか。 私はやったことがありません

記事を読む

S&P500 についての雑談

最近、史上最高を更新中の S&P500 についてのお話です。 S&P500 と

記事を読む

[FX]フィボナッチをレンジ境界に使う自動売買プログラム

「フィボナッチをレンジ境界に使う自動売買プログラム」の意味がわからない? フィボナッチ・リトレ

記事を読む

【FX】 Price Action Scalping という EA

またまた面白い自動売買ソフト(EA)を見つけました。Price Action Scalping とい

記事を読む

【米国株】上昇開始 今年中はもはや利上げなし?

昨日のアメリカの CPI 発表ではインフレのかなりの改善が見込めたということで、株高ドル安が進みまし

記事を読む

住宅ローン完済(2)

繰り上げ返済 前回のご報告「住宅ローン完済」で、繰り上げ返済をしなかったのか という質問をメールで

記事を読む

【FX】AXI Select 31日め

本日の AXI Select パネル(クライアントポータル)の状態は、 これで 5つの

記事を読む

【FX】2024年6月第1,2,3週総括 天国か地獄か

2024年6月の第3週の FXトレードが終わりました。 自分の備忘録のために始めたので、興味がなけ

記事を読む

SPHY(SPDR ポートフォリオ・ハイ・イールド債ETF)

SPDR ポートフォリオ・ハイ・イールド債ETF(略称 SPHY)という ETF があります。 楽

記事を読む

Message

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

2023-2-9サナエノミクス本格始動?

歴史的な自民党圧勝劇を受け、本日の日経平均は大幅上昇。 上昇幅は 一

2026-2-8衆議院選挙

高市総理の信任選挙の衆議院選挙ですが、まだ開票は済んでいないのに史上最

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

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

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

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

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

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

→もっと見る

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