システムトレードで、株・商品先物・日経平均先物(TOPIX・日経225)・FX(外国為替証拠金取引)の相場を生き残る!
システムトレードで楽ちん投資
トップページ | トレード実践録 | インフォ〜 | プロフィール | 更新履歴 | リンク | メルマガ | お問い合わせ

投資に役立つエクセル関数講座 その1 0からシステムを作る

エクセルを使って簡単なシステムを作ってみようという講座です。
入門者向けの内容になります。
この講座では、当サイト内にある簡易システムは使いません。まったくの何もない状態からはじめます。
 
 
(ある程度の関数式を作れる方は読み飛ばしてください)
 
では、エクセルを起動させ、A列に日付を入れ、4本値(始値・高値・安値・終値)を
B列:始値
C列:高値
D列:安値
E列:終値 となるように格納します。
 
この状態が次の図です。
 
何もない状態から、エクセルに手を加えていきます
 
(価格情報は適当な値をいれてください。日付は、いつのものでもかまいません)
 
では、次のルールで売買を判定してみます。
 
ルール:今日の終値が前日の終値より高ければ、買い。安ければ、売り。
     
終値が、E列に入っているので、F列で「売買」を判定させ、表示させることにします。
 
前日より、高ければ買い。  この判定を行う関数式を考えてみます。
 
=IF(E2<E3,"買い","売り")
 
これは、
E2のセルに入っている値より、E3の値が大きければ、「買い」。さもなくば「売り」。
という判定式になります。
 
昨日と今日の値が同じだったら、「売り」、という判定になってしまうのです。
これはこれで、よしとします。
 
では、関数式をF3に貼り付けて、引き伸ばします。
 
エクセルに関数式を組み込みます
 
図の上のほうに関数式が出ています。
では、F3のセルの右下にマウスを当て、マウスカーソルが+になっている
のを確認して、左クリックしながら下へドラッグします。
 
下図は30行目で、ドラッグを止めた場合です。F列に関数式が入って、売り買いの判定が行われています。
でも、不恰好ですね。分かりにくいし。
 
売買の判定がでました
 
 
では、この分かりにくいところを工夫して、見やすくしてみましょう。
 
F列の前後が異なっていたら、売買指示を表示する、という関数を作ってみます。
 
=IF(F3<>F4,F4,"")
 
この関数式をG4へ入力し、それ以降の行にも適用させます。
 
エクセルに関数式を追加して、分かりやすくします
 
多少マシになってきました。
では、次に利益を算出することを目指してみます。
 
どのようにすれば、損益を算出できるのでしょうか?
考えてみます。
 
まず、いくらで売買したのかという値が必要ですね。
G列で売買指示を出している行があれば、隣のH列に、翌日の始値を表示するようにしてみましょう。
(売買の判定を本日中に行い、翌日の寄付きの成行きで注文をだす、というシステムになります)
 
=IF(G4<>G5,B6,"")
 
この式をH5へ入力します。
意味は、G列の前後の行が異なれば、B列に翌日の始値を表示せよ、です。
前後の行が異なるというのは、売買の判定がでた場合を示しています。
 
H5のセルへ関数式を入力したら、H30まで引っ張ります(ドラッグします)。
 
約定値を表示させるには?
 
……おかしなところがありますね?
H7をみてください。
売買指示がないにもかかわらず、7950という値が入っています。これは、9/6の始値です。
なぜ、こんなことになったのでしょうか?
 
答えは関数式にあります。
H5へ入力した式は、=IF(G4<>G5,B6,"") です。
上下が異なれば翌日の始値を入れよ。
 
この上下が異なるという条件に、「買い」と「空白」という場合が含まれてしまったのです。
条件式を修正しなければなりません。
 
前の式でいうならば、後の行が空白の場合は除かないといけません。
H5へ入力する式は、=IF(AND(G4<>G5,G5<>""),B6,"") です。
この式の意味は、G列の前後が異なり、かつ後ろのセルは空白でない場合に、翌日の始値を入れよ、です。
では、関数式を修正して書きなおします。
 
関数式を修正する
 
30行目まで、修正した関数式を適用させてあります。G列とH列、売買判定のでたところだけ、値が入って
います。
 
 
さて、次は売った場合と、買った場合のそれぞれの計算式を考えなければなりません。
利益の算出は 投資に役立つExcel関数講座 その2 で行います。
 
 
 
 
 
 
TOPへ戻る  
Copyright (C) toushikenbunroku.com, All Rights Reserved.