どうも。
FXの儲かるデータを見るのが趣味のヒロセです。
FXトレードをするのなら、トレード記録で分析とかしますよね!
リアルトレードであれば、毎日のことですから、
・この日は儲かった
・この日は損した
・この日は何もなかった
こんなふうにカレンダーにトレード記録していけば、後から見ても一目瞭然です。
こんな感じ。
参照:ゴゴジャンPremia_Scal_USDJPY_M1商品ページ
今は便利な世の中になっていて、リアルトレードの結果も、
過去検証(バックテスト)の結果もデータとしてダウンロードできます。
しかし、ダウンロードしたデータって、
カレンダーに毎日記録したようになってない
んですよね・・(;´・ω・)
なぜならば、ほとんどの場合、
何かあったことしか記録されていない
からです。
ところが実際には、
何もなかった日もある
ワケです。
どうにかしてカレンダー通りに表示したいと思いませんか?
ポイント

エクセルでなんとかできそうだけど・・
具体的な方法を教えて欲しい
このような悩みにお答えします。
この記事では、ダウンロードしたデータをエクセルで実際のカレンダー通りに並べ替える方法を解説しています。
これができれば、異なるタイミングで決済される通貨ペアなどを組み合わせたり、
利益が出る頻度や、利益額見込みの予測も簡単になります。
ぜひデータの整理方法を覚えてトレードに役立てていただきたいと思います。





目次
トレード記録の整理方法
例えば、
[ba-tya]と[gizitore]を組み合わせれば、MT4を使用した疑似トレードが可能です。
疑似トレードのレポートは画面上に簡易表示することができます。
便利ですよね~d(´ω`*)
さらに詳細なデータは、CSVデータとして保存することもできます。
保存したデータを表計算ソフトで開くとこんな感じ。
決済して、損益が出た日が順番に並んでいます。
しかし日付を見ると、
毎日損益が出ているわけではない
ことがわかりますね。
コレをカレンダー通りに並べ直すのが今日の方法です。
カレンダー列は自分自身で新たに作ってくださいね。
カレンダー通りに並べるとは、こんな感じ。
このように複数通貨ペアを同時に表示していくと、
無駄のない組み合わせ方法がわかりますよね!
さらに合計獲得pipsから、その日に得られる予想損益額だって計算できます。
もうね、やらない理由ががわかりません。
じゃ、どうすればいいのか?
ポイント
エクセルの関数を使って決済があった日の獲得pipsをカレンダーの横に表示します。

VLOOKUP関数を使う
関数と聞いて、
『もうすでにわからない』
と思ってしまった人も多いでしょうが、理解してしまえばなんてことないですよ。
極力簡単に解説するので、ちょっとだけ頑張ってくださいね!d(´ω`*)
流れと引数を理解する
まずは出来上がった関数はこちら。
関数
=IFERROR(VLOOKUP(H2,$B$2:$G$147,6,FALSE)&"","")
『I2セル』にこの関数を入力して、H列に表示したカレンダーに沿ってオートフィルさせれば、
決済があったカレンダーの日付横に決済pipsが表示されます。
オートフィルってのは、セルの右下にカーソル合わせて十字ボタンをドラッグすることですよ。
詳しく知りたいならググってみてください。
それでは関数を分解しながら解説していきます。
=IFERROR(VLOOKUP(H2,$B$2:$G$147,6,FALSE)&"","")
外側の赤い部分は、中の黄色い関数のエラーや0を表示させないための関数です。
IFERRORは後で説明するとして、
中身を抜き出すとこうなります。
=VLOOKUP(H2,$B$2:$G$147,6,FALSE)
VLOOKUPってのは『Vertical:縦』から『LOOKUP:探す』という意味です。
関数には書式というのが必要なので書いておきますね。
書式
=VLOOKUP(検索値,検索範囲,列番号,検索タイプ)
『()』に囲まれた『,』で区切られた情報を引数(ひきすう)といい、計算結果の元になる情報です。
引数を正しく入力すると、入力したセルに正しい結果が表示されるってワケです。
エクセル界では『値を返す』などと意味の分からない言葉が使われますが、
要するに『計算や検索の結果を表示』することです。
では今回の引数の意味を説明しますよ。
ここ、一番大切です!
引数の意味
=VLOOKUP(H2,$B$2:$G$147,6,FALSE)
『検索値:H2セル』と『FALSE:完全一致』する数値を『検索範囲:B2セルからG147まで』の中から探し出し、
『列番号:検索範囲内の左から6列目』を表示する
やりたいことを図にするとこんな感じ。
関数の計算の結果はこんな感じ。
まずは、
検索範囲からH列に完全に一致するセルを探します。
ここでは、2019年12月3日に‐34.2pipsの損失が出ています。
コレを『H列』に表示したカレンダーの同じ日の横の『I列』に表示するワケです。
このように、『H列』が2019年12月3日となった場合に、
『G列』の数値が『I列』に表示されていますね。
以上の解説で、
・何がしたいのか
・どうすればいいのか
・どんな結果がでるのか
理解できたでしょうか?
実際に関数を実行するには、もう少し細かいお話をすることになります。
休みつつでもいいのでしっかり理解してくださいね~

検索範囲の指定方法
検索範囲は列を選択すると、一気に指定できそうな気がしますが、
それをするとスピルエラーってのがでるのでやめてください。
検索範囲の指定は、
『最も左上のセル:最も右下のセル』
というように指定します。
今回の場合、
『B2:G147』
となります。
もう一度、VLOOKUP関数を貼りますね。
=VLOOKUP(H2,$B$2:$G$147,6,FALSE)
検索範囲指定の部分は黄色マーカー部分です。
あら?
なんかセルの指定方法に余計な文字が入ってますよね?
『B2:G147』➡『$B$2:$G$147』
この『$』は、
オートフィルした場合に数値が変わらない
ようにするための記号です。
関数を『I2』セルに入力し、下にオートフィルすると、
関数中の『検索値』『検索範囲』の引数がセルに対応した数値へ変化します。
『検索値』はセルが下に移動するごとに、
H2
H3
H4
・・・
と変化しなくてはいけませんが『検索範囲』は変えたくないワケです。
ですから、セルの住所を示す英数字の前に『$』を入れることで、
セルの住所が変わらないように固定するって事です。
エクセル界ではコレを『絶対参照』とか言ってます。

決済時間を消す
しつこいようですが、もう一度VLOOKUP関数を貼りますね。
=VLOOKUP(H2,$B$2:$G$147,6,FALSE)
H2と『完全一致』する数値を『B2:G147』の範囲で検索する、ということですが、
実際に一致するのは『B列』の日付ですよね。
ところが、ダウンロードしたデータには、
決済時の日付と時間が入力されています。
注意ポイント
自分で作成したカレンダー列には、時間が入っていないので『完全一致』しません。
ですから、『B列』のデータから時間のみを消す必要があります。
その場合は、『INT関数』を使用します。
『INT関数』は整数以下を切り捨てする関数です。
このように新たにB列を挿入し、『B2』セルに
=INT(C2)
と入力して必要な行数をオートフィルしてください。
そのままでは時間が『00:00』と表示される場合は、
表示させたセルをコピーして、
右クリック➡形式を選択して貼り付け➡値にチェック➡OK
と操作することで消えます。
この操作をエクセル界では『値貼り付け』と呼んでいます。
『新たなB列』に月日のみが正しく表示されたら、
『元B列であるC列』は削除しちゃってOKです。
これでVLOOKUP関数を実行する準備ができました。

IFERROR関数で余計な表示を消す
さて、ようやく『VLOOKUP関数』の準備ができました。
あとは出来上がった関数を『I2』セルに入力してオートフィルすればいいわけです。
で、できたのがコレ。
当初の目的は果たしたワケですが、
エラー表示が邪魔ですよね・・(;´・ω・)
後でさらに集計したりする場合、とっても面倒なことになるので、
新たに『IFERROR関数』を追加しましょう。
追加して完全体となった関数をもう一度貼ります。
=IFERROR(VLOOKUP(H2,$B$2:$G$147,6,FALSE)&"","")
黄色マーカーで表示した部分が『IFERROR関数』です。
『""』は空白で表示するという意味です。
これで、中央に挟んだ関数にエラーが出た場合、そのセルは空白で表示されます。
ちなみに、VLOOKUP関数の最後につけた『&""』は『0を空白で表示する』という意味です。
『&""』を最後につけることで、VLOOKUP関数単体でも『0』が空白表示となりますが、
エラー自体を空白にするには、『IFERROR関数』が必要です。

まとめ
お疲れさまでした。
この記事では、ダウンロードしたデータをエクセルで実際のカレンダー通りに並べ替える方法を解説しました。
私はインストール版のエクセルを持っていないので、
スクショにはいろいろな表計算ソフトが混じってます。(;^ω^)
このような操作をすることで、次のような通貨ペアの組み合わせが考えられます。
・毎日決済があるように組み合わせ
・大きなトレンドでは同じように動くペア同士を組み合わせ
・全く別の動きをする通貨ペアの組み合わせ
などなど・・
いろんな使い方ができますよね!d(´ω`*)
いや~夢が広がります。
それではまた。
引数をしっかり理解するとデータが変わっても対応できますよ!
ヒロセ