[スポンサードリンク]

移動平均線の作り方

移動平均線とは、当日からN期間遡ったデータの平均値を結んだ線のこと
を言います。今回は移動平均線を使用して、トレンドを判定していくことにします。

トレンドフォローとは、現在のトレンドが今後も継続していくと予想すること。
上昇トレンドの場合は今後も価格は上昇すると予想し、下降トレンドの場合は
今後も価格は下降すると予想すること。

現在の価格が移動平均線より上にあれば上昇トレンド継続中と考え、
現在の価格が移動平均線より下にあれば下降トレンド継続中と考える。

言葉で説明するのは難しいのでExcelで移動平均線を描いてみよう!

1.F1に25日移動平均線と入力
2.F26に「=AVERAGE(E2:E26)」と入力
3.データの最終行までコピー

グラフ化したのが下の図

25MA.JPG 

4.G1にトレンド判定と入力
5.G26に「=IF(E26>F26,"上昇","下降")」と入力
これは終値が移動平均よりも上に位置するなら上昇、下に位置するなら下降を意味する。

6.条件付き書式で上昇を青、下降を赤にする

zyouken.JPG 

7.F2でウィンドウ枠の固定を設定する

ここまで進むと下の図のようになる。

idou1.JPG

トレンド判定に赤が何日も連続して表示されている期間は、下降トレンド継続中、
青が何日も連続して表示されている期間は上昇トレンド継続中。 

次回はこの移動平均線のトレンド判定を利用して、ドデンの簡単なシステムを
作ってみようと思う。

ドテンとは、買っていたポジションを決済し、さらに売りを建てること。逆に売っていた
ポジションを決済し、さらに買いを建てることをいう。常に取引をしている状態のことをいう。

移動平均のドテン

前回作成した移動平均線によるトレンド判定を利用して、移動平均線のドテン売買を
テストをしてみる。

売買ルールは下記の通り

トレンド判定が赤色の下降から青色の上昇へ変わった日の翌日の始値で買い、
その後上昇から下降へ変わったら、次の日の始値で決済する。
売りの場合はその逆で、ドテン売買なので、売り買いを絶えず繰り返していく。

取引枚数は10,000通貨とし手数料は1,050円とする。
スプレッドは、 0.04円とする。

それでは早速作成していこう!!

まず、前回作成した移動平均線のトレンド判定ファイルを開きます。 
F4にカーソルを合わせて、ウィンドウ枠の固定を設定します。

☆約定価格を計算

1.H1に「約定価格」と入力する
2.H37に「 =IF(G35<>G36,B37,H36) 」
  Gのトレンド判定が前日と変わっていたら翌日の始値を約定価格としている

3.データのある最終行までコピーする

☆ポジションの種類を計算

4.I1に「種類」と入力する
5.I37に「 =IF(AND(G35<>G36,G36="上昇"),"買",IF(AND(G35<>G36,G36="下降"),"売",I36)) 」と入力する
  前々日と前日のGが変わっていて、かつ前日のGが上昇なら買、前々日と前日のGが変わっていて、かつ前日のGが下降なら売と表示させている。Gに変更がなければ、前日のIを表示させる。

6.データのある最終行までコピーする

☆ポジションの日数を計算

7.J1に「日数」と入力する
8.J37に「=IF(G35<>G36,1,J36+1)」と入力する
  前々日と前日のGが変わっていたら1を表示させ、変わっていなかったら前日のJに1をプラスする

9.データのある最終行までコピーする

☆決済価格を計算

10.K1に「決済価格」と入力する
11.K38に「 =IF(G36<>G37,B38,"") 」と入力する
   前々日と前日のGが変わっていたらその日の始値を表示させ、それ以外は空白とする

12.データのある最終行までコピーする

☆損益を計算

13.L1に「損益」、L2に「10,000」、L3に「1,050」、K3に「0.04」と入力する
これは取引単位を10,000通貨、手数料を1,050円、スプレッドを0.04円にするため

14.L38に「 =IF(AND(K38<>"",I37="買"),(K38-H37)*$L$2-$L$3-K$3*L$2,IF(AND(K38<>"",I37="売"),(H37-K38)*$L$2-$L$3-K$3*L$2,"")) 」と入力する
   Kが空白じゃなく、かつ I が買だった場合、決済価格Kから約定価格Hを引いてその値に10,000通貨を掛算、手数料とスプレッドをマイナスしている。逆にKが空白じゃなくかつ、I が売だった場合、約定価格Hから決済価格Kを引いてそのその値に10,000通貨を掛算、手数料とスプレッドをマイナスしている。それ以外は空白としている

16.データのある最終行までコピーする
※取引通貨と手数料、スプレッドに対しては絶対参照($)が使われていることに注意しよう。  

ちょっと長かったがついてこれただろうか?
下の図を参考にして作成してほしい。

doten1.JPG 

さて、次回はこの移動平均線によるドテン売買を評価してみようとおもう。

移動平均線ドテンの評価

前回作成した移動平均線のドテン売買のテスト結果を評価してみる。

まずは、前回作成した移動平均線のドテン売買のファイルを開く。

☆累積損益を計算

1.M1に「累積損益」と入力する
2.M38に「 =SUM(L38)+M37 」と入力する
3.データのある最終行までコピーする

☆最大損益を計算

4.N1に「最大損益」と入力する
5.N37に「=MAX(M37,N36)」と入力する
6.データのある最終行までコピーする

☆ドローダウンを計算

7.O1に「ドローダウン」と入力する
8.O38に「=IF(M38-N38>=0,0,M38-N38)」と入力する
9.データのある最終行までコピーする

☆評価シートを作成

10.シートを挿入して、名前を評価シートとする

☆勝率と売買回数を計算

11.勝ち回数 (B2)
「=COUNTIF(usdデータ!L$4:L$1001,">0")」
損益の中で0より大きな数値を数える
12.負け回数 (B4)
「=COUNTIF(usdデータ!L$4:L$1001,"<0")」
損益の中で0より小さな数値を数える
13.売買回数 (B6)
「=SUM(B2,B4)」
勝ち回数と負け回数の合計
14.勝率 (A2)
「=B2/B6」
勝ち回数÷売買回数

☆期待値を計算

15.利益合計 (C2)
「=SUMIF(usdデータ!L$4:L$1001,">0")」
損益の中で0より大きな数値を合計する
16.損失合計 (C4)
「=SUMIF(usdデータ!L$4:L$1001,"<0")」
損益の中で0より小さな数値を合計する
17.損益合計 (C6)
「=SUM(C2,C4)」
利益合計+損失合計
18.平均利益 (D2)
「=C2/B2」
利益合計÷勝ち回数
19.平均損失 (D4)
「=C4/B4」
損失合計÷負け回数
20.期待値 (D6)
「=(D2*A2)+(D4*(1-A2))」
(平均利益×勝率)+(平均損失×(1-勝率)))

☆最大利益、最大損失、最大ドローダウンを計算

21.最大利益 (E2)
「=MAX(usdデータ!L$4:L$1001)」
損益の中での最大値
22.最大損失(E4)
「=MIN(usdデータ!L$4:L$1001)」
損益の中での最小値
23.最大ドローダウン (E6)
「=MIN(usdデータ!O4:O1001)」
ドローダウンの最小値

hyouka1.JPG 

評価項目は上の図のようになる。
参考にしてほしい。

idougurafu.JPG 

時折大きなトレンドを捉えてはいるものの、だましと呼ばれる多くの小さな損失
が続いてしまって結果的に大きなドローダウンを招いてしまっている。

今後このシステムを改善するためには、仕掛けを工夫する必要がありそうだ。

過去27年間の検証

前回まで25日移動平均線にしぼって検証してきましたが、今回は10日から
100日の移動平均線について検証してみました。

しかも USD/JPN を27年間も!!

下の図が移動平均線の日数を10日ずつ変えていった場合の年度ごとの損益
結果です。

27sma01.JPG

27sma02.JPG

ちょっと見にくいですが、日数が大きいほど合計金額が大きくなっているように
思えます。

移動平均線を使った売買シグナルは、日数が大きければ大きいほど、大きな
トレンドをとらえようとしますし、小さければ小さいほど、小さな動きにも反応し
やすくなります。

日数を決定する時には、全体的な収益の安定も大切ですが、どのような値幅
をターゲットにして利益を狙いに行くのかを考えるのもひとつの判断材料にな
ると思います。

そう考えれば自分のシステムの得意な動きが見えやすくなると思いますし、
上手く機能しない場合にもある程度納得して使い続けることができるのでは
ないでしょうか。

[スポンサードリンク]