直近の高値安値 ポジション編
今回からシステムトレードの損切りについて検証を進めていく。
まずはじめは、直近の高値と安値を損切りラインとする手法を試してみたい。
損切りルールは下記のとおり
買いの場合、過去5日の最安値を損切りラインとする。
売りの場合、過去5日の最高値を損切りラインとする。
今回のシステムトレードは今までやってきたドテン売買のシステムトレードより
複雑になっているためこれから数回にわたって作り方を説明していくことにする。
ちょっとわかりにくい部分もでてくるとは思うが、しっかりとついてきてほしい。
では、さっそくエクセルでシステムトレードを作成していこう!
まずは、以前に作成した移動平均線のトレンド判定を開く。
仕掛け部分の作り方については、移動平均のトレンド判定を参照してほしい。
1.シグナルの計算
・H1にシグナルと入力する。
・H27に「=IF(K27="",IF(AND(G26<>G27,G27="上昇"),"buy",IF(AND(G26<>G27,G27="下降"),"sell","")),"")」と入力する。
これは、今日のトレンド判定Gが前日と異なり、かつ今日が上昇なら、買い(buy)。
逆に下降なら売り(sell)。それ以外は空白という意味。
・これをコピーして、データのある最終行まで貼り付ける。
2.約定価格の計算
・I1に約定価格と入力する。
・最初のシグナルが出た次の日に(例はI37)、「=IF(OR(O36<>"",S36<>""),"",IF(H36<>"",B37,I36))」と入力する。
これは、損切シグナルOと利食シグナルが空白じゃない場合は、空白を表示する。損切シグナルOと利食シグナルSが空白の場合で、更にシグナルHが空白じゃない場合は、その日の始値を表示する。それ以外の場合は前日の価格を表示するという意味。
・これをコピーして、データのある最終行まで貼り付ける。
3.日数を計算する
・J1に日数と入力する。
・最初の約定価格が出た日に(例はJ37)、「=IF(I37="","",IF(I37<>I36,1,J36+1))」と入力する。
これは、約定価格Iが空白の場合は、空白を表示し、空白ではなかった場合で、更に 今日と前日の約定価格Iが違った場合は、1を表示し、同じ場合には前日の日数に1を加算する。という意味。
・これをコピーして、データのある最終行まで貼り付ける。
4.ポジションを計算する
・K1にポジションと入力する。
・最初の約定価格が出た日に(例はK37)、「=IF(J37="","",IF(H36<>"",H36,K36))」と入力する。
これは、日数Jが空白の場合は空白を表示し、空白じゃない場合で、更に前日のシグナルHが空白じゃない場合は、前日のシグナルHを表示し、空白の場合は前日のポジションKを表示させる。という意味。
・これをコピーして、データのある最終行まで貼り付ける。
ここまでついてこれただろうか。
一応、下記の図を参考にしてほしい。
ここまでがポジジョン部分になる。
この後、損切り部分、利食い部分、損益計算部分、R倍数部分と作っていく。
このように一つのシステムトレードをいくつかのパーツに分けて作っていくと理解しやすいし、
後から改良する時にもとてもやりやすいのでおすすめ。
と、今日はここまで。
次回をお楽しみに!!
[スポンサードリンク]
