2011年04月29日 15:10

Excelで簡単にオプティマルfを計算する方法

P7090428


Excelとシステムの過去の損益のデータがあれば、
オプティマルfを計算できるので解説してみます。

オプティマルfは過去の損益の幾何平均を最大にする値なので、
まず幾何平均の数式は、
gm
ExcelだとGEOMEANという関数になります、

では、早速計算シートをExcelで作ってみます。

opf1jpg

当初資金は適当な数字をB3のセルに入力しておきます、
ここでは一応50万にしてます。

次にシステムの損益をB5以下に入力します、
とりあえずB5からB284まで損益のデータを入れてます。

システムのいままでの最大損失を抽出しておきます、
C3のセルに=MIN(B5:B284)と入力して最大損失を抽出します。

増減率はトレード毎の投入資金の増減を計算します、
C5のセルに=1+$D$3*(-B5/$C$3)とセルの相対参照と絶対参照に注意して入力して、
一番下まで数式をコピーしてください、
数式のコピーは数式を入力したC5のセルを選択して、
セルの右下にポインタを乗せるとプラスの形になるのでそこでダブルクリックすると簡単です。

fは総資金の何パーセントを投資するかの値で、
0から1までの適当な数字を入れておきます、
1だと総資金の全額を投資することになります。

損益率は当初資金が何倍になっているかを表しています、
まずD5のセルに=C5と入力して、
次にその下のD6のセルに=D5*C6と入力して、
D6の数式を一番下までコピーしてください。

トレード回数を数えます、
E3のセルに=COUNTIF(B5:B284,"<>0")と入力して、
トレード数をカウントします。

現在利益は現時点での総資金量です、
E5のセルに=D5*$B$3と数式を入力して、
一番下まで数式をコピーします。

次に幾何平均を計算します、
F3のセルに=D284^(1/E3)と入力して、幾何平均を計算してください。

枚数はトレード毎の取引枚数です、
fの値をいくらにするかで変化します、
F5のセルに=B3/($C$3/-$D$3)と入力してください。

総損益は、セルG3に=E284と入力して、
一番最後の現在の総資金を求めて終了です。

あとH4からH23まで後でVBAで計算するときに使うので、
0.05刻みで1までの数字を入れておきます。

これでオプティマルfを計算する準備ができました、
実際の計算には収束計算が必要なので、
Excelのソルバーを使った方法とVBAを使った方法を解説します。

ソルバーを使う方法
opf2

Excelのデータタブ→分析→ソルバーで、ソルバーを表示して、
目的セルを$F$3に、
目標値は最大を選択して、
変化させるセルは$D$3を選択します、
それで実行すると、D3のセルにオプティマルfが計算されます。

VBAを使った方法
Excelの開発タブ→Visual Basicで、Visual Basicエディタを起動して、
以下のコードを打ち込みます、

Option Explicit
Sub opt()

Range("h4").Select

Do Until ActiveCell.Value = ""

Range("d3").Value = ActiveCell.Value
ActiveCell.Offset(, 1).Value = Range("g3").Value
ActiveCell.Offset(1).Select

Loop

End Sub

これで実行すると、
I4からI23までに0.05刻みのfの値が計算できます、
これをグラフにすれば、グラフの一番高いところがオプティマルfです。

opf3




トラックバックURL

アクセスカウンター
  • 今日:
  • 昨日:
  • 累計: