システムトレード初級編

テクニカル分析



 今回は意外と質問の多い、MetaTrader 4で使える簡単なテクニカル分析を紹介していきたいと思います。


一言でテクニカル分析と言っても、沢山種類があります。今回はその中でもメジャーなテクニカル分析の紹介に絞らせていただきます。

 

◇移動平均線(MA)◇


 英語でMoving Averageと呼ばれ、一般的に「MA」と略されます。一定期間のレートの平均を線として表します。 一般的な使い方として、短期間と長期間の移動平均線を利用し、短期が長期を下から上に抜けたときをゴールデンクロスと言い、買いシグナル。 短期が長期を上から下に抜けたときをデッドクロスと呼び、売りシグナルとして用いられます。

 移動平均線は、トレンドを把握する為に使われることが多いです。

 以前こちらのページで簡単なプログラムを紹介させて頂きました。

 

◇移動平均収束拡散法(MACD)◇

 英語でMoving Average Convergence and Divergenceと呼ばれ、一般的に「MACD」と略されます。 移動平均線を応用したテクニカル分析で、指数平滑移動(EMA)の短期と長期とシグナル線を用いて分析を行います。MACD線がシグナル線を下から上に抜けたときをゴールデンクロス と言い、買いシグナル。その逆がデッドクロスで売りシグナルになります。

 特徴としては、トレンド相場を読み取りやすい反面、ボックス相場で脆くなります。

 以前こちらのページで簡単なプログラムを紹介させて頂きました。



◇ボリンジャーバンド◇

 英語表記でBollinger Bandsと書かれます。

 移動平均線と標準偏差を用いたテクニカル分析で、移動平均線の上下に引かれたバンドを用いて分析を行います。

 バンドは中央の移動平均線に対して上下で一対になってます。

Bollinger Bands

 中央の黒い線が移動平均線です
 中央から上下に位置する黒い線が±1σのバンドで、間にレートが存在する確率は、68.27%
 中央から上下に位置する黄色線が±2σのバンドで、間にレートが存在する確率は、95.45%
 中央から上下に位置する紫線が±3σのバンドでn間にレートが存在する確率は、99.73%

 上記の確率ですが、所詮は確率です。±2σのバンドを抜ける確率が5%を切っているからと信じ込んでいては危険です。あくまで目安にしましょう。 事実、上のチャートでは、黄色線を出るロウソクが5%どころではないです

 これだけを聞くと使えないテクニカル分析の様に思えますが、ちゃんとした使い方を覚えれば応用性が高く、優れたテクニカル分析だと思います。

 詳しい使い方を書くと、かなり長くなってしまいますので、ボリンジャーバンドの詳しい使い方については、また別の機会にしたいと思います。

 プログラムでボリンジャーバンドを使うにはiBands関数を使います。

iBands( string symbol, int timeframe, int period, int deviation, int bands_shift,int applied_price, int mode, int shift)

 以前こちらのページで関数に頻繁に出てくる引数を説明させて頂いてます。

 以前紹介した引数に出ていなかったものは「period」「deviation」「bands_shift」辺りですね。

 int period

 これは、移動平均期間の設定です。ここに入力したバーの数で計算します。


 int deviation

 これは標準偏差の設定です。2を入力すれば、2σの値が出ます。


 int bands_shift
 これはバンドをシフトするバーの数の設定です。バーは右方向へシフトします。


 int mode
 これは以前「関数に頻繁に出てくる引数」の時に説明しましたが、以前の説明は「MACD」でした。今回はボリンジャーバンドですので、内容が変わっています

 「MODE_UPPER」が上のバンドを表します。
 「MODE_LOWER」が下のバンドを表します。


if(iClose(NULL,0,0) < iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_LOWER,0))
{
 Ticket = OrderSend(Symbol(),OP_BUY,1,Ask,3,Ask-(200*Point),Ask+(200*Point),"Buy",0,0,Blue);
}

 仮に上記のプログラムを組み込んだ場合には移動平均期間が20で、終値が-2σのバンドを下回ったとき、買いポジションを取ることになります。



◇相対力指数(RSI)◇

 英語表記でRelative Strength Indexと書かれます。一般的に「RSI」と略して呼ばれています。

 RSIは%で表され一般的には70%を超えると買われすぎ、30%を下回ると売られすぎと言われています。そのため、逆張りの目安として使われる事が多いようです。 そのため、為替の転換点を示していると言われますので、ボックス相場で効果を発揮すると思います。逆にボックス相場からトレンドが発生したときには注意が必要です。80%以上や30%以下に張り付くことが有りますので、安易な逆張りでの損失が恐れられます。

 プログラムでRSIを使うにはiRSI関数を使います。

iRSI( string symbol, int timeframe, int period, int applied_price, int shift)

 以前こちらのページで関数に頻繁に出てくる引数を説明させて頂いてます。

 int period

 これは、移動平均期間の設定です。RSIでは、14を一般的に使います。


if(30 >= iRSI(NULL,0,14,PRICE_CLOSE,0))
{
 Ticket = OrderSend(Symbol(),OP_BUY,1,Ask,3,Ask-(200*Point),Ask+(200*Point),"Buy",0,0,Blue);
}

 仮に上記のプログラムを組み込んだ場合、RSI30を下回ったときに買いポジションを取ることになります。

今回の内容は以上になります。

また別の機会に、ほかのテクニカル分析を紹介をしたいと思います。

---------------------------------------注意---------------------------------------

 半角のスペースが認識されない為、コードを見易くするために全角で書いている場合があります。
 実際にプログラムにコードを書くときは、コピー&ペーストせずに半角で書いて行って下さい。

 また、内容には注意を払っていますが、保障は出来ません。
 実際に運用する場合は、自己責任でお願いします。

<<関数の使い方を調べる方法 | TOP | 配列について >>

トップページ プロフィール ブログ リンク オーダーシステム 利用規約 問い合わせ