SSブログ

システム運用後の手数料計算 [システムトレード]

システムの損益に手数料を反映させること自体は、そんなに難しいことではありません。売買の際の損益から手数料分を差し引けばいいだけです。
しかし、ある期間でバックテストを行なった後にシステム運用を開始し、運用後の損益を求めていく場合、手数料計算はかなり面倒になります。

システムに手数料を適用した場合、運用後のみに手数料を乗せることは通常いたしません。運用前も運用後も、等しく手数料を課すことになります。
その場合、運用開始後においては若干の補正を行なう必要があります。

例えば、運用開始日が買いシグナルもしくは売りシグナルが出た翌日であれば、特に補正の必要はないのですが、そうでない場合には、補正が必要となります。
何故ならば、システム上は売買のタイミングで手数料を計上するのですが、システムで建て玉をHOLD中に運用を開始すると、その時の手数料が計上されないからです。

手数料を細かく規定することは、証券会社の違いなどもあって現実的ではありませんので、大きくは1株当りの手数料(定額)と、株価に対する割合としての手数料(変額)に分かれることになります。
実のところ、これだけであればそんなに面倒なことはありません。IF関数を用いて丁寧に条件を振り分けていけば、解決することが出来ます。

やっかいなのは、信用金利を考慮した場合です。この場合、金利計算は立会日基準ではなくカレンダー日基準で行なう必要があります。
システムは大抵立会日基準で記述されますので、まずはそれをカレンダー日に変換しなければなりません。

そのためには、OFFSET関数やINDIRECT関数を用いて対応する行を日付に変換し、それらの差分を取ってやることになります。
この処理だけでも、結構面倒な計算式になります。

更には、システム上の金利計算と運用開始後の金利計算とのズレを、補正してやらなければいけません。
金利は建値に対して掛かるわけですが、システム上では当然、買いまたは売りシグナルが出た翌寄付きの株価が基準になります。

しかし、そのタイミング以外で運用を開始した場合は、金利の基準となる株価がシステム上のものとは異なってしまうわけです。
また、運用開始時点からそのトレードの基点(直近の買いまたは売り)までの間の金利を差し引く必要も生じます。

システム上の基準株価と運用開始時の株価とのズレを補正するには、両者の差額にトレードの残日数(しかもカレンダー日基準)を掛けて、それを差し引いてやらなければなりません。
この処理は、かなり複雑なものとなってしまいます。

しかもそれに加えて、運用開始以降に手仕舞いがなく最初のトレードが継続している場合は、これらの金利補正を行う必要はありません。
何故なら、システム上の金利は、あくまで返済時に損益に付加されるからです。返済を迎えていない状態では、補正の必要はありません。

言葉で書くとこのような事なのですが、これを実際にエクセルシートに落とし込むとなると、途方に暮れてしまうかもしれません。
私もここまで一進一退の状態が続き、今日になってようやく解決の糸口が見えてきたところです。

昨日のコラムでも話しましたように、とにかく細かく分類することです。そして、出来るだけ線形関係(各項目の和で示せる)に持ち込むことです。
これは、オブジェクト指向にも通じることではないかと思います。

今日はちょっと分かりにくい内容だったかもしれません。この内容を有用だと思える人はほとんどいらっしゃらないかもしれませんが、実用的なトレーディングシステムを組む上では、避けて通ることが出来ないことなのではないかと考えます。

nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:

nice! 0

コメント 0

コメントを書く

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

Facebook コメント

トラックバック 0

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