LoginSignup
1
3

dydX v4 x TradingViewでDYDXマイニングしよう!

Posted at

趣旨

dydX v4をTradingViewアラートで自動売買するプログラムを公開してる方がいたので自分でも弄ってみました。

以下ローカルPCで実践する際のドキュメントです。

環境

以下の環境で実践しました。必要なものはTradingViewの有料アカウントとLinuxですね。Macなどでもできますが、常時起動するものなのでクラウドかラズパイのような電力消費の少ないコンピュータが良いと思います。

  • Raspberry Pi
  • Raspberry pi OS (64bit)の入ったマイクロSDカード(Debian amd64)
  • TradingView 有料アカウント
  • dydX v4 アカウント

実践編

tradingview-alert-connectorをダウンロード

git clone https://github.com/junta/tradingview-alert-connector.git
cd tradingview-alert-connector
# Githubから該当コードをクローン(DL)してます

シードフレーズをセット

mv .env.sample .env
# .env.sample" ファイルを".env"に書き換えてます

nano .env
# nanoで.envファイルを開き中身を以下のように書き換えます
DYDX_V4_MNEMONIC=<PLEASE_PUT_YOUR_PHRASE>
# サンプル DYDX_V4_MNEMONIC=try not being hacked
# ""などで囲む必要はなくミーモニックフレーズ取得したらそれをそのまま直張り

ngrokをインストールします

上のURLに以下のコードがLinux版として提示されてるのでそこからコピペしてラズパイのターミナルに貼り付けて実行します。

3つほどインストールする方法がありますが、僕が選んだのはInstall ngrok via Aptと書かれた項目です。

curl -s https://ngrok-agent.s3.amazonaws.com/ngrok.asc \
	| sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null \
	&& echo "deb https://ngrok-agent.s3.amazonaws.com buster main" \
	| sudo tee /etc/apt/sources.list.d/ngrok.list \
	&& sudo apt update \
	&& sudo apt install ngrok

次にDockerをインストールします。ドキュメントは以下のURLにあります。

Screenshot 2024-05-12 at 09.53.34.png

DEB Packageという項目があるのでそこをラズパイのVNC接続からクリックしてダウンロードしておきます。DEBが入ったディレクトリまで移動してから以下のコマンドを打ちます。

sudo apt-get update
# download the deb file at: https://www.docker.com/products/docker-desktop/
sudo apt-get install ./docker-desktop-<version>-<arch>.deb
# ./より右側の名称をダウンロードしたDEBファイルの名称に書き換えてからコマンドを実行します

systemctl --user start docker-desktop
# systemctlによりDockerを起動します
systemctl --user enable docker-desktop
# systemctlによりDockerを常時起動状態に設定します

これだけで実行できるはずだと思ったんですが、docker composeの部分でエラーが発生してたのでGitHubから直接 docker compose持ってきました。

DockerとDocker Composeは全く同じものではないみたいで、僕は同じものだと思って接していたのでエラーの理由がわからず時間を無駄にしました。

以下の記事が参考になります。

https://o2mamiblog.com/docker-beginner-2/

docker composeをインストールします。

sudo curl -L "https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# docker composeのファイルをダウンロードして起動できる権限付与してます

docker-compose up -d
#これでdocker composeを起動してます

npmが必要なので入ってない場合はインストールします。

sudo apt update
sudo apt install nodejs npm

node --version
npm --version
# これはバージョン確認してるだけです

yarnでngrokを起動します。yarnが入ってない場合はyarnもインストールします。

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update
sudo apt install yarn

yarnを起動します。

npm start #ローカルホスト立ち上げ
yarn ngrok:docker #docker経由でngrokを立ち上げポートフォワードします

TradingViewからのアラートはwebhook(HTTP)なので外部向けに公開されているサーバーでないと受け取れないんですがngrokを使えば外部に公開されているサーバーで受け取ったwebhookをローカルホストにフォワードできます。故にローカルホストとngrokどちらも立ち上げる必要があります。

もしポート番号があっていなくて注文が通らない場合は package.json ファイル内のscriptの項目を弄る必要があります。

Dockerから起動した場合docker内で管理されたngrokを利用してポートフォワードするので多分ここいじらないと動きません。手探りでセットアップしてたので全ての場合をためせたわけではないのでわかりません。

package.json
	"scripts": {
		"start": "tsc && NODE_ENV=production node dist/index.js",
		"start:test": "tsc && NODE_ENV=test ts-node dist/index.js",
		"start:dev": "tsc && NODE_ENV=development tsc-watch --onSuccess \"ts-node dist/index.js\"",
		"decode": "ts-node scripts/decode.ts",
		"test": "jest",
		"test:prod": "NODE_ENV=production jest",
		"ngrok": "ngrok http 3000",
		"ngrok:docker": "./node_modules/.bin/ngrok http http://localhost:3000 --authtoken=xxxx #ここ
	},

/usr/local/bin/ngrokなどに置いてある本家ngrokとは異なるバージョンになることがあります。
その場合はnode_modulesのバージョンが古くてエラーを吐き出すことがあるので以下のコマンドで全てのngrokをアップデートします

npm install ngrok@latest

./node_modules/.bin/ngrok --version
# これでnode_modules内のngrokのバージョンを確認できます

ローカルホストのポートはデフォルト値でなくても好きな値で解放すればいいので環境に合わせて自由に変更できます。

あとはTradingViewの解説になるのでドキュメントを見ればわかります。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3