シミュレーター

【成功!?】Excelでバックテストを作る!②

前回、ExcelマクロのVBAがよくわからず
関数のみで作成を開始して、失敗したバックテストツールの続きですw

もうVBAからは逃れられない・・・(ざわざわ

そもそもどうやってマクロ化すればいいんだろうか?
と考えていたら気づいてしまいました。

基本となる文字列がなくても、IF(ANDで出来るじゃん!!!!!
(円基軸:255~0、その他基軸:2.2~0)

ツイートでは間違えていますが
新規ポジは、高値>ポジ>安値
決済ポジは、高値>ポジ+利幅>安値
これでいいじゃん!!!!

MATCH(OFFSETを使って、自分でややこしくしていた・・・
マクロ化はよくわからないけど、これで少しは動作が軽くなるはず

VBAを調べてみると思っていたより面白そうだった

一つ発見をした後、ついにVBAの勉強を始めました!やるぞー

単純計算をしたくて、前回は簡単なループ計算だけ試しましたが
VBAの書き方とか、できる事とか色々調べていくとなんだか面白そう

ただ単に食わず嫌いしていただけで、やってみると面白いし
VBA内で関数も使えるし、めっちゃ便利!

そう、VBA内で関数が使えるんです!

ワークシートファンクション(worksheetfunction)を書いてから
.(ピリオド)を打つと、使える関数が表示されます。

関数を使う範囲を
With Application.worksheetfunction

End With
で囲うと、範囲内では関数が使い放題です。ヤッター

関数が使えるなら、前回をそのまま活かせますね!
ポジ新規&決済の関数も簡単になったので、より作業が加速しました。

それっぽいのが完成

前回の関数をそのままVBAに入力し
変数を利用して、できるだけ行数を減らしました。
(Twitterの画像で150欄1個分、これが12個並ぶ感じ・・・それでも多い)

最初は”1”が入らなければ、”0”を入れるようにしていたのですが
”0”を入れる処理を省き、計算後に全削除したら3分短縮しました!

ちょっとした修正で変化がわかるから、それも面白い
F8で動かしながら、どの数字が入っているとか
エラー箇所とかもわかるからめっちゃ楽しい

できた動きはこんな感じ

繰り返す回数(For x,y,z =~ To ~)を変えれば、150欄や300欄にも対応
yとzを変えれば、バックテストする時間軸も変えられます。

動作確認のため、No2まで作成して
オージー・キウイをバックテストしてみました。
(現在の設定:利幅を6NZと1.5NZ)

前回の利幅6NZとは違った結果が表示されました。
おや?と思いますが、前回は動作が重すぎて
PCからシュンシュン異音が出るぐらいだったので
処理が追い付かなかったり、飛んでたりしたのかな・・・?
なんて都合が良い様に考えてみましたww

実はまだ、全12個中の2個しか出来ていないので
もう一度よく見直しつつ完成させます。

今後の課題

今回は、複数通貨運用シミュレーター

  • ロスカットレート
  • 下落時の必要資金額
  • 維持率
    などなど

上記のことがわかるので
単純に期間内の累計利益だけがわかるツールを作りました。

なので、バックテストツールでよく見る項目の

  • 期間内の最大ポジション数
    (必ずしもMAX持っている訳ではない)
  • その時の含み損
  • その場合の必要資金額

上記はありません。

バックテストツールでよく見る項目がなく
めっちゃ単純版なのにもかかわらず
マクロ実行し出力するまでの時間が長い
(1時間足:約3.1万行の場合、No1だけで約11分50秒)

とりあえずは
複数通貨運用シミュ内に組み込めるバックテストツールができましたが
まだマネースクエア公式の日足対応版とします。
(日足:約0.5万行の場合、No1だけで約1分40秒)

今後は、出力までの時間短縮と上記項目の作り方を考えてみます。

(出力時間を犠牲にするなら、出した計算を都度消さず
最後に集計すれば上記項目を作れそうだけど
時間を気にするならそもそも作り直さないといけない気がする・・・知らんけど)

やっぱり、バックテストツールを自作している方達すごい。
為替研究所:Yuki様
『働きたくない』ガチ勢:アビ様

完成!③使い方へ続く→

【トラリピ用】バックテストツールの使い方【Excel】自分もバックテストツール作ってみたい! そんな想いから作り始めて失敗しながらもTwitterで応援して貰ったりヒントを頂きながら無事に完...
ABOUT ME
yagisan82
29歳サラリーマン 投資3年生 60万から投資を始めていきます。 毎週の利益を記録したり、固定費やお金にまつわる事を書いていきます。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

お問い合わせ