見出し画像

仮想通貨自動積立ボット - Coincheck版

最近はDOGEコインやMONAコインも買われ始め、バブル終盤の予感を感じ始めましたね。怪我しないように乗り越えたいところです。

長期的にはビットコインをはじめとする仮想通貨は値上がりを予想する声も多くなっています。この場合の戦略としては定期的に金融商品を購入することで時間分散を行うドルコスト平均法を行うことでリスクを低減し安定的に収益を得ることができるといわれています。

また定期的に購入するサービスは仮想通貨の取引所のサービスとして用意されていることも多いです。ただこの場合、仮想通貨の販売所から購入する形となり手数料により割高で購入することになるケースが多いです。

CoincheckだとCoincheckつみたてというサービスがありますが積立時のレートは以下の記載があり手数料が加算されていることが分かります。

Coincheck つみたて取引説明

本取引における買付は、お客様の依頼に基づいて当社が相手方と
なって取引を行う店頭取引です。買付価格は、買付日 15 時(当社
仮想通貨(暗号資産)取引所又は仮想通貨(暗号資産)販売所が
システム障害や安定的な価格提示ができない等により取引を停止
している場合には、取引再開後に当社が安定的な取引状況を確認
した時点)における当社の仮想通貨(暗号資産)取引所又は仮想
通貨(暗号資産)販売所の基準価格をもとに一定の額を加算して
当社で生成した価格
となり、買付数量は買付金額と買付価格を元
に算出される数量となります。

このように板取引のある取引所で安い価格で定期購入することで最終的により高いリターンを得ることができるといえるでしょう。要はCoincheckの手数料ビジネスのカモにならないで済みます。

本ノートではCoincheckで仮想通貨を取引所の価格で定期的に積立するボットの構築方法を記載します。

システム概要

Coincheckの仮想通貨BTC,ETC,FCT,MONA(太字のみ動作確認済み)を任意のタイミング(月始め1日の9:00など)、数量で定期的に購入できます。
購入した後はDiscordに通知され注文に成功もしくは失敗したことを確認できます。
買い注文の処理はGoogle Cloud Platformを利用して設定します。ただし専門的な知識は不要でGUIの操作、設定値の入力、ソースコードのコピーペーストのみで環境の構築可能です。また通常の運用の場合、無料の範囲で利用することができます。
有料部分には動作に必要なソースコードがあります。

画像1

仮想通貨の購入は以下の流れで行われます。

・Google Cloud PlatformのCloud Schedulerが買い注文を行うCloud Functionsを定期的に呼び出す。
・Cloud FunctionsがCoincheckに買い注文を行う。
・Coincheckへの買い注文が成功したこともしくは失敗したことをDiscordに通知する。

また銀行からCoincheckへの定期入金の設定をすることで銀行に日本円があれば、完全に定期購入を自動化することができます。住信SBIネット銀行を利用すると手数料無料で振込することができます。

免責事項/注意事項

・本ノートの内容を利用したことにより発生した損失については責任を負いかねます。
・質問対応や明らかな不備は可能の範囲で対応しますが、個別の環境トラブルやクラウドサービスを利用することによるトラブル(課金等)は対応できません。
・各画面のスクショを載せて手順を説明しておりますが、今後、各ツールの UI(見た目) が変わる可能性もあります。
・Coincheck、ccxt、Google Cloud Platformの仕様変更により上手く動作しなくなる可能性があります。
・本noteの内容を無断で誰でもアクセスできるブログなどに公開すること、また改変したものを有料noteなどの商材として販売することを禁じます。

事前準備

Coincheckのアカウントの作成

これがなければ始まりません。仮想通貨取引所のCoincheckのアカウントを作成します。

Discordのアカウントの作成

Discordは無料で利用できるチャットサービスです。本ノートではDiscordを買い注文を行った際の通知を行うための機能として利用します。
Discordにアクセスしアカウントを作成します。

Google Cloud Platformの登録

買い注文を行うための処理はGoogle Cloud Platformというクラウドサービスを利用しています。Google Cloud PlatformにアクセスしGoogleのアカウント作成とGoogle Cloud Platformに登録します。

定期振り込みの設定(オプション)

定期積立する額を決め、Coincheckに毎月振り込みを行う設定を行うと、手動で入金する必要がなくなります。住信SBIネットバンクの場合、定額自動振込サービスを無料で利用することができます。

仮想通貨積み立てシステムの構築方法

積立金額の検討

システムを構築する前にどのコインをどの頻度でいくら積み立てるかを検討してみましょう。各自の資金、コインの将来性について考慮して決めていきます。このノートでは月初めの1日の日本時間9:00にBTCを50000円づつ定期購入する例を記載します。
※Coincheckの取引所ではBTCの最終発注量が0.005BTCとなり現在(2021年4月時点)だと35000円程度になります。今後の値上がりを想定するのであればそれも考慮して積立金額を検討する必要があります。

CoincheckのAPIキーを取得

APIキー(アクセスキー、シークレットアクセスキー)の取得方法を参考にしてCoincheckのAPIキーを発行して、APIキーとシークレットの情報を入手します。入手した情報はあとで使うのでメモ帳等に保存します。

DiscordのウェブフックURLの取得

Discordのサーバー、チャンネルを作成し、そのチャンネルに通知するためのウェブフックURLを取得します。

以下のようにサーバーを追加を行い、ダイアログに従って任意の名前でサーバーを作成します。

画像2

以下のようにチャンネルを作成をクリックします。

画像3

テキストチャンネルのダイアログが表示されるのでチャンネル名に任意の生を入れてチャンネルを作成ボタンを押します。

画像4

連携サービスを選択してウェブフックを作成をクリックします。

画像5

ウェブフックURLをコピーをクリックして、メモ帳等にペーストして保存します。

画像6

Google Cloud Platformにプロジェクトを作成

Google Cloud Platformにログインし、発注処理の機能の入れ物となるプロジェクトを作成します。

ナビゲーションメニューからホーム→ダッシュボードを選択します。

画像7

プロジェクトを作成を選択します。

画像8

任意のプロジェクト名を入力して作成ボタンを押します。

画像9

Google Cloud PlatformでCloud Functionを設定

買い注文を行う処理を定義するCloud Functionを作成していきます

作成したプロジェクト上で、ナビゲーションメニューからCloud Functionを選択します。

画像10

関数を作成をクリックします。

画像11

関数の作成の構成のメニューで関数名に「buy-order-coincheck」とつけます。リージョンは「asia-northeast1」を指定します。

画像12

次のトリガーでトリガーのタイプで「Cloud Pub/Sub」を選択します。
「Cloud Pub/Subトピックを選択してください」の項目で「トピックを作成する」を選択してトピックを作成します。
トピックの作成ダイアログがトピックIDでは「buy-order-coincheck」を入力してトピックを作成をクリックします。
「Cloud Pub/Subトピックを選択してください」の項目で作成したトピックが入力された状態になるので保存ボタンを押します。
以下の状態になれば問題ありません。

画像13

次にランタイムの項目でランタイム環境変数の追加ボタンを押して環境変数を追加します。

画像14

上記のように環境変数を入力します。それぞれの環境変数には以下の情報を入力します。

API_KEY:CoincheckのAPIのAPIキー
API_SECRET:CoincheckのAPIのシークレット
WEBHOOK_DISCORD:DiscordのウェブフックURL

注文情報は環境変数にキーにコインのシンボル名、値に日本円の発注量を定義します。上記の図では以下のように定義しており、これはBTCを50000円づつ購入することを表しています。

BTC = 50000

Coincheckで以下のコインのシンボルを定義することが可能です。(2021年4月現在)

BTC,ETC,FCT,MONA(太字のみ動作確認済み)

最後に次へボタンを押します。

コードのメニューで、ランタイムではPython 3.7、エントリーポイントにmainを入力します。
Cloud Build APIでは、選択されているランタイムを使用する必要があります。という表示がされる場合はAPIを有効にするボタンを押してCloudBuild APIを有効にしてください。

画像15

ソースコードのインラインエディタでmain.pyを選択し、有料部分のmain.pyをコピーペーストします。

ソースコードのインラインエディタでrequirements.txtを選択し、有料部分のrequirements.txtをコピーペーストします。

最後にデプロイボタンを押します。

関数の一覧で緑色のチェックマークが表示されたらCloud Functionsの設定は完了です。

画像16

Google Cloud Platformで Cloud Shcedulerを設定

ナビゲーションメニューで Cloud Schedulerを選択します。

画像17

ジョブを作成をクリックします。

画像18

ロケーションを選択のメニューが表示されたらリージョンを選択の項目で「aisa-northeast1」を選択して次へをクリックします。

画像20

設定したCloud Functionを定期呼び出しするジョブを作成します。

画像20

名前は「buy-order-coincheck」を入力します。
頻度には定期実行するスケジュールをcron形式で記載します。
上の図では毎月1日に9:00にジョブを呼び出します。
cron形式の書き方は以下を参考にしてください。

以下のサイトでは指定した時間帯からcronの設定を作成することができます。

タイムゾーンは「日本標準時(JST)」を選択します。
ターゲットタイプは「Pub/Sub」を選択します。
トピックは先ほど作成した「buy-order-coincheck」を入力します。
ペイロードには「{}」を入力します。(ジョブからは何も入力がないため)

最後に作成を押します。

画像21

上図のように設定されたらCoincheckで仮想通貨を定期購入するための設定は完了です!

動作確認

Coincheckで仮想通貨を定期購入するための設定が完了したので早速動作確認してみます。

CloudSchedulerによるジョブの実行に時間がかかる場合、CloudSchedulerの「今すぐ実行」ボタンを押すことでジョブの実行を手動で行うことができます。

画像22

買い注文が成功した場合、以下のようにDiscordのチャンネルで通知されます。

画像23

※Discordに通知される情報は発注時の情報です。実際に約定した情報ではないことに注意ください。

Coincheckの資産状況からも実際に発注されていることが確認できます。ただそれぞれのコインの価格や端数の処理の影響により発注した日本円から誤差が発生することに注意してください。

さいごに

設定作業お疲れさまでした。少し大変だったかもしれませんが、販売所で支払う手数料を考えるとやるべき努力ともいえると思います。

問題や質問がある場合や要望、その他については以下のDiscordで受け付けます。なおDiscordは公開チャンネルのため本ノートの転載は不可になります。
Twitterアカウント @amdapsi でも受け付けます。

それでは10年間動かしてお金持ちになっていることを祈りましょう。

ここから先は

3,638字
この記事のみ ¥ 500

この記事が気に入ったらサポートをしてみませんか?