「移動平均線と乖離率をExcelで算出する」で、移動平均線と乖離率を算出しました。
次は、システムトレードらしく、早速、売買ルールを入れてみましょう。
今回は、短期的な逆張りシステムなので、売買ルールを満たしたら終値で買い、
翌日の終値で決済するルールとします。
項目を追加
まず始めに項目を追加します。
- 新規注文ルール
- 決済注文ルール
- 新規レート
- 決済レート
- 損益
新規注文ルールを追加
本来なら検証してパラメータのチューニングをした方が良いのですが、
今回は適当に「5日移動平均線よりも、終値が2.5%以上安くなったら終値で買う」ことにします。
ExcelのIF関数を使います。IF関数を使うと条件を満たすかどうかを判断できます。
J11セルに=IF(H11<-2.5,"○","")と入れます。
IF関数の意味としては、H11(5日移動平均線乖離率)が-2.5以下なら、条件を満たし○となり、それ以外なら空欄となります。
新規レートを追加
新規注文ルールが○になったら、新規レートに終値を入れるようにしましょう。
L11セルに=IF(J11=”○”,E11,””)と入れます。
J11(新規注文ルール)が○なら、条件を満たしE11(終値)の値となり、それ以外なら空欄となります。
決済注文ルールを追加
今回の決済注文ルールは、シンプルに「買った翌日に終値で売る」とします。
Excelでどう書くかというと、
「1行上の新規注文ルールが○なら、決済注文ルールを○にする。」とします。
K11セルに=IF(J10=”○”,”○”,””)と入れます。
下までコピーすると、新規注文ルールが○となった翌日に○がつきますね。
決済レートを追加
新規レートと同じようにやります。
M11セルに、=IF(K11=”○”,E11,””)と入れて、下までコピーします。
今回は、シンプルなルールなので、決済した当日に買いシグナルが出てしまっていますね。
実際には、持ち越すという意味になります。
損益を追加
ここまで来ればもうすぐですね。
損益を計算してみましょう。
「買った翌日に決済」というルールですから、
決済する際は「当日の決済レート」から、「前日の新規レート」(1行上)を引けば良いことになります。
IF関数を入れて、決済レートがあるときだけ損益計算をするようにします。
N11セルに、=IF(M11<>“”,(M11-L10) * 100,””)と入れます。
「M11<>“”」というのは、決済レートが空欄でなければという意味です。
空欄でなければ、M11(決済レート) – L10(前日の新規レート)を引いて、
その値に、くりっく株365の最低取引単位は100をかけます。
いきなりマイナスの連続ですね…
合計損益を追加する
ここまで出したところで、1回辺りの損益は出ましたが今までの取引の累計損益がありませんでした。
損益の右に合計損益を追加して、O8セルに=O7+NUMBERVALUE(N8)と入れます。
あとは下までコピーするだけです。
これで、合計損益が出ました。
一番下まで見ると…-14万。
やはり、ちゃんと検証せずに作ったルールではダメですね。
グラフを作って、売買ルールの改善を図る
優秀な売買ルールは、損益グラフが右肩上がりになります。
この結果をグラフにしてみた結果は、無残な不安定グラフ。
A列(日時)とO列(合計損益)のグラフです。
離れた列同士をグラフにするには、多少のテクニックが必要ですが、こちらを見たらうまく作れました。
Excelで離れた列をグラフにする方法
随分とマシになりました。
2年間で+50万近くの利益となる売買ルール。
何をしたかというと、単に「5日移動平均線乖離率2.5%」から「25日移動平均線乖離率2.5%」にしただけです。
短期的な5日移動平均線よりも、多少長めの移動平均線の反発を見た方が上手く行くことが分かりました。
でも、このグラフは前半の損失が酷く不安定ですよね。
そこで、更にもう1時間考えてみた結果はこちら。
くりっく株365公式サイトから7年分の時系列データで検証しても好成績。
大きな損を抱えることなく着実に利益を稼ぐ
安定感のある売買ルールができました。
ここまで作るのに2時間未満ですから、もっとじっくり考えたら良い売買ルールが作れるかもしれませんね。
最近のコメント