「QuantCode-Bench: A Benchmark for Evaluating the Ability of Large Language Models to Generate Executable Algorithmic Trading Strategies」
大規模言語モデル(LLM)は一般的なプログラミングタスクでは優れたパフォーマンスを発揮しますが、実行可能なアルゴリズム取引戦略を生成する能力については未だ探求の余地があります。本稿では、Backtrader フレームワークを中心に据え、400 件のタスクで構成され、シングルターンとマルチターンの両方の対話設定を備えたベンチマーク「QuantCode-Bench」を提案します。4 段階の評価プロセスを採用し、モデルの 4 種類の能力を区別して評価します。実験の結果、シングルターン設定では最先端モデルのコンパイル率は高いものの、その後の段階でのパフォーマンスは芳しくなく、マルチターン設定では性能が向上することが示されました。ただし、一部の失敗は自然言語による仕様の誤解に起因していることも明らかになりました。
要約
大規模言語モデルは一般的なプログラミングタスクでは優れたパフォーマンスを発揮しますが、実行可能なアルゴリズム取引戦略を生成する能力については未だ探求の余地があります。本稿では、英語のテキスト記述に基づき Backtrader フレームワーク向けに戦略を生成する、現代の大規模言語モデルの能力を体系的に評価するためのベンチマーク「QuantCode-Bench」を提案します。このベンチマークは難易度の異なる 400 件のタスクで構成され、多段階のプロセスを通じて評価を行い、シングルターン設定とインテリジェントなマルチターン設定におけるモデルのパフォーマンスを比較します。シングルターンにおける最高性能モデルの「Judge Pass(判定合格率)」は約 70〜76%でしたが、マルチターン設定では 95〜98%に達しました。分析の結果、現在のモデルの主な限界は、取引ロジックの演算、API の使用法、タスク仕様の意味論への適合性の 3 点にあることが示唆されました。取引戦略の生成は特殊なコード生成タスクであり、技術的な正確さと多面的な一貫性の両方を兼ね備える必要があります。
はじめに
既存のコードベンチマークの多くは一般的なプログラミングタスクに焦点を当てており、特定のドメイン応用シナリオにおけるモデルの振る舞いを十分に反映していません。アルゴリズム取引戦略の生成タスクは特殊であり、ドメイン知識の理解、API の厳密な遵守、意味のある行動の生成が求められますが、既存のベンチマークはこの評価ニーズを満たすことができません。
本稿では、Backtrader フレームワークを中心に据え、400 件のタスクで構成され、シングルターンとマルチターンの両方の対話設定を備えたベンチマーク「QuantCode-Bench」を提案します。4 段階の評価プロセスを採用し、モデルの 4 種類の能力を区別して評価します。実験の結果、シングルターン設定では最先端モデルのコンパイル率は高いものの、その後の段階でのパフォーマンスは芳しくなく、マルチターン設定では性能が向上することが示されました。ただし、一部の失敗は自然言語による仕様の誤解に起因していることも明らかになりました。
本稿では、実行可能なアルゴリズム取引戦略の生成専用に設計されたベンチマークを導入します。技術的な実行可能性、取引行動の存在、タスク仕様との意味論的整合性を区別する多段階の評価フレームワークを提案します。現代のモデルについて、シングルターン設定とエージェント設定でのパフォーマンスを比較します。詳細なエラー分析を行い、プロセスの各段階における主要な失敗モードを特定します。金融ドメインにおける特定のコード生成研究のために、このベンチマークを公開します。
QuantCode-Bench
タスクの定義
QuantCode-Bench は、テキスト記述に基づいて Backtrader 用取引戦略を生成するモデルの能力を評価するものであり、以下の 4 つのネストされた要件があります。1) 戦略の構文が正しいこと、2) バックテスト環境で正常に実行されること、3) 過去のデータで少なくとも 1 回の取引を完了すること、4) 取引の論理(アイデア)に適合していることです。このベンチマークは一般的なコーディングタスクよりも厳格であり、各検証段階が段階的に進みます。主要指標である「Judge Pass」は、評価プロセス全体を通過した戦略の割合を示します。
データセット
QuantCode-Bench データセットには 400 件の取引戦略生成タスクが含まれており、記述は複数のソースから収集され、形式、構造、詳細さは様々です。各タスクは構造化されており、指標、エントリー・エグジット条件、追加ルールが抽出され、難易度レベル(易・中・難)に分類されています。
Backtrader について
Backtrader を選択した理由は、これがオープンソースフレームワークとしてバックテストや取引戦略のプロトタイピングに広く使用されており、かつ API に一定の複雑さを持っているためです。これにより、モデルが指標、データ行、注文実行メソッド、インデックスの規約を正しく処理することが求められ、ベンチマークテストが実際のコード生成により即したものとなり、テンプレートの流用だけで成功する可能性を低減します。
評価手法
検証プロセス
QuantCode-Bench の評価は、以下の 4 段階のプロセスを採用しています。
1. コンパイル: コードの構文が正しく、解釈可能であること。
2. バックテスト: 戦略が基準となる過去データ上でランタイムエラーなく実行されること。
3. 取引: 戦略が少なくとも 1 回の取引を完了すること。
4. 判定 (Judge): LLM ジャッジ(審査役)が、戦略がタスク記述と一致していることを確認すること。
このプロセスにより、失敗箇所を特定し、不成功な生成を分解することが可能になり、特定ドメインのタスクにおいて、単一の指標が異なる失敗原因を隠蔽してしまうことを防ぎます。
大規模モデルによる判定 (LLM Judge)
プロセスの最終段階は、生成された戦略と元々のタスク記述との意味論的一貫性を検証するために用いられます。戦略が技術的には実行可能でも、実質的に誤っている可能性があるためです。このため、大規模言語モデル (LLM) を使用してコードを判定します。判定基準は以下の通りです。指標が元の記述と対応、または等価であるか。戦略の重要なエントリー・エグジットおよび行動ロジックが実装されているか。コードが関連する実装であり、単なる汎用的なテンプレートの置き換えではないか。この手法は「LLM ジャッジ」に関する既存の文献と一致するものです。
評価設定
2 種類の対話設定を検討します。
シングルターン設定: モデルがタスク記述を受け取り、正しい戦略を生成するための最初の試行を行います。これは一度きりの生成品質を測定するものであり、モデルのドメイン知識、ライブラリ、および一般的な戦略テンプレートに関する初期知識に依存します。
インテリジェント・マルチターン設定: 失敗のたびに、エラーの種類とシステムメッセージを含む構造化されたフィードバックがモデルに提供され、最大 10 回まで修正と再試行が可能です。これは、モデルの反復的なエラー修正、局所探索、および診断情報を利用する能力を測定するものであり、同様の評価メカニズムはコードやソフトウェアエンジニアリングのベンチマークテストで有用性が証明されています。
結果
シングルターン
表 3 は QuantCode-Bench におけるシングルターンの結果を示しており、ベンチマークテストの中核的なパターンを提示しています。最先端モデルはコンパイル段階では概ね強力なパフォーマンスを示しますが、評価プロセスの後半になるにつれて差が広がります。シングルターンの結果は、プロセスの前後の段階で明確な違いがあることを示しており、強力なモデルの多くにとってコンパイルはもはやボトルネックではありません。高いコンパイル率が必ずしも高い判定合格率を意味するわけではなく、現代の最先端モデルにおける主な品質の低下は、バックテストと取引の段階で生じていることを示唆しています。
マルチターン
表 4 の結果は、モデル間の主な違いが構文の正しさではなく、実行、取引シグナルの生成、セマンティック・コンプライアンス(意味論的適合性)のレベルにあることを示しています。反復的なフィードバックは強力なモデルに特に効果的であり、そのエラーの多くは少数の試行で局所的に修正可能です。
エラー分析
失敗段階の分布(シングルターン)
表 5 は、生成が失敗した最初の段階別にシングルターンの結果を集計したもので、プロセス全体における難関がどこに集中しているかを示しています。現代のモデルにとってコンパイルはもはや主な問題ではなく、主な失敗点はバックテストや取引なし(No trades)などの後期段階に集中しています。これは、取引戦略生成の核心的な難しさが、Python の構文から、特定の実行環境における戦略の正しい実装へと移行していることを示唆しています。
バックテストエラーと後期失敗の分類
表 6 は、ランタイムエラーと後期失敗をきめ細かく分類したもので、Backtest、No trades、late-judge の各失敗カテゴリー内の支配的なパターンを明らかにしています。最も一般的な失敗タイプは、戦略のコンパイルとバックテストには合格するが取引が行われないもので、その原因の多くは、エントリー条件が厳しすぎる、特徴量計算の履歴コンテキストが不足している、指標の論理演算に誤りがあるなどです。次に多いのは、__bool__ / Line オブジェクトに関するエラーで、これは Backtrader の行(Line)オブジェクトに対するブール条件の処理が不適切であることを反映しています。属性・メソッドの欠如によるエラーの割合は小さく、直接的な API の幻覚(hallucination)よりも、ロジックの発動や行オブジェクトの処理の失敗の方が一般的であることを示しています。
エージェント設定におけるエラー
表 7 および表 8 は、エージェント設定における最終結果の分布をまとめたもので、シングルターンのエラーカテゴリーと、失敗したエージェントの軌跡における最終ラウンドの構成を比較しています。シングルターンの場合と比較して、最終ラウンドで解決されなかった失敗の構成は、継続的なセマンティックおよびロジカルな問題を示すカテゴリーへとシフトしており、一部のエラーの割合が増加しています。「Missing attribute/method」は依然として少数派です。10 回の試行後も解決されなかった戦略の中では、「Judge rejection(判定却下)」が主な失敗原因となっています。反復的なデバッグは技術的なエラーの修正には有効ですが、モデルがタスクを誤解している場合には効果が低く、エージェント設定は主にプログラムの修正問題に対処するものであり、自然言語仕様の意味論的解釈の限界を完全には解消していません。
考察
アルゴリズム取引戦略の生成には、プログラミング、金融ロジック、インテリジェントな検索が関与します。QuantCode-Bench は、強力なモデルが問題の一部を掌握している一方で、依然として限界があることを示しています。
現代の大規模言語モデルは、表層的な構文生成の問題はほぼ解決しており、主な課題は操作の形式化に移っており、これはその後のコード生成評価ベンチマークに影響を与えるでしょう。
シングルターン設定とインテリジェントな対話設定の比較から、エラーの多くは局所的に修正可能なタイプであることが示唆されました。モデルの実用性は、シングルターンの精度と反復的なコード修正能力の両方に依存します。
自然言語からコードや戦略へのベンチマークテストにおいて、難易度は概念的な深さだけでなく、仕様の質にも大きく依存します。
汎用モデルとコード専用モデルを比較すると、プログラミングへの特化が、特定のドメインにおける戦略生成においてより優れていることを保証するわけではありません。汎用モデルの方が、セマンティクスや指示追従能力において優れている場合、より良いパフォーマンスを発揮することがあります。
判定(Judge)の环节は極めて重要です。セマンティックな検証がなければ成功率を過大評価してしまい、オープンエンドなタスクでは主要な評価手順としてセマンティック検証が必要です。
制限事項
QuantCode-Bench は重要な実用的タスクを網羅していますが、現在のバージョンには以下の制限があります。
- 戦略は Backtrader フレームワークと環境でのみ評価されているため、結果を他のアルゴリズム取引ライブラリや環境へ一般化することが制限されています。QuantConnect/LEAN や Zipline などへ拡張可能であり、複数フレームワークでの評価は、モデルの戦略統合能力と API 適応能力を区別するのに役立ちます。
- 最終的なセマンティック評価は LLM ジャッジに依存しており、純粋な技術的検証よりは優れていますが、セマンティックな絶対的な正しさを保証するものではありません。ジャッジは微妙な不一致を見逃す可能性があり、LLM 判定に共通するバイアスも存在します。
- 生成された戦略の収益性、リスクに対する堅牢性、経済的質は評価されていません。本稿の焦点は、モデルが記述から実行可能な戦略を生成する能力にあり、戦略の投資品質そのものではありません。
結論
本稿では、大規模言語モデルが実行可能なアルゴリズム取引戦略を生成する能力を評価するための「QuantCode-Bench」を提案しました。タスクをネストされた要件として形式化することで、コードの品質と、モデルが自然言語の取引アイデアを有効な実装に変換する能力の両方を評価することができます。
その結果、最先端モデルであっても、単発の生成ではタスクを完全に解決するには程遠く、シングルターンの Judge Pass は最高でも約 4 分の 3 程度であることが示されました。一方、反復的なフィードバックを備えたエージェント設定では大幅な向上が見られ、最高性能のモデルでは 95〜98%に達しました。これは、エラーの多くが修正可能であり、対話型デバッグサイクルにおけるモデルの振る舞いが、単発生成の精度と同じくらい、あるいはそれ以上に重要であることを示唆しています。
取引戦略の生成には、専門的な API の習得、実行可能なコードの構築、現実的な取引ロジックの策定、そして自然言語仕様の意味論への適合が求められます。現代のモデルは構文や基礎的なレベルでは良好に機能しますが、単発での取引意図の正確な形式化や、戦略の精密な実装には限界があります。
QuantCode-Bench は、特定ドメインのコード生成、エージェントによるソフトウェア修正、および金融ドメインにおける大規模言語モデル評価に関する将来の研究に活用可能です。
▌私たちについて
私たちは人工知能および定量的取引(クオンツ)分野の最先端研究に注力し、最新の論文、モデルコード、戦略の実装を共有しています。ご要望などがございましたら、ダイレクトメッセージにてお問い合わせください。
▌ビジネスパートナーシップについて
WeChat ID「LingDuTech163」を追加するか、公式アカウントのバックステージより「联系方式(連絡先)」とメッセージをお送りください。
最新 AI ニュースについては、公式アカウント【灵度智能】をフォローしてください。