超簡単 「Breakout1SL1.mq4」をRSI値幅決済EAへ書換え MT4EA作成編第23回
「Breakout1SL1.mq4」をRSI値幅決済EAに書き換え開始です。1回目のときに比べて変更点は少ないので手間はかからないと思います。
EA書換え
前回書いた4つの変更箇所を一挙に変更していきます。以下のように書き換えてみてください。変更する場合は、オリジナルEAの書換え防止のためコピーからはじめます。
コピーのやり方で混乱したら過去記事を参考にしてみてください。
前回のEA変更と同じ手順でやっていきます。
// エントリー関数
extern int HLPeriod = 20; // HLバンドの期間...1
変更後
// エントリー関数
//extern int HLPeriod = 20; // HLバンドの期間...1
// HLバンドの計算
double HH2 = iCustom(NULL, 0, "HLBand", HLPeriod, 1, 2);
double LL2 = iCustom(NULL, 0, "HLBand", HLPeriod, 2, 2);
変更後
// HLバンドの計算
//double HH2 = iCustom(NULL, 0, "HLBand", HLPeriod, 1, 2);
//double LL2 = iCustom(NULL, 0, "HLBand", HLPeriod, 2, 2);
// RSIの計算
double Rsi1 = iRSI(NULL,0,14,PRICE_CLOSE,1);//...2
double Rsi2 = iRSI(NULL,0,14,PRICE_CLOSE,2);//...2
int ret = 0;
// 買いシグナル
if(pos <= 0 && Close[2] <= HH2 && Close[1] > HH2) ret = 1;
// 売りシグナル
if(pos >= 0 && Close[2] >= LL2 && Close[1] < LL2) ret = -1;
変更後
int ret = 0;
// 買いシグナル
//if(pos <= 0 && Close[2] <= HH2 && Close[1] > HH2) ret = 1;
if(pos <= 0 && Rsi2 > 30 && Rsi1 < 30) ret = 1;//....3
// 売りシグナル
//if(pos >= 0 && Close[2] >= LL2 && Close[1] < LL2) ret = -1;
if(pos >= 0 && Rsi2 < 70 && Rsi1 >70) ret = -1;//....3
// マジックナンバー
#define MAGIC 20094071
変更後
// マジックナンバー
//#define MAGIC 20094071
#define MAGIC 20140609//....4
書き換え終えたら以下の手順でEAが無事に動くかどうか確認してみてください。
- コンパイルしてエラーなし
- バックテストして売買成績が表示されるのを確認
これを書き換えてコンパイルしてエラーが出なければまずは成功です。その後に、いつも使っている通貨ペアでバックテストをして売買ができているかどうかの確認をします。
バックテストまでしておくことで、そのプログラムが正常に稼動するかどうか大体わかります。ちなみに、コンパイル上エラーがでなくてもバックテストをしてみて売買結果がゼロになることがあります。これには3つくらいの理由が考えられます。
- もともと売買が滅多に発生しないEA
- バックテストの元になるデータがMT4に入っていない。
- EAプログラムで売買ができるプログラムになっていない。
1は売買がなくても問題はありません。2については該当通貨ペアのヒストリーデータをMT4にダウンロードすることでほぼ解決します。
問題は3です。
これ、私のような初学者は混乱する部分です。私はこう理解しています。道路に例えてみるとわかりやすいかもしれません。
「新しい道路を作り開通させた。ところが車が全然こない。調べてみると途中で通行止めをしたり信号異常などで車がこの道路に入ってこれないことがわかった。」
この例えは都会の人にはわからないかもしれませんね。私の育った町は国道が2本しか走っていないので1本止められると全く車が走ってこない地域が発生するような状況でした(汗)。
この辺は、EA作りで実際に経験すると思います。
例えば、RSIの売買シグナル計算がうまく出来ていなかったり、売買注文や決済注文が機能していなかったりすることがあります。
こういう状況になったときに、EAを直すことをデバックというのですが、EA内容をチェックしながらおかしな部分を見つけて修正していく作業をします。
このデバック作業に取り組むようになると、EA作成能力が格段に向上します。皆さんも、そのレベルまでいったら諦めずに頑張ってみてください。
今回のEA書換えでは問題ないとは思いますが、今後の課題として書かせていただきます。
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で儲からないことで目覚めた