WHAT NEW IN X11.04 WED

X 上的 AI 合集档案 · 22 个合集 · 66,612 条

jevIMAGE

用 Jev 搭 24 小时 HFT 交易系统的教程梳理

长文拆解如何用 Jev 的 Noul/Choice/Score 三类判断做链上做市:代码算指标,Jev 只负责判断,月成本约 10–25 美元。

新井 元気@ITエンジニア
@_moto___2026.09.24收录原推发布于 2026.09.23
用 Jev 搭 24 小时 HFT 交易系统的教程梳理
新井 元気@ITエンジニア @_moto___原推发布于 2026.09.23
在 X 上打开原推

Jevで24時間動くHFT(高頻度取引)システムを作る方法の記事をまとめてみた。前提知識がなくても、冒頭で説明してあるので読めるようになっているので読んでほしい。 ※元のX記事に加えて、本文にあるテキストの構成図、TypeSafe公式ドキュメント、記事で紹介されているjev-traderのGitHubリポジトリで確認して補足してある。 --- ■前提知識 - HFT(高頻度取引): コンピュータがミリ秒〜マイクロ秒単位で注文を出し続ける取引である。速さが利益に直結する。 - オーダーブック(板): 「いくらで何枚買いたい/売りたい」という注文の一覧である。最も高い買値(best bid)と最も安い売値(best ask)の差をスプレッドという。 - マーケットメイク: 買い注文と売り注文を両方出しておき、その差額(スプレッド)で稼ぐ手法である。 すぐには約定しない指値注文(post-only注文)を置いて、相手が来るのを待つ。 - LLM:ChatGPTのように文章を生成するAIである。1トークンずつ順番に出力するので、答えが出るまで数秒〜数十秒かかる。 - オンチェーン取引所: ブロックチェーン上にある取引所である。Monadでは約300msごと、Solanaでは約400msごとに1ブロックが作られ、その単位で取引が確定する。 - キャリブレーション(較正): AIが「80%の確率」と答えたとき、実際に約80%の割合で当たることをいう。これが成り立っていないと、確率の数値は信用できない。 - System 1 / System 2: 心理学者カーネマンの用語である。System 1は速く直感的な判断、System 2は遅くじっくりした推論を指す。 --- 1. Jevとは何か JevはTypeSafe AIが2026年9月に公開したAIモデルである。創業者はOpenAIでChatGPTの開発に関わったDiogo Almeida氏だ。 Jevは文章を生成しない。 入力は「状態(JSONなど)」と「答えの形が決まった質問」で、出力は「確率つきの判断」である。LLMが「状態→文章」を返すのに対し、Jevは「状態→判断の確率分布」を返す。 この対比が記事の中心にある。 質問の型は3種類ある。 - Noul: 0〜1の値を返す。例:「この注文の流れは情報を持つ投資家によるものか?」→ 0.83 - Choice: 選択肢から1つ選ぶ(最大255個)。 例:「相場の状態は?」→ トレンド 0.63/平均回帰 0.22/混乱 0.15 - Score: 自分で決めた基準で点数をつける。 例:「今は注文を出すのに良い環境か(0〜3)?」→ 2.3 速さの理由は2つある。 - LLMのように1語ずつ順番に生成しない。 全質問を並列に計算するので、質問が6個でも1個でもかかる時間はほぼ同じである。応答時間は70〜500msだ。 - RLCDという方法で訓練されている。 人間の好みではなく実際の結果に合わせて確率を最適化するので、「確信度が高いほど実際によく当たる」ように作られている。 コストは入力100万トークンあたり$0.042で、出力は無料である。毎ブロック判断させて24時間回しても月$10〜25程度で済む。 同じことを最先端LLMでやると1時間あたり$50〜150かかる。 Jevが使えるのはどこか。 株式の超高速取引(マイクロ秒単位)では遅すぎて使えない。 その領域はFPGAやC++で作られた専用システムの世界である。使えるのは、300ms程度のブロック単位で動くオンチェーン取引所や、数秒単位の戦術的な判断である。 --- 2. 記事の核心:AIに「取引させる」のではなく「判断の一部を任せる」 記事でいちばん重要な主張はここである。 ▎ Jevに取引システムを任せるな。システムの中の「判断」だけを任せよ。 失敗するAIボットは「BTCを見てどうすべきか教えて」とAIに丸投げしている。 これはどれだけ速くても答えようのない問いだ。 正しい分担は次のとおりである。 - 計算できるものはすべてコードで計算する: 中値、スプレッド、板の偏り、ボラティリティ、在庫、損失額など。足し算・割り算のような計算をJevに頼んではいけない。 - 判断が必要なものだけJevに聞く: 「今はトレンド相場か」「この注文の流れは危険か」「約定の質が落ちていないか」など。 - 質問は小さく分割する:複数の要素を比べる判断はそのまま聞かず、要素ごとに別々に質問する。 結果の組み合わせ(重み付け)はコード側で行う。方針を変えたいときは、プロンプトではなく係数を書き換えればよい。 記事の構成図が示す流れは次のとおりである。 市場データ → 特徴量計算 → 状態スナップショット(コード) → Jevが6種類の判断を同時に返す(相場状態・危険な注文の流れ・方向・環境の良さ・流動性・リスク状態) → 確率のベクトル → ポリシーエンジン(コード) → リスクルールと売買シグナル → 注文執行 リスクルールは常に最優先で、AIの判断より上位に置く。 --- 3. 試してみる手順 (1) 利用登録:http://typesafe.aiでウェイトリストに申し込む。当日承認されることも多いという。 (2) APIキーを設定する:ダッシュボードでキーを作り、環境変数に入れる。 export TYPESAFE_API_KEY="your-key" # Mac/Linux $env:TYPESAFE_API_KEY="your-key" # Windows PowerShell の場合 (3) SDKをインストールする(Python 3.10以上) pip install typesafe-sdk Claude Codeを使う場合は、公式スキルを入れておくとJevの呼び出しコードを正しく書いてくれる。 claude plugin marketplace add typesafe-ai/skills claude plugin install typesafe@typesafe-ai (4) 最初の判断を出してみる:次のコードをfirst_jev.pyとして保存し、python first_jev.pyで実行する。stateの数値は架空の板情報なので、自由に変えて結果の変化を見るとよい。 from typesafe_sdk import Choice, Noul, Score, TypeSafeClient client = TypeSafeClient() # 環境変数 TYPESAFE_API_KEY を自動で読む # コード側で計算済みの「市場の状態」(架空の値) state = { "mid": 3.4127, # 中値 "spread_bps": 3.5, # スプレッド(0.01%単位) "imbalance": 0.71, # 板の買い偏り "realized_vol_5m": 0.034, # 直近5分の変動率 "inventory": -120, # 自分の保有量(マイナス=売り越し) "aggressive_buy_ratio": 0.63 # 成行買いの比率 } response = client.system_one( state=state, questions={ "regime": Choice( instructions="What market regime does this state describe?", criteria={"trending": None, "mean_reverting": None, "chaotic": None}, ), "toxic_flow": Noul( instructions="Is aggressive flow likely informed rather than noise?", ), "quote_environment": Score( instructions="How favorable is this state for providing liquidity?", legend={"0": "Do not quote", "1": "Marginal", "2": "Standard", "3": "Excellent"}, ), }, ) # 結果の表示(記事のコードには無いので補った) print(response.answers["regime"].choice, response.answers["regime"].confidence) print(response.answers["toxic_flow"].noul) print(response.answers["quote_environment"].score) 注意点が2つある。 - 記事のコードには結果を表示する部分がない。上のprint部分は公式クイックスタートの書き方(response.answers["名前"].choice / .score / .noul、確信度は.confidence)に合わせて補った。 - 公式サンプルでは、Scoreの基準はlegendではなくcriteria=[...](リスト)で書かれている。legendでエラーになったらcriteria=["Do not quote", "Marginal", "Standard", "Excellent"]に書き換えるとよい。 本番で速さが必要なときは、OpenRouterなどの中継サービスを通さず、APIに直接(POST https://api.typesafe.ai/v1/systemone)送る。中継を挟むと通信の往復が1回増えるからである。 また、モデルのバージョンを固定し、毎回ログに残すこと。しきい値はそのバージョンに合わせて調整したものなので、モデルが知らないうちに更新されるとシステムが静かに壊れる。 --- 4. 状態の作り方と「判断バッテリー」 状態スナップショットは毎ブロック、400トークン未満の数値の塊として作る。 中身は価格、板、注文の流れ、ボラティリティ、他の取引所との価格差、自分の在庫と損益、システムの健康状態(約定率・遅延など)である。 守るべきルールは3つある。 - 入力トークンに課金されるので、数値だけを詰めて短くする - 判断の時点より前の情報だけを使う(未来の情報を混ぜない) - 「状態・判断・結果」を毎回ログに残す。これが後で較正を検証するデータになる 判断バッテリーとは、1回の呼び出しで6問をまとめて聞くことである(相場状態、10ブロック先の方向、危険な注文の流れ、流動性の低下、注文を出す環境の良さ、在庫を減らす緊急度)。 1回の遅延と1ブロックあたり約$0.00001で6つの判断が得られる。 受け取った答えから行動を決めるのはコードである。記事のポリシー関数を読み下すと次のようになる。 1. 損失が上限を超えていれば全停止 2. 危険な注文の流れの確率が0.6を超えていれば注文を引っ込める 3. 流動性低下の確率が0.7を超えていればスプレッドを広げる 4. 環境スコアが2以上かつ確信度が0.8超なら、在庫に応じて価格をずらしつつ両側に注文を出す 5. スコアが1以上なら広めのスプレッドで注文を出す 6. それ以外は何もしない ここで押さえるべき点は3つある。 ●しきい値はモデルではなくコード側に置くこと。 ●しきい値は行動ごとに「間違えたときの損失の大きさ」に合わせて変えること。 ◎そして確率から賭け金を決める方法(Kellyの分数版)は、確率が較正されているときにだけ意味を持つこと。 --- 5. ◆24時間ループ、◆リスク管理、◆フォールバック 価格の計算は、50年前からある数式(Avellaneda-Stoikovモデル)でコードが行う。在庫が多ければ提示価格をずらし、ボラティリティが高ければスプレッドを広げる。Jevに任せるのは、この数式では答えられない「そもそも今は注文を出すべき環境か」という判断だけである。 1ブロックごとの流れは次のとおりだ。ブロックを受信 → 板を読む → 状態を計算 → Jevに6問を聞く → ポリシーで行動を決める → 数式で価格を決める → リスク上限をチェック → 古い注文を取り消して新しい注文を出す → 約定と損益を記録 → 次のブロックへ。 現実に耐えるための注意が2つある。 - 期限ルール:次のブロックまでにJevの答えが返らなければ何もしない。古い状態のまま注文を出してはいけない。 - 手数料(ガス代)の現実:毎ブロック注文を取り消して出し直すだけのやり方は、3.5bpsのスプレッドではガス代負けして構造的に赤字になる、という検証がある(記事によれば1時間あたり約428 MONの損失)。 スプレッドを広げる、注文を長く置く、本当の方向予測の優位性を持つ、のいずれかが必要である。 リスクエンジンはAIに一切任せない。 最大ポジション、1日の最大損失、最大ドローダウン、最大注文サイズ、在庫の保有期限、データの鮮度、レバレッジ、APIエラー数、判断の遅延に上限を設け、注文の前に毎回チェックする。チェックはモデルの自己申告ではなく、外から確認できる数値で行う。 ◆フォールバックの段階も決めておく。 - 正常で確信度が高い → 通常運転 - 正常だが確信度が低い → サイズを減らすか様子見 - ブロック期限に間に合わない → 何もしない - Jevが使えない → 数式だけの運転に切り替える - 上限を超えた → 全停止してポジションを閉じ、通知する これがないボットは「24時間稼働」と言っても、最初の通信障害で止まる。 個人が現実に戦えるのは、ブロック単位で動くオンチェーン取引所(MonadのKuru、SolanaのDEX、Hyperliquid)や、スプレッドが広い予測市場である。米国株の超高速取引は大手の独壇場なので、300msのシステムで挑んではいけない。 実例: Jarrod Watts氏のjev-traderは、MonadのKuru MON-USDC板で毎ブロック買いか売りかをJevに判断させ、最良価格の1ティック内側に指値注文を出すボットである。秘密鍵を設定しなければドライラン(実際の板と実際の判断を使い、約定だけを模擬する)で動くので、安全に試せる。 --- git clone https://github.com/jarrodwatts/jev-trader cd jev-trader cp .env.example .env # MODEL=jev と TYPESAFE_AI_API_KEY を設定(未設定だと簡易ロジックのmockで動く) bun install # 事前に Bun(JavaScript実行環境)のインストールが必要 bun run start --- 6. 検証と「できること・できないこと」 検証の方法:「Jevが価格を当てたか」ではなく、システム全体の成績で比べる。同じデータと条件で、手書きルール、LLM、Jev、Jev+確信度フィルタの4通りを比較し、シャープレシオ、最大ドローダウン、スリッページなどを測る。本当に問うべきは「確信度が低いときに取引を見送ると成績は良くなるか」である。 さらに、較正が自分の市場でも成り立つかを確かめる。「80%」と出た判断が実際に80%当たっているかをグラフにし、Brierスコアなどで測る。RLCDの較正はTypeSafeが訓練に使ったデータに対するものであって、自分の市場で成り立つ保証はない。 ずれていれば、コード側で補正(Platt scaling)をかける。 Jevにできること:70〜500msで確率つきの判断を返す、多数の質問を並列に処理する、300msのブロックループに収まる、あいまいなルールや分類器を置き換える、月$10〜25で毎ブロック動かす。 Jevにできないこと:文章の生成や戦略の設計、前の答えに依存する質問を1回で連鎖させること、マイクロ秒単位の競争、数値計算・取引所接続・リスク管理の代替、そして負ける戦略を勝たせること。 --- ■まとめ Jevは「賢いLLM」ではなく、1ブロックの時間内に較正済みの確率を返す別種の判断エンジンである。勝てるシステムは、Jevに取引を丸投げしない。 計算できるものはすべてコードで計算し、小さな質問をまとめてJevに投げ、確信度でふるいにかけ、価格は数式で決め、最後はAIの判断を覆せるリスクルールで守る。Jevは判断を安く速くするだけで、利益の源泉(エッジ)を作るのは人間の仕事である。 補足しておくと、記事中のAgenKitの宣伝や「DMをくれればレビューする」という呼びかけは筆者の販促である。Jevを使うのにAgenKitは必要ない。 料金や精度の数値もTypeSafe自身の発表値なので、自分の環境で検証してから信用すべきである。 Sources: - jarrodwatts/jev-trader (GitHub) - TypeSafe Docs - TypeSafe Quickstart - TypeSafe Confidence - Jev finance & trading projects survey (gist) #Jev #Typesafe #JevFinance

这条是引用着另一条写的:「用 Jev 从零搭高频交易 bot:每区块一次买卖决策」

x.com/_moto___/status/2102595065956999429采集于 2026.09.24 10:19