
FX相場を攻略するには手法を検証することが必要です。
「手法の検証にはMQL4などのプログラミング言語が必要なのでは?」と考える方もいるかもしれませんが、エクセルなどの表計算ソフトでも十分に検証することができます。
ここではエクセルを使ったFXの検証方法を紹介します。
目次
MT4からヒストリカルデータをダウンロードする
エクセルを使ったFXの検証は、MT4の「ヒストリカルデータ」と呼ばれる「過去のチャート」をダウンロードするところからはじめます。
1. 「ヒストリーセンター」を選択する

ツール >ヒストリーセンターをクリックします。
(いわゆる「長期データ」の取得方法については趣旨が異なるため、ここでは割愛します)
2. ヒストリカルデータを「エクスポート」する

検証に使いたい「通貨ペア」と「時間足」を選択します。ここでは「EURUSD」「Daily(日足)」を選択しました。
「エクスポート」をクリックして適当な場所「保存」します(ここではデスクトップに保存しました)。
MT4の役割は終わったのでアプリケーションを終了します。
※ もしうまく価格データを取得できていない場合は、一度チャート画面に戻ってダウンロードしたい通貨ペアを表示してみましょう。チャートに表示させることでヒストリーセンターにも読み込まれます。
ヒストリカルデータをエクセルで編集する
1. CSVファイルを表計算ソフトで開く

ダウンロードしたCSVファイルをエクセルなどの表計算ソフトで開きます。
2. ファイルの列に何が書いてあるか整理する

分かりやすくするため、ファイルの列に何が書いてあるか整理しました。
データの列の内容は以下のようになります。
- A列:日付
- B列:時間
- C列:始値
- D列:高値
- E列:安値
- F列:終値
- G列:出来高
3. 不要な列を削除する

日足で計算する場合、時間はいらないので「B列」を削除しました。出来高も不要なので「G列」も削除しました。
あとは画像のように「通貨ペア」を記入したり、文字を中央揃えにしたり、セルに色をつけたりお好みにします(見た目から入るタイプ)。
これで日付と始値、高値、安値、終値が見やすく並びました。
ここまででヒストリカルデータの準備ができました。
次からはヒストリカルデータを使って検証を進めてみましょう。
エクセルで「買う」を入力する
まず、「買う」とはどういうことになるかを考えてみます。
「買う」とは「ロングポジションを持つ」ことです。
ここでは「始値」で買って「終値」で決済する関数を入力してみます。
「関数」とはまた厄介な言葉が出てきました。
エクセルの醍醐味とも言われる関数は、「こうやって計算して」「もし◯◯ならこうして」などを計算してくれる式です。
分からなくてもコピペで十分に対応できるので、はじめは何事も模倣するところからはじめてみましょう。
1. 「買う」関数を入力する
それでは1月2日の「始値」で買って「終値」で決済するという関数を入力します。
ここでは同じレイアウトになっている前提で話を進めるので、該当セルが異なる場合はズラしてお考えください。
F3のセルに以下の関数を入力します。
=E3-B3
入力したらリターンキー(エンタキー)を押します。
F3のセルに結果が現れたら成功です。
ここでは2014年の1月2日の始値で買って終値で決済すると-0.00915の損益になることが分かりました。

結果はヒストリカルデータによって異なるので特に気にしなくても問題ありません。「ヒストリカルデータによって異なる」とは「FX会社ごとにレートが異なる」ということを意味します。
ここで使っているのはFXDD社のヒストリカルデータです。
2. pip表記にする
結果は-0.00915になりましたが、これでは少し見にくいのが難点です。
FXで表示されるようにpip表記になるようにしてみます。
なお、関数の入力方法は人それぞれあります。慣れてくるとひとつのセルに様々な関数を入力できるようになりますが、最初はミスを防止するためにもひとつのセルに入力する関数はできるだけ少なくなるようにします。
先ほど入力したF3のセルに手を加えてみます。以下の関数を入力します。
=(E3-B3)*10000
入力したらリターンキー(エンタキー)を押します。
※エクセルは「×(かける)」を「*」、「÷(わる)を「/」と入力します。

ドルストレートの場合、「10000」をかけると通常見慣れているpipの数値が表示されます(クロス円は「100」をかけます)。
スプレッド分を引く
始値で買って終値で売ると-91.5pipsになることが分かりました。
だいぶそれらしくなってきました。「それ」とはFXらしいという意味です(わざわざ言う必要ない)。
しかし、このままではスプレッドという見えない手数料が含まれていません。
スプレッドをきちんと表示してあげましょう。
スプレッドを含めた関数は以下の2通りが考えられます(ほかにもあると思います)。
- 1つのセルの中でスプレッド込みで計算する
- スプレッドを入力するセルを作る
a. 1つのセルの中でスプレッド込みで計算する
1つのセルの中でスプレッド込みで計算する場合はスプレッド分を引いてあげます。
以下の関数を入力します。
=(E3-B3)*10000-1

スプレッドが引かれて-92.5となりました。
以下のセルに適用させるにはセルの右下の黒い四角形の部分を下にドラッグします。

F10まで適用ドラッグしました。
すべてのセルで「始値で買って、終値で売って、さらにスプレッドを1引いた数」が適用されています。
この方法だと通貨ペアを変えたときなどスプレッドを変更したい場合に、すべてのセルをドラッグし直す必要があります。データ量が少なければ問題ないのですが、長期間のデータの場合、なかなか面倒だったりします。
b. スプレッドを入力するセルを作る
そこでスプレッドを入力するセルを作ります。
たとえばスプレッドを「1」と入力するとすべてのセルに反映されるようにしてみます。
まずはスプレッドを入力するセルを作ります。作るといっても難しいものではなくスプレッドの数値を適当なセルに入力します。

ここではF2のセルに「1」と入力しました。
続いて、以下の関数を入力してリターンします。
=(E3-B3)*10000-F$2

ここで「F2」の「F」と「2」の間に「$(ダラス)」を入力するのがポイントです。
上の関数では、始値で買って終値で売ったものに10000をかけてひとつ上のセル(F2)の数値を引くとなっています。
しかし、「$」を入力しないと、先ほどのように下にドラッグした場合「F3の数値を引く」「F4の数値を引く」となってしまいます。
「$」を入力すると「絶対参照」と呼ばれるものになり、ドラッグしても参照されるセルが変わりません(ドラッグすると変わるのは「相対参照」と呼びます)。
合計を出す
スプレッドを計算したらそのまま下にドラッグして12月31日まで計算します。
2014年12月31日の下のセルに以下の関数を入力します。
=SUM(F3:F261)
データが抜けている可能性があるため、「F261」ではなく上下している場合もあります。

1年間、毎日「買う」を続けると-1650.6pipsということが分かりました。
余談ですが、毎日始値で買って終値で決済するので、1月2日の始値で買って、12月31日の終値で決済すれば、1日1pips、1年間で約250pipsの節約になります。
成績の累積を出す
ここまでで毎回のトレードにおける損益が分かるようになりました。
続いて、成績の推移が分かるように「累積」を計算しましょう。
1. 「累積」の関数を入力する
G3のセルに以下の関数を入力します。
=F3

これでG3のセルにはF3のデータが反映されるようになりました。
2. 以下の行にも累積を反映させる
G4以下にも累積が反映されるように関数を入力します。
ここで少し考えてみましょう。1月3日までの成績というのは1月2日の成績と1月3日の成績になります。つまり2つの数値を足したものになります。
G4のセルに以下の関数を入力します。
=G3+F4

これで前日までの成績と当日の成績が足されたデータが反映されるようになりました。
小難しく考えずにコピペだけしても問題ありません。
3. 下までドラッグする
G4セルの右下の点にカーソルを合わせて下(この場合12月31日)までドラッグします。

これで成績がどのように推移しているかが分かるようになりました。
グラフを作る
最後に成績がどのように推移しているか「視覚的に判断できる」ようにグラフを作ってみましょう。
G3〜G261までをドラッグして選択した状態にします。

グラフツールを選択します。アイコンの場所や表示方法は使っている表計算ソフトによって異なります。
グラフの種類は「線グラフ」を選択します。

グラフが表示されれば完了です。
グラフの色などは設定により異なるので考慮しなくても大丈夫です。
1年間毎日買っていると大きくマイナスになることが分かりました。きれいな右肩下がりの曲線なので反対のポジションを持てば利益になりそうですが、たまたま2014年が下降トレンドだっただけなので続けるのは難しそうです。
まとめ
エクセルを使ったFXの検証方法を紹介しました。MT4からヒストリカルデータをダウンロードしてエクセルで編集すると、さまざまな手法を検証することができるようになります。優位性のある手法を作るためにもぜひ覚えてみましょう。