当ページは、アフィリエイト広告を含みます。

パラメーターと変数化の効果 MT4EA作成編第10回

変数化ができるようになると、EA作りがさらに楽しくなります。やってみれば簡単なことなのですが、効果は大きいです。

変数変更

RSIEAの最後は、変数変更についてです。プログラムのパラメーター部分を以下のように変更してあります。

 

5、パラメーター

 

*変更前
//パラメーター
extern int Fast_Period = 20;
extern int Slow_Period = 40;

 

変更後
//パラメーター
//extern int Fast_Period = 20;
//extern int Slow_Period = 40;
extern int Rsi_Period = 14;//

 

実は、この変更だけではプログラムには何の影響もありません。変数「Rsi_Period」は、RSI期間を最適化するときに使うためのものなのですが、この変数が有効に機能するためには、もう一作業必要になります。

 

指標の計算部分を以下のように変更してください。

 

*変更前
//指標の計算
//double SlowHH = Close[iHighest(NULL,0,MODE_CLOSE,Slow_Period,2)];
//double SlowLL = Close[iLowest(NULL,0,MODE_CLOSE,Slow_Period,2)];
//double FastHH = Close[iHighest(NULL,0,MODE_CLOSE,Fast_Period,2)];
//double FastLL = Close[iLowest(NULL,0,MODE_CLOSE,Fast_Period,2)];
double Rsi1 = iRSI(NULL,0,14,PRICE_CLOSE,1);//
double Rsi2 = iRSI(NULL,0,14,PRICE_CLOSE,2);//

 

*変更後
//指標の計算
//double SlowHH = Close[iHighest(NULL,0,MODE_CLOSE,Slow_Period,2)];
//double SlowLL = Close[iLowest(NULL,0,MODE_CLOSE,Slow_Period,2)];
//double FastHH = Close[iHighest(NULL,0,MODE_CLOSE,Fast_Period,2)];
//double FastLL = Close[iLowest(NULL,0,MODE_CLOSE,Fast_Period,2)];
double Rsi1 = iRSI(NULL,0,Rsi_Period,PRICE_CLOSE,1);//
double Rsi2 = iRSI(NULL,0,Rsi_Period,PRICE_CLOSE,2);//

 

一見、どこが違うかわからないかもしれません。赤字の部分をちょこっと書き換えただけです。

 

iRSI(NULL,0,14,PRICE_CLOSE,1)

 

ここの部分の「14」を「Rsi_Period」に変更しています。

 

Rsi_Periodの初期値は14なので、この変更でもプログラムの動作には影響はありません。この辺は、最初は意味不明な部分かと思います。でも、これができるだけで自作EAの可能性が大きく拡がりますので、少し説明させてください。

変数化の効果

RSIの期間を単純に「14」としないで「Rsi_Period」に置き換えたりするのを「変数化」と呼んだりします。この変数化をしておくと、将来数値変更やプログラムを改良するときにとても便利です。

 

  • 変数化した部分を一箇所の変更だけでまとめて変更できる。
  • 数値変更の効果を試算しやすくなる。

そして、私が一番のメリットと感じるのはこれです。

 

「最適化と組み合わせることでその通貨ペアに有効な数値をみつけることができる。」

 

FXは、通貨ペアによって値動きやクセが大きく違います。これは、株式や商品相場などと大きく違う点です。

 

RSIにしても移動平均線にしても、そもそもは株式や商品相場などで有効に使えそうな基準で基本数値が設定されています。それ故、それをそのままFXで使うのは無理があるという気がしています。

 

例えば、RSIでも14ではなく9が有効だったりということがあります。どれくらいの数値が有効かを探すときには、この変数を最適化してみるという方法が使えます。

 

この辺からが、EA作りの本当に楽しいところです。思いがけない発見があることも多いので楽しみながらやっていきましょう。

 

次回、RSI数値の最適化をしてみましょう。

MT4EA作成編目次

EAを手軽につくるやり方をまとめました。

 

MT4 自動売買関連記事まとめページへ戻る

2014/04/30


記事がお気に召しましたら、共有・拡散お願いします。

このエントリーをはてなブックマークに追加   
TOPへ