*

ブレイクアウトシステムと BBW フィルタ

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

自作ブレイクアウトシステム(yasciiBreakout05)に BBW フィルタを組み込んでみました。

ドル円 4時間足 2014/1/1-2015/1/1

1つの負けが減って、1つ勝ちが増えただけのようです。

ちなみに前作はこちら。

まあ、ブレイクアウトするときは当然 BBW の値は増加しているわけで、やらずもがな(意味がなかった)というオチかなとも思っていましたが、1つだけでも改善したのはもうけものです。

プログラムソース

 

//
// yasciiBreakout06.mq4
//
//    with BBW filter

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

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

extern int Fast_period = 14 ;
extern int Slow_period = 40 ;
extern int Range_period = 21 ;
extern double margin = 0.0 ;
extern double Range_threshold = 550.0 ;

extern int       BB_Period=20;
double    Deviation=1.0;

extern double ILC = 160.0 ;
// extern double TP = 1100 ;

//変数の設定//
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 FastHH2 = Close[iHighest(NULL, 0, MODE_CLOSE, Fast_period, 2)];
   double FastLL2 = Close[iLowest(NULL, 0, MODE_CLOSE, Fast_period, 2)];
   double SlowHH2 = Close[iHighest(NULL, 0, MODE_CLOSE, Slow_period, 2)];
   double SlowLL2 = Close[iLowest(NULL, 0, MODE_CLOSE, Slow_period, 2)];

   double value_range = High[iHighest(NULL, 0, MODE_HIGH, Range_period, 2)]-Low[iHighest(NULL, 0, MODE_LOW, Range_period, 2)];

   double bbw1 = iBands( NULL, 0, BB_Period, Deviation, 0, PRICE_CLOSE, 1, 1) -  iBands( NULL, 0, BB_Period, Deviation, 0, PRICE_CLOSE, 0, 1);
   double bbw2 = iBands( NULL, 0, BB_Period, Deviation, 0, PRICE_CLOSE, 1, 2) -  iBands( NULL, 0, BB_Period, Deviation, 0, PRICE_CLOSE, 0, 2);

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

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

   //売りポジションのエグジット
   OS2 = OrderSelect(Ticket_S, SELECT_BY_TICKET); 
   OOPS = OrderOpenPrice();
   if(    ((Close[2] <=FastHH2+margin && Close[1] > FastHH2+margin) ||( OOPS + lc*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(    Close[2] <= SlowHH2+margin && Close[1] > SlowHH2+margin && value_range < Range_threshold*Point && bbw1 > bbw2
       && ( 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,Blue);
    }

   //売りエントリー
   if(    Close[2] >= SlowLL2-margin && Close[1] < SlowLL2-margin  && value_range < Range_threshold*Point && bbw1 > bbw2
       && ( 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);
  }

###

関連記事

Trend Intensity Index を使った EA(2) Damiani filter版

以前の記事で紹介した Trend Intensity Index(TII) という指標で作った

記事を読む

[FX]前週の平均値と順張り&逆張り EA化(7) サマータイム

以前の記事「前週の平均値と順張り&逆張り EA化(4) GBPJPY版のみ始動 」で、ぼちぼちリ

記事を読む

【FX】MetaTrader4 build 1470 の不具合

MetaTrader4 build 1470 の不具合については以前も書きましたが、ウェブ検索をして

記事を読む

みんなで大破さん

「みんなで大家さん」というあやしいスキームが問題になっています。 不動産開発に出資して利益を分配す

記事を読む

超シンプルな自動売買プログラム(11) 前週の平均値と逆張り(2) 曜日属性

以前の記事「超シンプルな自動売買プログラム(11) 前週の平均値と逆張り」ですが、月曜日に買って

記事を読む

【FX】Hamster Scalper 1.5 という EA

今日は Hamster Scalper 1.5 という自動売買ソフト(EA)のお話。 だいぶ前

記事を読む

[FX] Rose Pound という自動売買ソフト

昨日の記事「 2021年6月第3週の成績」で紹介した市販の自動売買プログラムのうち、ポンド円を扱った

記事を読む

FX 裁量トレード 現在の方法 (3)

現在の裁量トレード画面がこちら(↑ クリックすれば拡大)。 前回と少し異なり、現在は

記事を読む

[FX] QQE の問題点

QQE は RSI のみから作られるオシレーター 前回の記事「PLATINUM TURBO FX

記事を読む

[FX] FX マイニング 2022/5/16 – 2022/8/22

最近 FX より株にはまっていて、FX のほうは自動売買プログラムを走らせたまま、ほったらかし状態と

記事を読む

Message

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

浮世絵を知りたい。 完全保存版 / 白倉敬彦(監修)

★★★☆☆(初心者に最低限の知識をつけさせてくれる) 著者名

ネクストジェネレーションの 2026年7月の配当

本日夕方熊本で最大震度7の地震があり、その後イオンモールでガス爆発事故

救急病院への遠隔画像診断依頼

医療施設で撮られた画像を、救急病院へ遠隔画像診断依頼すれば保険点数がも

万里の長城

万里の長城について、いろんなところで見聞しますが、いっこうにわかった気

高橋克彦の浮世絵ワンダーランド

★★★☆☆ 2000年10月に出版された高橋克彦の浮世絵本。

→もっと見る

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