自家製クオンツ

ソフトウェア技術を使って金融や投資の考察をしています。

MagicalNutsとは?

f:id:yooce:20211116111312p:plain

ひとりアドベントカレンダー1日目です。今日はまず、MagicalNutsとは何なのかを書いておきたいと思います。

MagicalNutsは元々、私が個人で開発、使用していた投資検証「Windowsアプリケーション」だったのですが、この度、C#による投資検証ライブラリとしてリリースすることにしました。既に、GitHubやNuGetで公開済みです。今年のアドベントカレンダーで、少しずつ解説していければと思います。

github.com

www.nuget.org

ご興味を持って読んでいただいているところ、いきなりお断りで恐縮なのですが、MagicalNutsはダウンロードしてそのまま投資検証ができるライブラリではありません。あくまで「部品」でしかないので、MagicalNutsを使ってご自身で投資検証プログラムを書いていただく必要があります。特に、MagicalNuts自身は株価データを持たないので、最初の敷居がそれなりに高いのではないかと思っています。

さて、MagicalNutsにはどんな機能が含まれるのかということですが、結果的に次の10個のパッケージに分かれることになりました。当初の想定より多くなってしまったのですが、必要に応じて選択いただくイメージを持っています。

MagicalNuts.Primitive

ロウソク足や銘柄情報など、他のパッケージでも使用する基本的なクラスを含むパッケージです。

MagicalNuts.UI.Base

他のUIパッケージでも使用する基本的な描画用クラスを含むパッケージです。

MagicalNuts.AveragePriceMove

夕凪さんが書籍「スタバ株は1月に買え!」で紹介しておられた「平均値動きの推移」を計算するパッケージです。平均値動きの推移については過去記事をご覧ください。

yooce.hatenablog.com

MagicalNuts.UI.AveragePriceMove

平均値動きの推移をグラフ化するためのパッケージです。下図のようなグラフを描画できます。

f:id:yooce:20201020171404p:plain

MagicalNuts.ShareholderIncentive

羽根英樹さんが書籍「イベントドリブントレード入門」で紹介しておられた、株主優待権利付き最終日前後の値動きを検証するパッケージです。詳細は過去記事をご覧ください。

yooce.hatenablog.com

MagicalNuts.UI.ShareholderIncentive

株主優待権利付き最終日前後の値動きをグラフ化したり、表を表示するパッケージです。頑張れば、下図のようなアプリケーションを実装できます。

f:id:yooce:20201106060050p:plain

MagicalNuts.Indicator

移動平均ボリンジャーバンドATRMACDなどの基本的なインジケーターを計算するパッケージです。後述のMagicalNuts.UI.TradingChartやMagicalNuts.BackTestでも使用します。

MagicalNuts.UI.TradingChart

株価チャートやインジケーターを表示するパッケージです。これを駆使して、下図のようなアプリケーションを実装できます。

f:id:yooce:20211116202016p:plain

MagicalNuts.BackTest

売買戦略のバックテストを行うパッケージです。

MagicalNuts.UI.BackTest

売買戦略のバックテスト結果をグラフ化したり、表を表示するパッケージです。ここでも努力次第で、下図のようなアプリケーションを実装できます。

f:id:yooce:20211116205411p:plain

対応フレームワークは、MagicalNuts.UIから始まるパッケージが最新の.NET 6、それ以外のパッケージが.NET Standard 2.0と2.1の両対応で、後者は.NET Coreや.NET Frameworkからも利用できます。

こうやって改めてまとめてみると、これまでにいろいろ実装してきたなぁと思います。Windowsアプリケーション版MagicalNutsに実装した機能は他にもあるのですが、今回のライブラリ化にあたっては、その中から私が今でも使い続けている機能を抽出しました。このうちのどれかが、どなたかのお役に立てれば良いなと思います。