No description
- Python 96.6%
- Cython 1.8%
- C++ 1.1%
- C 0.3%
- TypeScript 0.1%
|
|
||
|---|---|---|
| backend | ||
| frontend | ||
| .env.example | ||
| .gitignore | ||
| mytrade | ||
| mytrade.code-workspace | ||
| README.md | ||
MyTrade
Next.js + Python(FastAPI)による仮想通貨現物トレーダーの雛形。bitbank.cc(日本国内取引所)対応。
構成
mytrade/
├── backend/ # Python FastAPI バックエンド
│ ├── main.py # API サーバー
│ ├── config.py # 環境設定
│ ├── models/ # Pydantic モデル
│ ├── exchange/ # 取引所コネクタ(Binance)
│ ├── trading/ # トレードエンジン
│ └── database/ # DB(SQLite)
├── frontend/ # Next.js フロントエンド
│ ├── app/ # App Router
│ ├── components/ # React コンポーネント
│ └── lib/ # API クライアント
├── docker-compose.yml
└── README.md
機能
- 対応取引所: bitbank.cc(日本国内)/ Binance Global / Mock(デモ)
- ダッシュボード: ポートフォリオ残高・マーケット情報・注文履歴の一覧表示
- 注文フォーム: 現物の買い/売り(MARKET/LIMIT)
- 市場データ: リアルタイム風ティッカー更新(5秒間隔)
- 取引履歴: 約定済みトレードの確認
- モックモード: API Key 不要で UI 開発・動作確認が可能
前提条件
- Python 3.10+
- Node.js 18+
- bitbank.cc API Key(実取引用)または Mock モード
セットアップ
同時起動(推奨)
./start.sh
# Backend: http://localhost:8000
# Frontend: http://localhost:3000
個別起動
1. バックエンド
cd backend
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
# EXCHANGE_TYPE を編集(mock / bitbank / binance)
python main.py
# http://localhost:8000
# API ドキュメント: http://localhost:8000/docs
2. フロントエンド
cd frontend
npm install
cp .env.example .env.local # BACKEND_URL は通常変更不要
npm run dev
# http://localhost:3000
API エンドポイント
| Method | Path | 説明 |
|---|---|---|
| GET | /api/v1/balance |
ポートフォリオ残高 |
| GET | /api/v1/tickers |
全ティッカー |
| GET | /api/v1/ticker/{symbol} |
指定銘柄ティッカー |
| POST | /api/v1/order |
注文発行 |
| DELETE | /api/v1/order/{symbol}/{order_id} |
注文キャンセル |
| GET | /api/v1/orders |
未約定注文一覧 |
| GET | /api/v1/trades |
約定履歴 |
| GET | /api/v1/positions |
仮想ポジション・PnL |
| POST | /api/v1/sync/pairs |
取引ペア同期 |
| GET | /api/v1/pairs |
取引ペア情報 |
技術スタック
- Backend: FastAPI, SQLAlchemy, httpx, uvicorn
- Frontend: Next.js 14, React, TypeScript, Tailwind CSS
- Database: SQLite(aiosqlite)
- 取引所連携: bitbank.cc REST API, Binance API, Mock Exchange
注意事項
- bitbank.cc: 日本国内居住者が利用可能な取引所です。
EXCHANGE_TYPE=bitbankに設定してください。 - Binance Global: 日本国内居住者は規制対象です。VPN 等での利用は自己責任で。
- Mock モード: 初期値は
EXCHANGE_TYPE=mockで、API Key 不要で動作確認ができます。 - API Key は
.envファイルに記載し、公開リポジトリにコミットしないでください。 - 環境変数は
.envより優先されます。例:EXCHANGE_TYPE=bitbank python main.pyで一時的に切り替え可能です。