NOFXの戦略画面には、レバレッジ、最大ポジション数、損切り、利確、最低信頼度など、多くの数値設定があります。
では、注文はその数値だけで機械的に決まるのでしょうか。それとも、AIがチャートを読んで「買う」「売る」を決めるのでしょうか。
答えは両方です。
NOFXでは、LLMが市場データを読んで売買案を作り、Goの実行系がその案を検証して、許可された注文だけを通します。設定画面の数値には「AIへの判断材料」と「AIが上書きできない制限」が混在しています。
今回はNOFX日本語版をMEXCのペーパートレードで動かし、AI判断が発生するタイミングから、注文、保有、損切り、新しいエントリーまでを追いました。
先に結論:AIが方向を選び、コードが生殺与奪を握る
処理の流れを短くすると、次のようになります。
MEXCの価格・ローソク足・テクニカル指標
↓
NOFXがプロンプトを構築
↓
kcbrain経由でLLMが判断
↓
open_long / open_short / close / hold / wait
↓
Go実行系がJSONとリスクを検証
↓
合格した場合だけペーパー注文
AIが選ぶのは、主に次の内容です。
- ロングを開くか、ショートを開くか
- 既存ポジションを閉じるか、保有するか
- 今は取引せず待つか
- エントリー価格、損切り、利確、レバレッジ、ポジションサイズ
- 判断理由と信頼度
一方、実行系は最大ポジション数、銘柄の重複、レバレッジ上限、発注可能額、クールダウン、損切り・利確の形式などを検証します。AIが強気でも、制限を超えた案はそのまま発注されません。
NOFX本家も、この設計を「strategy is a language model」と説明しつつ、すべての注文をGoランタイムのハードリスク制限で抑える構成だと明記しています。
AIはいつ売買を判断するのか
今回の日本語版デモでは、トレーダーを起動すると最初の判断サイクルがすぐに走り、その後は5分間隔で繰り返します。
各サイクルでは、概ね次の処理が行われます。
- 最新の戦略設定を読み直す
- 口座残高、保有ポジション、候補銘柄を取得する
- MEXCから15分足、1時間足、4時間足と指標を集める
- AIへ渡すシステムプロンプトと市場コンテキストを作る
- kcbrainのOpenAI互換APIへ判断を依頼する
- 返されたJSONを解析し、銘柄とリスク条件を検証する
- 合格した判断だけをペーパー取引として実行する
- 判断理由、注文、損益を記録する
つまりAIは、設定画面で保存ボタンを押した瞬間に一度だけ判断するのではありません。トレーダーが動いている間、各サイクルの最新データに対して判断します。
実際のペーパートレードで何が起きたか
今回確認した一連の動きは次のとおりです。金額はペーパー口座上のシミュレーションです。
| 時刻 | AIの判断 | 実行結果 |
|---|---|---|
| 11:38 | BTCUSDTをopen_short、信頼度65 |
3倍、エントリー64,981.77、損切り65,170、利確63,900で建玉 |
| 以降の各サイクル | hold |
ショートを維持 |
| その後 | 価格が損切り水準へ到達 | 65,176.36でSTOP_MARKET、実現損益-11.978、決済手数料2.006 |
| 12:08 | wait |
新規注文なし |
| 12:13 | BTCUSDTをopen_long、信頼度75 |
3倍、エントリー65,322.24、損切り64,800、利確67,500で建玉 |
| 12:18 | hold |
ロングを維持 |
最初にショートを選んだのも、損切り後にいったん待ったのも、その次にロングへ切り替えたのもAIの判断です。
ただし、損切り価格に到達した後のクローズは、AIへ「閉じますか」と再確認していません。事前に設定されたSTOP_MARKETが実行されました。ここに、方向を考えるAIと約束した安全条件を守る実行系の違いが表れています。
この検証では、初期10,000 USDTのペーパー口座が、損益と手数料を反映して9,984.02 USDTになりました。都合のよい利益だけを見せるデモではなく、AIの判断が外れれば普通に損失が出ることも確認できました。
戦略画面の数値は、全部同じ強さではない
設定項目を見るときは、次の三種類に分けると理解しやすくなります。
| 種類 | 例 | 役割 |
|---|---|---|
| AIへの材料 | 時間足、テクニカル指標、市場データ | AIが方向とタイミングを考える材料 |
| AIへの指示 | 最低信頼度、期待するリスクリワード、カスタムプロンプト | AIに守るよう求める条件 |
| コードの強制条件 | 最大ポジション数、レバレッジ上限、銘柄重複、発注可能額、クールダウン | AIの回答に関係なく実行系が検査 |
ここで注意したいのは、画面に数値欄があるからといって、必ずしもすべてが発注直前に同じ方法で再検証されるわけではない点です。
今回の実装確認では、最低信頼度はAIプロンプト上の指示として使われていました。一方、リスク検証側には最低リスクリワード3.0の固定条件があり、画面上の設定値との境界に改善余地がありました。また、ポジション比率には保存時・実行時のクランプがあり、データベースを直接変更した値が画面に見えても、その値がそのまま実行値になるとは限りません。
AI自動取引の設定画面を評価するときは、次の三点を分けて確認する必要があります。
- AIへ何を伝えたか
- AIが何を返したか
- 実行コードが最終的に何を許可したか
今回のkcbrainはx402ではなく、このサーバーのFastAPI
NOFX本家には、USDCで推論ごとに支払うClaw402/x402という選択肢があります。しかし、今回の日本語版デモで使っているkcbrainはそれではありません。
実際の接続は次の構成です。
NOFX
→ http://127.0.0.1:18328/v1/chat/completions
→ kcbrain(FastAPI / Uvicorn)
→ このサーバーのOllama
→ gemma4:12b-it-qat
NOFXから見るとOpenAI互換APIですが、推論先はローカルのFastAPIサービスです。x402は別の任意プロバイダーであり、現在のペーパートレード経路では使っていません。
この分離には、取引所接続やリスク管理をNOFXに残したまま、AI部分だけをローカルLLM、外部LLM、将来の課金APIへ差し替えられる利点があります。
NOFX日本語版は「翻訳画面」だけではない
NOFX日本語版では、ナビゲーションや戦略設定、チャート、警告、AIの判断理由を日本語で確認できます。さらに、今回検証した構成では次の要素を統合しています。
- 日本語UIと日本語の判断理由
- kcbrainをAIプロバイダーとして選択
- MEXCの市場データを使うペーパートレード
- ポジション、注文、損益、AI判断履歴の記録
- Go実行系によるリスク制御
一方、open_long、open_short、holdのような機械が読むアクション名は英語のままです。人間向け表示は日本語にし、JSON契約は壊さないように分離しています。
日本語版はNoFxAiOS/Vergexの公式版ではなく、Kurage AI Projectが保守する独立したコミュニティ版です。対応するソースもAGPL-3.0で公開しています。
まずはペーパートレードで、AI判断、注文、損切り、損益表示まで一つずつ確認するのが安全です。
まとめ
NOFXは、設定値だけで動く従来型ボットでも、LLMへすべてを丸投げするボットでもありません。
AIが市場データから売買案を作り、決定論的なコードが実行可能性とリスクを検証するハイブリッド構成です。
ダッシュボードを見るときも、単に損益だけを見るのではなく、AI判断履歴、注文履歴、現在ポジション、決済済みポジションをつなげて読むと、何を買い、何を売り、なぜ損益が発生したかを追えます。
今回のペーパートレードでは、AIのショート判断、継続保有、自動損切り、待機、ロングへの切り替えまで確認できました。同時に、設定画面の数値と実行コードの境界を監査する重要性も分かりました。
本記事はOSSの技術検証であり、投資助言ではありません。AIの出力は誤る可能性があり、実取引では元本をすべて失うおそれがあります。必ずペーパートレードから始め、設定と実装を自分で確認してください。