きっかけ
暗号資産(仮想通貨)の積立投資を始めようと思って、日本の取引所を色々調べていたんですが、これがまた残念な状況でした。
どこの取引所も自動積立サービスはあるんですが、全部「販売所」でしか買えないんです。
で、販売所で買うと何が問題かというと、買った瞬間に約1.5%損している状態になるわけです。
販売所のスプレッドとは
これ、最初よくわからなかったんですが、要するにこういうことです。
販売所で値段を見ると:
- 買う時: 40万円
- 売る時: 39万4千円
って表示されています。
「え、同じタイミングなのになんで?」って思いますよね。
この差額6,000円がスプレッドというもので、取引所の利益になっています。
実際どうなるか
3万円でETHを買ってみるとします。
買った瞬間の状態:
- 支払ったお金: 3万円
- 手に入れたETH: 0.075 ETH
- すぐに売ったらいくらになる?: 2万9,550円
あれ?450円消えた...何もしていないのに450円マイナス。これがスプレッドの正体です。
1回だけなら「まあいいか」と思うかもしれませんが、毎月積立だと:
月450円 × 12ヶ月 = 5,400円/年
10年続けたら54,000円...これは無視できないコストです。
取引所なら安いのに
一方、「取引所」(板取引)で買うと、手数料は0.05%程度。
3万円買っても15円くらいしかかかりません。
| 1回 | 年間 | 10年 | |
|---|---|---|---|
| 販売所 | 450円 | 5,400円 | 54,000円 |
| 取引所 | 15円 | 180円 | 1,800円 |
10年で5万円以上の差になります。
絶対に取引所で買いたいところです。
でも問題が
調べたところ、日本の取引所で「取引所形式の自動積立」をやっているところがゼロでした。
主要どころを全部チェックしましたが:
- Coincheck → 販売所のみ
- bitFlyer → 販売所のみ
- GMOコイン → 販売所のみ
- bitbank → そもそも自動積立なし
なぜないのかは明確ではありませんが、おそらく販売所の方が収益性が高いからでしょう。
じゃあ作ろう
「ないなら作ればいい」ということで、bitbankのAPIを使って自動積立システムを自作しました。
技術スタックはこんな感じです:
- Cloudflare Workers - サーバーレスで動かす
- Cron Triggers - 毎月自動実行
- bitbank API - 取引所で注文
- SendGrid - 結果をメール通知
仕組み
シンプルな構成です。
毎月16日の朝9時になったら
↓
ETHの現在価格を取得
↓
3万円で買える量を計算
↓
取引所に成行注文を出す
↓
結果をメールで通知これだけです。
コアロジックはこんな感じ:
// 現在のETH価格を取得const ticker = await fetch('https://public.bitbank.cc/eth_jpy/ticker');const price = ticker.data.last;// 3万円で買える量を計算(手数料考慮して0.999倍)const amount = (30000 * 0.999) / price;// 署名を生成して注文送信const signature = hmacSHA256(secret, nonce + orderData);await fetch('https://api.bitbank.cc/v1/user/spot/order', {
// 認証ヘッダー等});HMAC-SHA256の署名まわりは少し複雑でしたが、bitbankのドキュメントを参照しながら実装できました。
Cloudflare Workersを選んだ理由
AWSやGCPも検討しましたが、Cloudflare Workersを選んだ理由:
- 無料枠が十分 - 月1回の実行なら余裕
- Cronが標準装備 -
wrangler.tomlに記述するだけ - サーバー管理不要 - メンテナンスフリー
- デプロイが簡単 -
npx wrangler deployで完了
設定ファイル:
name = "bitbank-eth-dca"main = "src/index.ts"[triggers]crons = ["0 0 16 * *"] # 毎月16日 JST 09:00環境変数はSecretsで管理:
npx wrangler secret put BITBANK_API_KEY
npx wrangler secret put BITBANK_API_SECRET
npx wrangler secret put BUDGET_JPY # 30000円これでサーバーを立てる必要なく、完全放置で動作します。
メール通知について
SendGridの無料枠を使って、購入成功時にこのようなメールが届くようにしました:
件名: ✅ [成功] ETH積立実行のお知らせ
本文:
ETHの積立が正常に実行されました.
---
{
"when": "2025-10-16T00:00:12.345Z",
"pair": "eth_jpy",
"price": 395000,
"budget_jpy": 30000,
"amount": 0.07582278,
"order": { ... }
}朝起きてメールを確認すれば「今月も買えた」と安心できます。
失敗時も通知が来るため、残高不足などの問題にすぐ気づけます。
ちなみに、Cloudflareが2025年11月からEmail Service(プライベートベータ)を公開予定とのこと。
Cloudflare内で完結できるならそちらの方がスッキリしますが、今のSendGridも:
- 無料枠で十分(月1通のみ)
- すでに動作している
- 特に問題ない
という状況なので、今のところ乗り換える必要性は感じていません。
正式リリース後、評判が良ければ検討する程度の温度感です。
実際の運用状況
数ヶ月運用していますが、非常に快適です。
良かった点
- PCの電源を入れていなくても自動実行される
- 販売所より手数料が10分の1以下
- メール通知があるので忘れても安心
- Cloudflareのダッシュボードでログ確認可能
注意点
- ネット銀行の自動振込設定で解決(毎月15日に自動入金)
- 相場が急変している時は想定外の価格で約定する可能性
- APIキーの管理は慎重に
コスト比較
ランニングコストはこのようになっています:
| 項目 | 月額 |
|---|---|
| Cloudflare Workers | 0円(Free) |
| SendGrid | 0円(Free) |
| bitbank取引手数料 | 約15円 |
| 合計 | 約15円 |
販売所の自動積立だと月450円かかるところ、月435円の節約になります。
年間で5,220円のコスト削減です。
なぜ取引所は自動積立を提供しないのか
これは疑問ですが、おそらく:
- 販売所の方が収益性が高い - スプレッドで1.5%の利益
- 技術的な複雑さ - 板取引だと約定保証が難しい
- サポートコスト - 「注文が通らなかった」等のクレーム対応
という事情があるのでしょう。
ただ、ユーザー目線では明らかに取引所での自動積立の方が有益です。
業界関係者の方、ぜひご検討いただけると嬉しいです。
まとめ
- 日本の取引所の自動積立は販売所形式のみ
- 販売所のスプレッドは約1.5%と高コスト
- 取引所APIを使えば手数料を10分の1以下に削減可能
- Cloudflare Workersなら無料で運用できる
- 年間5,000円以上のコスト削減効果
プログラミングができる方であれば、自作する価値は十分にあると思います。
できない方は…販売所を利用するか、誰かがサービス化してくれるのを待つか。
ただ、本来は取引所側がきちんとしたサービスを提供してくれるのが理想だと考えています。
免責事項
投資は自己責任でお願いします。APIキーの管理などセキュリティ面にも十分ご注意ください。