NewNiceイメージ

ここでは移動平均とボリンジャーバンドによる上昇トレンド・下降トレンドの判定をして、「メタボリック社長のNewNice戦法」のEA【MetaboNewNice】に、エントリーフィルターを追加していきます。

今回完成EAが入っている【MetaboNewNiceTrend.zip】をダウンロード

カスタマイズ内容

トレンド判定ルール

・ルール1 100日、300日移動平均線とボリンジャー20日線が同じ方向のみエントリー。
・ルール2 20日線の角度により、エントリーするか見送りか決める。

ここで、 ルール2の「20日線の角度」というのは、表示中のチャートの縦幅によって変わってしまうので、20日線の増減で計るようにします。

パラメーター追加

20日線が一つ前のバーで何Point以上動いたらエントリー許可とするかの値を入力するパラメーターを追加します。
(pipsとpointの違いがない時代のEAです)

extern double MA20upPips   = 0.1;
extern double MA20downPips = 0.1;

start()関数内の処理

トレンド判定用の移動平均とボリンジャーバンドの値を取得します。

double ma1001 = iMA(NULL, 0, 100, 0, MODE_SMA, PRICE_CLOSE, 1);
double ma1002 = iMA(NULL, 0, 100, 0, MODE_SMA, PRICE_CLOSE, 2);
double ma3001 = iMA(NULL, 0, 300, 0, MODE_SMA, PRICE_CLOSE, 1);
double ma3002 = iMA(NULL, 0, 300, 0, MODE_SMA, PRICE_CLOSE, 2);
double ma201 = iCustom(NULL, 0, "Bollinger Bands - Fibonacci Ratios", 0, 1);
double ma202 = iCustom(NULL, 0, "Bollinger Bands - Fibonacci Ratios", 0, 2);
double ma20updown = (ma201 - ma202) / Point;

上から、100日線の1つ前と2つ前の値、300日線の1つ前と2つ前の値、ボリンジャーバンドの中心線の1つ前と2つ前の値、そして、ボリンジャーバンドの中心線の増減ポイントを取得しています。ここで、ma20updownの値がプラスなら増、マイナスなら減ということになります。

トレンド判定をエントリー条件に追加

シグナル発生条件に次のように、トレンド判定を追加します。

   //買い条件
   if(STC[2] < 5 && STC[1] > 5 && ma1002 < ma1001 && ma3002 < ma3001 && ma20updown > MA20upPips)
   //売り条件
   if(STC[2] > 95 && STC[1] < 95 && ma1002 > ma1001 && ma3002 > ma3001 && -1 * ma20updown > MA20downPips)

あとがき

今回筆者がバックテストした結果、有効なパラメータ、通貨や時間足などを見つけることができませんでした。もし、有効なものが見つかりましたら教えてくださいね^^;
では、今回はこの辺で。