ゲコーです。
先日、EA稼働に関して次のような質問をいただきました。
「EAを稼働させるにあたり、EAに使われているインジケーターをチャートに表示させる必要はありますか?」
結論から言えば、私の作ったEAであれば表示させる必要はありません。
今回の記事では、その理由についてEAの仕組みの視点で解説していきます。
移動平均を例にとると
チャートに表示させる有名なインジケーターといえば移動平均線【MA:Moving Average】だと思いますので、このMAを例にしますね。
MAというのは、つまりは平均のことです。
平均期間10の平均とは、過去10日間(ローソク足10本分)の平均のことです。
その平均値をローソク足が作成されるたびに算出し続けるのが、「移動」平均であり、その値を線で結べば移動平均線となります。
ごく当たり前の話なのですが、どんなテクニカル指標であってもなんらかの計算手法によってはじき出される数値をもとにインジケーターとして描画されるのです。
その算出の基データとなるのが「ローソク足」です。
ローソク足は「始値・終値・高値・安値」で構成されているため、このどれかのデータを使用して計算していくわけです。
たとえば日足終値における5日間単純移動平均とは、過去5日間の終値から平均を算出する、ということになります。
インジケーターとEAの違い
インジケーターであってもEAであっても、その元となる値は同じです。
たとえば日足終値における5日間単純移動平均とは、過去5日間の終値から平均を算出する、というところまでは同じ作業を行います。
違いといえば、その値をもとにラインなどを描画するか、エントリーや決済などの判定材料とするかという部分です。
矢印を表示させるようなインジケーターであっても、基本的に同じことです。
たとえば、10MAと100MAといった2つの移動平均線が交差したときのことを考えてみます。
必要なデータは、ローソク足2本前と1本前の10MAと100MAの値(4つ)です。
条件は、「2本前は交差していない」+「1本前は交差した」というところまでは同じ工程となります。
矢印を描画させるのであれば、描画コマンドを出すことになりますし、
EAとしてエントリーさせるのであれば、オーダーコマンドを出すことになります。
EA内部での計算
移動平均の値を算出する場合、MT4におけるプログラム言語[MQL4]では、次のような関数を使うことで簡単に求めることができます。
iMA(通貨ペア、時間軸、計算期間、移動平均シフト、平均化モード、適用価格、シフト);
この関数により、特定の通貨ペア、時間軸、期間などにおける移動平均の値が求められるのです。
つまりEAのプログラムの中に、移動平均などのテクニカル指標を使っていたとしてEA内部で値が算出されるため、インジケーターを表示させる必要はまったくないということです。
どちらかといえば、インジケーター表示プログラム内で同じ計算プロセスをおこなう分だけMT4への負荷がかかってくるといえます。
ただし一点だけ注意点があります。
それは、EAで使用するテクニカル指標と同じインジケーターがMT4に入っていないとEA内で計算ができないということです。
EAでMAを使うならMT4でもMAが入っている必要があるということですね。
私の作るEAのほどんどは、MT4に標準装備されているテクニカル指標を使うので問題はありません。
しかし、たとえば矢印サインのような市販のテクニカルインジケーターをEAのコマンドトリガーにしている場合は、そのインジケーターもMT4に組み込んでおく必要があるため注意が必要です。
この場合でも、チャートにインジケーターを表示させておく必要はありません。
(EA製作者によっては、チャートに表示させることを求める場可能性もありますので、製作者にご確認ください)