パラメーターと変数化の効果 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を手軽につくるやり方をまとめました。
- 第1回MT4EA作成編 RSIEAの簡単な作り方
- 第2回手順その2 EAの売買ロジックを考える
- 第3回手順その3:EA加工前の準備 EAコピーの仕方
- 第4回基本EAの変更箇所確認
- 第5回30分でできるRSI MT4EA作成編
- 第6回MT4組み込みテクニカル指標関数の使い方
- 第7回MT4でRSIEAを作る 売買シグナル部分
- 第8回決済注文プログラムはたった1行
- 第9回マジックナンバーとRSIEA検証行
- 第10回パラメーターと変数化の効果
- 第11回RSI設定使い方 3つのパターン
- 第12回RSIエグジット戦略とは
- 第13回RSIスキャルピングにも使えるこの応用形
- 第14回RSI20 RSI80の検証
- 第15回RSIの使い方 3つのポイント
- 第16回過剰最適化(カーブフィッティング)の話
- 第17回最適化はカミソリ 大怪我しないためのポイント
- 第18回RSIEA無料配布と留意点
- 第19回決済を値幅指定
- 第20回ブレイクアウトMT4無料EA検証
- 第21回EA作成早期習得のための2つのポイント
- 第22回プログラムを短くする関数化
- 第23回「Breakout1SL1.mq4」をRSI値幅決済EAへ書換え
- 第24回コメントアウト MT4でも大切な理由
- 第25回EA解説後半 EA作成上達のコツ
- 第26回RSI値幅決済EA 短期売買向
- 第27回改造EAの面白いところ
- 第28回Breakout1TS1.mq4 1粒で三度おいしい無料EA
- 第29回大量売買防止方法
- 第30回MT4運用失敗の必然性に気づく
- 第31回最適化して最高成績を選ぶ愚
- 第32回MT4 PF(プロフィットファクター)
- 第33回MT4バックテスト 私の使い方
- 第34回MT4ファンのMT4口座比較方法
- 第35回裁量トレードの方が優秀に見える理由
- 第36回MT4最初の壁「夢の過剰最適化」
- 第37回MT4で儲からないことで目覚めた