エクセルVBAによるシステムトレードソフトの作り方

エクセルVBAを使ってトレードシステムを自動構築するツールを無料で配布しています。複数の相場データに対して複数の手法を連続的に自動で検証できます。FX、先物、個別株なんでも使えます。ファイルのダウンロードはこちらから。ファイルを使いこなすことで得られるメリットはこちらで解説してます。

シートSTEP7をご覧ください。
 
ここでは、STEP6で返したマネーマネジメント指標から、実際の建玉枚数を返します。
セルO21に次のように書きこみ、オートフィルでデータの入っている最終行までワークシート関数をコピーします。
 
=IF(OR(K20="sell",K20="buy"),N20,O20)
 
この関数の意味は、
=IF(OR(K20="sell",K20="buy"),N20
前日に、sellかbuyの売買サインが出ていた場合、前日時点のマネーマネジメント指標の値
を返す
 
,O20)
 
そうでない場合、建玉枚数列の前日の値を返す
ということです。
このエントリーをはてなブックマークに追加 mixiチェック

シートSTEP6をご覧ください。
ここでは、ポジションを取る際の売買枚数を求める指標を表現します。
 
◆マネーマネジメント指標とは
ここでいうところのマネーマネジメント指標とは、ボラティリティ、資金量、リスク率などを考慮した上で求められるもので、以下のような式であらわされます。

売買枚数=資金量×リスク率÷ATR×ポイントバリュー
 
※ポイントバリューとは、1ティックごとに生じる損益のことです。たとえば、東京金は倍率が1000倍で、1ティックが1円なので、1000倍率(×1ティック(=1000 ですから、ポイントバリューは1000となります。
 
K列に、初期投資金額、リスク率、ポイントバリュー、という項目を追加しました。
 
あとで、この項目の値は絶対参照で使っていきます。
セルN21に次のように書きこみ、オートフィルでデータの入っている最終行までワークシート関数をコピーします。
=ROUNDDOWN($K$8*$K$10/100/(J21*$K$12),0)
 
この関数の意味は、
 
$K$8*$K$10/100/(J21*$K$12)
初期投資金額×リスク率÷ATR×ポイントバリュー
 
ROUNDDOWN ,0
上で計算した値の小数点以下を切り捨て
ということです。
 
※この時点では、投資金額の値を初期投資金額の絶対参照していますが、これは仮の状態です。本来ならば、損益の増減に合わせマネーマネジメント指標を返します。この点については、あとから修正していきます。

このエントリーをはてなブックマークに追加 mixiチェック

シートSTEP5をご覧ください。
 
セルM21に次のように書きこみ、オートフィルでデータの入っている最終行までワークシート関数をコピーします。
=IF(K20="sell","sell",IF(K20="buy","buy",M20))
 
この関数の意味は、
=IF(K20="sell","sell",
もし、前日にsellの売買サインが出ていたら、sellを返す
 
IF(K20="buy","buy",
そうではない場合、前日にbuyの売買サインが出ていたら、buyを返す
 
M20))
 
いずれでもない場合、ポジションの種類の列の1行前を返す
ということです。
 
これで約定値段の列に並んで、その約定値段で取ったポジションが売りなのか買いなのかを表現できたので、後々、この列を参照してシートを構築していくことになります。
このエントリーをはてなブックマークに追加 mixiチェック

このページのトップヘ