SSブログ

システムにおける性能指標の定義と位置付け(3):PFと損益レシオ [システムトレード]

損益に関係する性能指標は、通常は単株基準にて表されます。しかし、分析期間中における株価水準が大きく変動していたりする場合、単株基準では性能を的確に示すことが出来ない可能性があります。
そのような時に、単利基準や複利基準で性能指標を表現すると、適切な結果を得ることが出来る場合があります。

例えば、PFや損益レシオを単利基準で表すと、次式のようになります。
単利基準の場合は、
  単利PF   =総利益率/|総損失率|
         =-総利益率/総損失率 (総損失率<0)
  単利損益レシオ=平均利益率/|平均損失率|
         =-平均利益率/平均損失率 (平均損失率<0)

複利の場合については一先ず置いておいて、一例として、8001伊藤忠商事の累乗平均逆張りドテンシステムで、単株及び単利におけるPFや損益レシオを求めてみます。なお、分析期間は1993年11月1日~2021年1月19日の約27年間となっています。

単株(通常)の場合
  PF   =1.30
  損益レシオ=0.82

単利の場合
  平均利益率=2.51%
  平均損失率=-3.02%
  トレード数=1,222回
  勝率   =61.29%
より、
  PF   =1.32
  損益レシオ=0.83
となります。

この銘柄は分析期間中における株価の差が最大20倍近くありますが、単株と単利におけるPFと損益レシオに大きな違いはありません。
比較のために、単株と単利の場合の資産カーブを以下にそれぞれ示します。
伊藤忠商事_単株_資産カーブ_20210121a.png
伊藤忠商事_単利_資産カーブ_20210121b.png

明らかに単利基準の方が良好な直線性を有していますが、単株基準においても資産カーブが極端に階段状に変化している場面は見られません。
このことが、PFや損益レシオに大きな違いが生じていない理由だと考えられます。

一方、単株と単利とで資産カーブ形状に大きな違いが生じている事例として、9501東京電力HDRSI逆張りドテンシステムを見てみます。
次図は、単株と単利の場合のそれぞれの資産カーブです。なお、分析期間は1993年11月1日~2021年1月21日の約27年間です。
東京電力HD_単株_資産カーブ_20210121c.png
東京電力HD_単利_資産カーブ_20210121d.png

やや意外なことに、単株基準の方が資産カーブの直線性が高いことが分かります。
これらのPF及び損益レシオを求めると、以下のようになります。

単株(通常)の場合
  PF   =1.58
  損益レシオ=1.16

単利の場合
  平均利益率=6.17%
  平均損失率=-3.93%
  トレード数=296回
  勝率   =57.77%
より、
  PF   =2.15
  損益レシオ=1.57
となります。

8001伊藤忠商事の場合とは異なり、単株と単利とでPFや損益レシオに大きな違いが生じています。この理由は、資産カーブの直線性の違いにあると考えられます。
この例では、単株基準の方が直線性が良好でしたが、当然その逆の場合もあります。

以上のように、単株や単利の場合のPFや損益レシオについては、単に"額"と"率"とを置き換えて考えれば良いだけです。ただし、各基準における値の解釈については、よく注意する必要があります。
では、複利基準におけるPFや損益レシオはどのように考えれば良いのでしょうか。

複利基準におけるPFについては、単株や単利の事例に倣うと、
  複利PF=累積利益率/累積損失率
となりそうですが、以下に示すように、これだと不合理な事態が生じてしまいます。

上述した8001伊藤忠商事のシステムで、実際に累積利益率と累積損失率を求めてみました。ただし、ここでは簡単のため、簿価基準の結果としています。
なお、KFシステムクリエイターでは標準評価項目として、累積利益率と累積損失率は求めていません。ここでは検証用として算出しています。

結果は次の通りです。
  累積利益率=9.497×10^7
  累積損失率=1.873×10^(-7)
ここでX^kは、Xのk乗を表します。10^7ならば、10の7乗ということです。

両者の比を取ると、上述した仮の複利PFが求まります。
  複利PF(仮)=5.070×10^14
この結果に何らかの意味があるようには到底見えません。

そこで、PFについては後回しにして、先に損益レシオを求めてみます。

複利基準の場合の損益レシオは、単株や単利の場合に倣って、
  複利損益レシオ=複利利益率/|複利損失率|
         =-複利利益率/複利損失率
とすれば良さそうです。

ここで、複利利益率は、勝ちトレード当たりの累積利益率で、次式で定義します。
  複利利益率=(累積利益率)^(1/勝ち数)-1
       =(累積利益率)^(1/(勝率×トレード数))-1
同様に、複利損失率は、負けトレード当たりの累積損失率で、
  複利損失率=(累積損失率)^(1/負け数)-1
       =(累積損失率)^(1/((1-勝率)×トレード数))-1
となります。

上述した8001伊藤忠商事のシステムでは、
  複利利益率=2.48%
  複利損失率=-3.22%
となります。

これから複利損益レシオを求めると、
  複利損益レシオ=0.77
という結果が得られます。これは単株や単利の場合と大差なく、妥当な水準であると言えます。

ここで、単株や単利の場合で得られたPFと損益レシオの関係を用いると、複利PFは次式で表すことが出来ます。
  複利PF=複利損益レシオ/(1/勝率-1)
実際に数値を代入すると、上記システムでは、
  複利PF=1.22
が得られます。

ちなみに、上述した9501東京電力HDシステムの場合、複利運用における各数値を求めると、以下のようになります。
  累積利益率  =6.071×10^3
  累積損失率  =2.639×10^(-3)
  複利利益率  =5.23%
  複利損失率  =-4.64%
  複利損益レシオ=1.13
  複利PF   =1.54

これらの関係を見ると、PF及び損益レシオについて、
  複利<単株<単利
の関係になっていることが分かります。ただし、これはわずか2例の結果に過ぎず、この関係が普遍的であるかどうかについては、更なる検証が必要です。

なお、複利利益率や複利損失率と似た性能指標として、年率利益率と年率損失率があります。これらは、次式で定義されます。
  年率利益率=(累積利益率)^(246/統計期間)-1
  年率損失率=(累積損失率)^(246/統計期間)-1

ここで、246は平均年間立会日数、統計期間はトレード開始日から直近日までの日数です。分析期間とは異なりますので、注意が必要です。通常、統計期間<分析期間となります。

年率利益率は、複利運用した場合の年当たり利益率を表します。年率損失率は、複利運用した場合の年当たり損失率です。両者を用いると、簿価基準の年率リターンを求めることが出来ます。
  簿価年率リターン=(累積損益率)^(246/統計期間)-1
          =(累積利益率×累積損失率)^(246/統計期間)-1
          =(累積利益率)^(246/統計期間)×(累積損失率)^(246/統計期間)-1
          =(1+年率利益率)×(1+年率損失率)-1

前述の8001伊藤忠商事システムと9501東京電力HDシステムの年率利益率、年率損失率、簿価年率リターンは、それぞれ以下のようになります。

8001伊藤忠商事累乗平均逆システム
  年率利益率   =97.84%
  年率損失率   =-43.75%
  簿価年率リターン=11.28%
9501東京電力HDRSI逆システム
  年率利益率   =38.06%
  年率損失率   =-19.74%
  簿価年率リターン=10.82%

ところで、前述したようにKFシステムクリエイターでは累積利益率と累積損失率を直接的には求めていません。これらは累積損益率として一緒くたにして計算しています。
そのため、これらの値を計算するためには、別途演算用の列をワークシート上に用意して計算する必要があります。

しかし、KFシステムクリエイターではエクセル2003で利用できる256列を全て使用しており、ロジックによっては演算用の新たな列を、システムシート上に設けることが出来ない場合があります。もちろん、エクセル2007以降を使用すれば、257列以降を用いて演算することが可能ではあります。
そこで、既存の性能指標を用いて、近似的に累積利益率や累積損失率を求める方法を以下に記します。

前回の記事で、累積利益率を求める式を次式で表しました。
  累積利益率=Π(1+P(i)/F(i)) (i=1 to 勝ち数)
ここで、P(i)は各トレードにおけるi番目の勝ちトレードの利益、F(i)はそれらのトレードに投じた資金額です。

この式の両辺の自然対数を取ると、勝ち数をnとして、
  ln(累積利益率)=ln(1+P(1)/F(1))+ln(1+P(2)/F(2))+・・・+ln(1+P(n)/F(n))
となります。

ここで、関数ln(1+x)をテイラー展開すると、
  ln(1+x)=x-(1/2)x^2+(1/3)x^3+・・・
となります。

そこで、右辺をテイラー展開し、3次以上の項を省略すると、
  ln(累積利益率)≒Σ(P(i)/F(i))-(1/2)×Σ(P(i)/F(i))^2 (i=1 to n)
が得られます。

ここで、右辺第2項に注目します。実はKFシステムクリエイターでは、利益率標準偏差や損失率標準偏差を性能指標として算出しています。
これらを用いれば、右辺第2項を算出済みの性能指標で表すことが可能です。

利益率標準偏差をsとし、P(i)/F(i)をu(i)とすると、i=1 to n として、
  s=√(Σ((u(i)-u)^2)/(n-1))
となります。ここで、uはu(i)の平均値を表します。

両辺を2乗し(n-1)を掛けると、次式のようになります。
  (n-1)×s^2=Σ((u(i)-u)^2)
        =Σ(u(i)^2)-2×Σ(u(i)×u)+Σ(u^2)
        =Σ(u(i)^2)-2×u×Σu(i)+n×u^2

これをΣ(u(i)^2)について解くと、
  Σ(u(i)^2)=(n-1)×s^2+2×u×Σu(i)-n×u^2
となります。

ここで、
  Σu(i)=総利益率
     =勝ち数×平均利益率
  u=平均利益率
を意味します。

したがって、
  ln(累積利益率)≒Σu(i)-(1/2)×((n-1)×s^2+2×u×Σu(i)-n×u^2)
         =総利益率-(1/2)×((勝ち数-1)×利益率標準偏差^2+2×平均利益率×総利益率-勝ち数×平均利益率^2)
         =勝ち数×平均利益率-(1/2)×((勝ち数-1)×利益率標準偏差^2+勝ち数×平均利益率^2)
が得られます。

これから、
  累積利益率=e^ln(累積利益率)
として、累積利益率の近似値を求めることが出来ます。

累積損失率については、これらの計算式において、利益率を損失率、勝ち数を負け数に置き換えればOKです。

これらを、前述の8001伊藤忠商事システムと9501東京電力HDシステムについて実際に求めてみると、次のようになります。後ろに続く[]内は、正確な値からの誤差を示します。

8001伊藤忠商事累乗平均逆システム
  累積利益率=9.297×10^7 [-2.11%]
  累積損失率=2.416×10^(-7) [+28.99%]
9501東京電力HDRSI逆システム
  累積利益率=8.573×10^2 [-85.88%]
  累積損失率=3.853×10^(-3) [+46.00%]

8001伊藤忠商事における誤差は、比較的小さいことが分かります。一方、9501東京電力HDにおける誤差は、かなり大きくなっています。特に、累積利益率は桁が違うほど大きな差異となっています。

この理由は、9501東京電力HDシステムの最大利益率が246.48%と極めて大きいためです。そもそも、ln(1+x)のテイラー展開が収束する条件は、xが-1<x≦1となる時だけです。
この場合、x=246.48%=2.4648は1より大きく、この値に対してテイラー展開を適用したこと自体が間違っていたことになります。ただし、収束を考えない場合はその限りではありません。

8001伊藤忠商事システムの最大利益率は22.00%、最大損失率は-56.75%、9501東京電力HDシステムの最大損失率は-63.92%で、これらに対してテイラー展開すること自体は問題ありません。
ただし、特に累積損失率に関しては、比較的大きな誤差となっています。

累積利益率や累積損失率の近似値を求める段階において、利益率や損失率の3乗以上の項は切り捨てていました。結局、これらの項の合計が誤差となっているわけです。
ただし、利益率の全てが最大利益率ということは当然あり得ず、実際には平均利益率から最大利益率の間までのどこかに、均衡点が存在することになります。

例えば、8001伊藤忠商事システムの累積利益率の場合、切り捨てた3乗の項によって誤差が生じたと考えると、最大利益率に対しては、22.00%の3乗の3分の1の勝ち数倍、すなわち265.845%、平均利益率に対しては、2.51%の3乗の3分の1の勝ち数倍、すなわち0.395%となり、実際の近似値の誤差2.11%はその中間となります。

逆に、誤差が2.11%となる利益率を求めると、4.39%ほどとなります。これは、平均利益率と利益率標準誤差の和である4.89%に近い値となっていることが分かります。

同様に、他の残りの誤差からそれが得られる利益率や損失率を求めると、8001伊藤忠商事システムの累積損失率では12.25%、9501東京電力HDシステムの最大利益率では24.70%、同損失率では22.27%となります。
これらの平均と標準偏差との和は、それぞれ8.53%、26.40%、13.32%となっています。利益率の場合は平均と標準偏差との和の方が大きく、損失率の場合は小さいことが分かります。

この関係を用いて、これらを補正項として加減してやれば、より正確な値を得ることが出来ると考えられます。

補正項をδとすると、累積利益率の場合、
  δ=(1/3)×勝ち数×(利益率標準偏差+平均利益率)^3 (平均利益率>0)
累積損失率の場合、
  δ=-(1/3)×負け数×(損失率標準偏差-平均損失率)^3 (平均損失率<0)
となります。

これを、2乗の項まで求めたln(累積利益率)やln(累積損失率)に加えてやれば、補正後の値が得られます。
これまで同様、実際に計算した結果を、以下に示します。

8001伊藤忠商事累乗平均逆システム
  累積利益率=9.573×10^7 [+0.80%]
  累積損失率=2.190×10^(-7) [+16.92%]
9501東京電力HDRSI逆システム
  累積利益率=2.447×10^3 [-59.69%]
  累積損失率=3.491×10^(-3) [+32.28%]

補正なしの場合と比べて幾分マシにはなりましたが、まだかなりの誤差があります。
そこで、最初に切り捨ててしまった3乗項を取り込むことを考えてみます。

今、(u(i)-u)^3を展開してみます。
  (u(i)-u)^3=u(i)^3-3×u×u(i)^2+3×u^2×u(i)-u^3

これをu(i)^3について整理すると、
  u(i)^3=(u(i)-u)^3+3×u×u(i)^2-3×u^2×u(i)+u^3
となります。

両辺の総和を取って整理すると、
  Σ(u(i)^3)=Σ((u(i)-u)^3)+3×(n-1)×u×s^2+n×u^3
が得られます。ここで、nは勝ち数、sは利益率標準偏差です。

ここで、Σ((u(i)-u)^3)について考えます。これは偏差の3乗和であり、その値は勝ち数や標準偏差に依存することが予想されます。
単なる偏差の総和であればその値は0になるのですが、3乗和の場合はそうとは限りません。ちなみに、2乗和の場合は全ての項がプラスであるため、必ず有限の正の値を取ることになります。

そこで、これを次式のように仮定します。
  Σ((u(i)-u)^3)=a×n×s^3

定数aの値を変えて実際のシステムに当てはめてみると、a=3の場合が最も実際の値に近くなることが分かりました。そこで、この項を次式で近似してみます。
  Σ((u(i)-u)^3)≒3×n×s^3

ただし、これは利益率の場合であり、損失率の場合は次式になります。
  Σ((u(i)-u)^3)≒-3×n×s^3

これを3乗和の式に代入すると、
  Σ(u(i)^3)≒3×n×s^3+3×(n-1)×u×s^2+n×u^3

したがって、3次の補正項εは、
  ε=(1/3)×Σ(u(i)^3)
   =n×s^3+(n-1)×u×s^2+(1/3)×n×u^3 (u>0)
   =-n×s^3+(n-1)×u×s^2+(1/3)×n×u^3 (u<0)
となります。

以上から、累積利益率や累積損失率の近似値を求めると、次のようになります。

8001伊藤忠商事累乗平均逆システム
  累積利益率=9.529×10^7 [+0.34%]
  累積損失率=2.128×10^(-7) [+13.61%]
9501東京電力HDRSI逆システム
  累積利益率=5.497×10^3 [-9.45%]
  累積損失率=3.319×10^(-3) [+25.77%]

誤差が大分小さくなりましたが、まだ結構大きいものもあります。ただ、これは累積値における誤差であり、年率換算、もしくはトレード毎の誤差はそれよりも小さくなります。
これらの近似値を用いた複利利益率や複利損失率、年率利益率や年率損失率は、以下のようになります。

8001伊藤忠商事累乗平均逆システム
  複利利益率=2.48% [+0.02%]
  複利損失率=-3.20% [-0.81%]
  年率利益率=97.86% [+0.02%]
  年率損失率=-43.48% [-0.61%]
9501東京電力HDRSI逆システム
  複利利益率=5.23% [-1.17%]
  複利損失率=-4.64% [-3.78%]
  年率利益率=38.06% [-1.33%]
  年率損失率=-19.74% [-3.47%]

また、これらから複利PF及び複利損益レシオ、簿価年率リターンを求めると、次のようになります。

8001伊藤忠商事累乗平均逆システム
  複利PF    =1.23
  複利損益レシオ =0.78
  簿価年率リターン=11.83%
9501東京電力HDRSI逆システム
  複利PF    =1.54
  複利損益レシオ =1.13
  簿価年率リターン=10.81%

相対誤差は示しませんが、前述したこれらの正確な値と、ほとんど差がないことが分かります。

後半は話が大分脱線してしまいましたが、今回はプロフィットファクター(PF)及び損益レシオについて解説しました。併せて、複利利益率や複利損失率、年率利益率や年率損失率、累積利益率や累積損失率、簿価年率リターンについても説明いたしました。

大分長くなりましたので、今回はここまでといたします。

nice!(0)  コメント(0) 
共通テーマ:

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

Facebook コメント

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。