2021.04.07

VNPY:中国で総合的な定量的取引フレームワーク(その2)

こんにちは。次世代システム研究室のY.R.です。外国人です。近来定量的取引の研究調査に参加していますが、こちらで勉強したことを皆さんと共有致します。宜しくお願い致します。

定量取引の紹介

定量取引のことをと言えば、はジェームズ・シモンズと言う化のことを話せなければないと思います。シモンズはそもそも有名な数学者でございます。数学理論を利用して投資ポリシーを作って大成功になりました。例えば、シモンズが管理したRenTech基金1988年-2008年にわたって、年間の投資利益率は35%を超えました。

シモンズを代表者として、トレードの方々は定量トレード者と呼ばれています。


簡単にすると、定量的取引は、機会を認識するためにデータ分析、数式と計算に依存する金融市場での技術的な投資戦略。定量的取引戦略では、コンピューターソフトウェアプログラムとスプレッドシートを使用して、取引行動のパターンや傾向を追跡します

それに対して、金融専門家の洞察と分析に基づいた投資手法である定性的取引に代わるものという話も出ています[1]。

定量取引は先物取引市場の商品投資顧問(英:Commodity Trading Advisor)とFXトレード: エキスパート・アドバイザー(英:Expert Advisor)でよく使われています。ロボットアドバイザー(英:Commodity Trading Advisor)というビジネスでも利用されました。

定量取引は全体的に三種類に分けています。
  • 高頻度取引(HFT):超高速で取引を実行して、瞬間のチャンスを取って利益を取れることに目指しいます。
  • 商品取引アドバイザー(CTA):動的ポジション、市場のトレンドを判断することが必要であります。
  • アービトラージ(Arbitrage):特に複数の資産に関わっています。例えば、二つの資産の価格差を利用して、利益を取ることに目指しています。
今回の研究調査でCTAとアービトラージを検証しました。

VNPYの紹介

定量取引の最終目的は勿論素晴らしい取引ポリシーの開発することになります。しかし、ポリシーの開発を周り、いくつ少し複雑なステージがあります。こんなに複雑なシステムの開発と引き続き運用は簡単的なことではないと考えられています。


だから、普通のシステムの開発と似ている、様々な開発のフレームワークが提出させていました。


GITHUBの定量取引フレームワークに対して、2020年9月のある調査[5]によると、中国からのvnpyは#1になっていました。前回VNPYについて、簡単に紹介いたします[2]。その時、VNPYのバージョンは1.9.2になりました。更に、使い方とデプロイも複雑でした。今度の研究調査のきっかけ、筆者はVNPYバージョン2.1.8の使い方、構築やソースコードまで深く調べるつもりです。

そもそもVNPYの開発は陳暁優というかたにより改善されました。陳さんは技術者ではなくて、先物取引市場の取引者になります。だから、VNPYがリリースして以来、中国のトレーダー間で大人気になっています。

特に、VNPYがオープンソースになって以来、多くの技術者やレーダーもVNPYの開発に参加しました。現在、VNPYの様子は以下のように少し大きいオープンソースプロジェクトになっております。


中国人の定量取引業界で大人気になっています。しかし、私は知っている限りでは、大部分の使用者は正式的に使用する前に、先ず自分たちの要求に応じてVNPYを簡易化します。

こちらはVNPYのアーキテクチャを紹介いたします。

VNPYのGUIの利用方が多いです。GUIを使用せずにVNPYをプロセスのかたちで運用もできます。更にVNPYはRPCを通してC/Sモードで運用もできます。

左側はVNPYのデータインプットになります。現在複数の中国の有名なデータプロバイダに接続が可能です。右側は取引のインターフェースになります。その中で、「CTP」はAPIみたいなインターフェースです。使いにくいです。先物とオプションのトレードができます。「Ksgold」は名前通りに金など金属に向けになります。「TiqnQin」はより新たな取引のAPIになります。先物とオプションのトレードに向けています。シミュレーションに設定できますから、私も試したことがあります。FXのトレードでMT5とIBは世界でよく使用されます。暗号資産の取引に向けのAPIを含めて様々なAPI増えています。VNPYの仕様に沿ってデータの接続も取引のAPIも追加できます。

VNPYのカスタムが特に高いです。現在イベントエンジンとマインエンジンは以外、他のエンジンとトレードポリシーは全部プラグインのような存在になります。

VNPYでバックテストの検証

これから、複数の伝統的な先物市場でよく利用させているポリシーを暗号資産の市場で検証してみます。

初めて検証した取引ポリシーはCTAと呼ばれています。先物取引市場で常に使われる取引方法になります。暗号資産の市場で検証してみます。

VNPYのおかげで、いくつ有名なポリシーも実装されています。筆者もたくさんの参考資料を勉強して、VNPYを利用して、一つのポリシーを実装しました。複数の資産を組み合わせて、ポートフォリオを作るという方法投資業界でよく使われている方法になります。

今回の研究調査で、ポートフォリオのパフォーマンスも検証しました。更に、定量取引ポリシーも複数のパラメータが持っています。機械学習と似ています。VNPYにブルート・フォース (英語:Brute force)と進化アルゴリズムの二つパラメータチューニング方法があります。今回の研究では進化アルゴリズムはマインになります。
  • データ
    • データソース: Binance、分間単位、先物の取引データ[3]
    • パラメータチューニング: BTC-USDT(2020/09/12-2021/01/31)
    • テスト: BTC-USDT(2021/02/01-2021/03/20)
    • ポートフォリオと統計的アビトラを試す: ZTC-USDT(2021/02/01-2021/03/20)
  • パラメータチューニング
    • DEAPで遺伝的アルゴリズムによる特徴選択[4]

Cincoというポリシーを利用して、僅かな利用を取れました。

BTCUSDTとZECUSDTの研究は以下になります。


上記の単一暗号資産の結果と比べると、ほぼ同じく収益レベルに至りました。

皆さんがご存知かと思いますが、現在の暗号資産の市場で、BTCは圧倒的な状態になっています。BTCと高い関連性が持っている暗号資産が多いです。今のところ、暗号資産でボラティリティを抑えることは無理であるかもしれないと考えます。今後、金、銀と石油など伝統な資産と組み合わせて良い取引ポートフォリオを作れる可能であると考えます。

CTAの取引と全然違って、複数の取引資産を利用して、アービトラージポリシーも作られます。


上記のグラフで示した通り、二つ関連性が高い株でございます。

二つ株の価格差は大体安定的な時系列になってあります。もし、状態的に高くすぎると(あります低すぎる)ところに入ると、アビトラのチャンスになれるかもしれないと考えられます。価格差は中間線に近づいたら、その前のポジションをクリアいたします。

これから、統計的アビトラの方法検証してみます。


収益の分布を見ると、結果は良くないと判断できますね。原因も簡単に調べました。


BTCとZECの相関性は確かに高いですが、二つの価格差は高くなっています。検証の時期でBTCの価格は5倍以上増加しましたが、ZECの場合で3倍ほど増えていました。つまり、ミーンリバージョンという統計的アビトラの理屈はあまり起こっていませんでした。こんな場合で統計的アビトラよく動けないと考えられています。

サマリーと今後の課題

こちらはでVNPYで複数の取引ポリシーを検証しました。実際に、万能のポリシーがあまりないと思われています。それぞれのポリシーに深く理解して、よく発揮できるシナリオを認識することは重要なことであると思います。

VNPYは大人気ですが、VNPYの性能特にイベント エンジンに心配している方が多いです。これから、性能強化バージョンバージョンあるいは性能高いフレームワークに注力したいと思います。

「VNPY:中国で総合的な定量的取引フレームワーク」の発表資料


終わり

次世システム研究室では、ビッグデータ解析プラットホームの設計・開発を行うアーキテクトとデータサイエンティストを募集しています。興味を持って頂ける方がいらっしゃいましたら、ぜひ 募集職種一覧からご応募をお願いします。 一緒に勉強しながら楽しく働きたい方のご応募をお待ちしております。

  • Twitter
  • Facebook
  • はてなブックマークに追加

グループ研究開発本部の最新情報をTwitterで配信中です。ぜひフォローください。

 
  • AI研究開発室
  • 大阪研究開発グループ

関連記事