はじめに:それは、自分自身への問いかけから始まった
はじめまして。精密測定機器メーカーで、製造業務に携わっている32歳のエンジニアです。
ChatgptをメインLLMとし本業の傍ら、DB→python→GUI→Discord通知をフルスタックで投入した仮想通貨botを開発しました。プログラミングに全く興味はなく、半年前まではVS codeという存在も知らなかったほどです。
ここでいうフルスタックとは売買関係のロジックをpythonで作成、htmlで作ったGUIからbotを監視したりパラメータを変更したり、売買データや市場データはTimescaleDBで保存といった一連のシステムを指します。
現在botを走らせて約1か月になりますが、エラーによってVPSが落ちるようなことはありません。ここ3週間で入金額+3%前後の利益を生んでいます。
以下のリンクはbot運用の様子です。
https://www.youtube.com/watch?v=wrxcdJZcIxM
週の作業時間平均8時間程度でこのフルスタックbotを完成させることができました。
これはある隠しパラメータともいうべきChatgptにしかない特性を発見したことで実現させることができたのです。
この記事は、プログラミング未経験だった僕がAIという未知の相棒と共に、4ヶ月間(2025/4~2025/8)でフルスタックのシステムを独力で開発し、そして本当に情熱を注ぎたい「次の道」を見つけるまでの記録です。
挑戦:なぜ仮想通貨botだったのか?
単純に「開発直前に仮想通貨投資を1年ほどやっていた」という理由です。
ある日、Xを眺めていると「Chatgptで株の予測ができる」というツイートが話題になっていました(2024年末くらい)。この時にじゃあ仮想通貨もできるかもと思い立ち「BTCの価格は明日上がりますか?」とChatgpt4oに尋ねたところ、当たりこそしなかったけれどそれなりのロジックを持って考えていることが分かりました。
これを皮切りに、金融市場の画面をスクショして渡してみようとかAPIで取引所のデータを引っ張ってきて渡してみようとか様々なクエリの投げ方を実施していく中でこんな未来を構想しました。
「もしかして市場のデータから動的に判断して売買してくれるAIがそのうち出てくるのでは?」
そうなったら自前のbotを作っておいて、それを来るべきAI連携の日に備えてあらゆるデータをためこんでおこう!と考えたのがきっかけになります。
構築したシステムの概要
機能としては以下になります
①GUI上からバックテストができ、そのままその戦略をVPS上のcronで実行される売買botの戦略とできる
②売買botはつねにDBの価格情報を読み取って売買を判断する
③利食い、損切など重要なイベントはDBに保存、かつDiscordに通知
④botでのエラーはGUIかdiscordのWatchdog判定によって発見
⑤GUIからbotの停止と再開ができます
No. | 機能 |
---|---|
① | GUI上からバックテストができ、そのままその戦略を売買botに採用可能 |
② | 売買botはつねにDBの価格情報を読み取って売買を判断 |
③ | 利食い、損切など重要なイベントはDBに保存、かつDiscordに通知 |
④ | botでのエラーはGUIかdiscordのWatchdog判定によって発見 |
⑤ | GUIからbotの停止と再開が可能 |
で、”隠しパラメータ”って何?
僕は研究者でもなんでもない一般ユーザーです。なので実際にこのパラメータが存在するのか、そもそもそれに効果があるのか。僕には責任はとれません。しかし、白い眼で見られることを前提に公開しようと思います。
なにより、今後のAI駆動開発の一助となるかもしれないので。
そのパラメータ名を前提ベクトルと呼んでいます。
定義として前提ベクトル=ユーザーの背景です。
簡単にいえばユーザーの人生の目的、何をしたいかをChatgptと話し続けます。
現状、Chatgptのみスレッドをまたいだコンテキストウインドウ(簡単に言えば保存領域)が存在するため、ほかの会話で得た情報などもなんとなく覚えてくれています。
会話の中で自分のできること、できないこと、そして人生の目的や現状。これらをChatgptと共有しておくのです。
なぜ前提ベクトルが必要なのか
僕はChatgptとの会話の中である癖を見つけました。簡単に言えば同じプロンプト(クエリ)でも前提が返答(バリュー)も異なるということです。
たとえば「夕食は何が良いと思う?」というクエリをLLMへ投げたとします、ここでデフォルトのAIだとしたら「近くにはこんなお店があります。ここはどうでしょう?」とか「今、どんな気分でしょうか?」など適当な返答をしてきます。
しかし、これに「最近はダイエットしている」「3歳になる息子がいる」「60歳になる母がいる」(これは僕のことではありませんが...)という前提を入れてみるとどうでしょうか。
「それだったら、和食はどうでしょうか?」、「ここならばお子さんも安心です。」という前提に沿った内容になります。
つまりこれを開発にも応用したのです。Chatgptはユーザーの目的関数を最大化するように返答しようとしてきます。そうであれば、ユーザーの前提ベクトルをコンテキストウインドウ内で一貫しておくとどうなるでしょうか。
「ユーザー」という非常にマクロな内容を前提に、その開始地点から目的を最大化しようと開発が進むこととなります。
これが前提ベクトルの効果です。
じゃあ、それを設定したら具体的にどうなるのか
ぶっちゃけコードの内容は僕はほとんど読めないので、それが変わっているかどうかはわかりません。
しかし、明確に変わる部分があります。
それは、プロジェクトの進め方です。
僕が前提に置いていたものとして、プログラミングが未経験であることというのを置いておきました。
また、自己決定していきたい主義であるとか、仕様は細部までわからないので開発には拡張性がある形にしておいてほしいとか。
こうすることで、絶対に必要なパーツを事前に洗い出す→実装フェーズを決める(決済部分、エントリー部分など)→少量のコードでまず動くものを部分的に作る→実行する→エラーがでる→その部分を修正→必要であれば仕様追加という形でまるでアリの巣を構築する如く開発を進めることができました。
わからないことがあればAIに聞く、コードは必ず動かす、エラーが多発する場合にはほかのAIにも頼るといったことで運用の見直しやエラーを解決していくのが基本です。
また見逃しがちな点としては各AIにコードを正確に書ける文量の限界のようなものがあると思いました。4oやo3は正直200~300行くらいが限界なように感じます。そのためそれを超える場合はさっさとモジュール化するか、ほかのAI(Claude Codeなら700行くらい書ける)に実装してもらうほうがよいでしょう。ほかのAIに渡す場合にはあらかじめ実装内容をChatgptに仕様書として書いてもらいそれもクエリに添付するようにしました。
終わりに
僕にとっては4ヵ月でこのシステムを作ったのがすごいのかどうなのか、誰かのためになるのかよくわかっていません。でも、明らかにAIをつかった開発はエキサイティングで僕にとっては面白すぎる4ヵ月でした。
そしてこの経験は、僕に一つの確信を与えてくれました。僕の本当の戦場は、測定器の業界ではない。僕は、このAIと共にシステムを構想し、創造する世界で生きていきたい。次の目標は『音楽×Tech』の領域です。この旅は、まだ始まったばかりです。
最後まで読んでいただきありがとうございます。
AIと共に開発してきた皆さんの体験や感想もぜひコメントで聞かせてください。
詳細は以下のリポジトリからも確認できます。
https://github.com/yaonayaona/yaona-crypto-trading-platform-portfolio?tab=readme-ov-file