30分でできるRSI MT4EA作成編

30分でできるRSI MT4EA作成編 第5回

前回、EAの変更箇所を確認しました。今回は実際に書き換えていきましょう。詳細解説は次回行いますので、まずは書き換えてコンパイルしておきましょう。このやり方になれてしまえば所要時間は30分もかかりません。

変更箇所を書換え

前回記事基本EAの変更箇所確認で指摘した事項1〜5をそれぞれ以下のように書き換えてみて下さい。

 

指標の計算

 

*元の文章

//指標の計算
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 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);//RSI
double Rsi2 = iRSI(NULL,0,14,PRICE_CLOSE,2);//RSI

 

買いシグナル 売りシグナル

79行目と86行目のif〜から始まる買いシグナルと売りシグナルを出す部分です。

 

*変更前

//買いシグナル
if(pos <= 0 && Close[2] <= SlowHH && Close[1] > SlowHH)

 

//売りシグナル
if(pos >= 0 && Close[2] >= SlowLL && Close[1] < SlowLL)

 

*変更後

//買いシグナル
//if(pos <= 0 && Close[2] <= SlowHH && Close[1] > SlowHH)
if(pos <= 0 && Rsi2 >= 30 && Rsi1 < 30)//buy;

 

//売りシグナル
//if(pos >= 0 && Close[2] >= SlowLL && Close[1] < SlowLL)
if(pos >= 0 && Rsi2 <= 70 && Rsi1 >70)//sell

 

決済部分

 

*変更前

//買いポジションを決済する
if(pos > 0 && Close[2] >= FastLL && Close[1] < FastLL)

 

//売りポジションを決済する
if(pos < 0 && Close[2] <= FastHH && Close[1] > FastHH)

 

*変更後

//買いポジションを決済する
//if(pos > 0 && Close[2] >= FastLL && Close[1] < FastLL)
if(pos > 0 && Rsi1 >50 )//

 

//売りポジションを決済する
//if(pos < 0 && Close[2] <= FastHH && Close[1] > FastHH)
if(pos < 0 && Rsi1 < 50)//

 

マジックナンバー

 

*変更前

//マジックナンバー
#define MAGIC 20070831

 

*変更後

//マジックナンバー
//#define MAGIC 20070831
#define MAGIC 20140331//

 

パラメーター

 

*変更前

//パラメーター
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;//

 

変更後のプログラムを見て気づくかもしれませんが、変更前の文章は”//”をつけ残してあります。これはコメントアウトと呼ばれています。コメントアウトについてはこのページの下の方で紹介しています。

 

参考:「MT4で文字化け」したら読む記事

 

”//”の後は何を書いても自由でプログラムの動作に影響を与えません。ここに前のプログラム文を残しておくことで、加工後にうまく動かないときなど元に戻すのも簡単です。

 

ここまでの作業、慣れてくると30分もかかりません。or

errorとwarningの違い

5箇所の変更が終わったらコンパイルをします。

 

参考:MT4コンパイルの意味と手順

 

以上のように書き換えてからコンパイルしてエラーが出なければOKです。コンパイル後に出てくる警告には「error」と「warning」があります。この2つの取扱いは大きく違います。

 

*error
修正しないと動かない

 

*warning
修正しなくても動く。ただし、正確に動いているのかどうかは微妙なこともある。

 

errorが出た場合は、修正しないとプログラムは動きませんので対応が必要になります。プログラム専門家によると、warningも出来るだけ解決した方が良いそうです。

 

このwarningのほとんどは、先日のMT4大幅バージョンアップで出るようになったものです。バージョンアップ前は普通に動いていたものが、動かなくなってしまったものも多いようです。今回の変更でも、warningがでることがあるのですが、今のところ動作には問題なさそうなのでそのままにしておきます。

 

正直、私の今の力では修正できないwarningが沢山あります。この点については、近いうちにwarning解決に取り組むつもりでいます。

エラーが出た場合

エラーが出た場合は、以下の2つをまず確認してみてください。

 

  • 書き換え文章にミスはないか。
  • 全角で入力をしている部分はないか。

エラーが出たときは、どの行がエラーかを指摘してくれます。でも、原因がその行にあるとは限りません。エラーと指摘されている文章がおかしいのは、その前段階の文章がおかしいということがよくあるためです。エラーと指摘された文章とその前の部分を中心に確認してみてください。

 

特に”(”と”)”や”;”などは漏らしがちです。

 

それと、半角と全角の入力ミスもよくあります。これも、ローマ字だけでなく”;”なども半角入力でなkればいけません。この全角と半角のミスはなかなか気づけないもののひとつです。

 

エラーを修正することをデバックといいます。デバック作業は、自作EA作りでは非常に重要な作業となります。今回エラーが出たら良いチャンスですので頑張ってみてください。

MT4EA作成編目次

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

 

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

2014/04/14 08:16:14
このエントリーをはてなブックマークに追加   
記事が気に入ったらよろしかったらポチッと押してください。
にほんブログ村 為替ブログ FX スワップ・長期投資派へ
にほんブログ村

お気楽FX 相場生活入門について

当サイト記事はメルマガ連載記事を再編集しながら作成しております。FXメールマガジンは2004年より発行中です。お陰さまで発行回数2000回を超えました。登録・解除無料です。実際の運用状況を公開しながら、解説をしていく実践しやすいスタイルです。中長期で資産を増やし続けていきたい方向けです。

相場生活入門 まぐまぐページ


posted by 。mail:info@han-rei.com

FX はじめ方 初心者向け 外貨両替 MT4 キャッシュバック