仮想通貨アナライズ

エンジニア視点で仮想通貨について考察するブログ

くろしば大注目の NANJ は CoinExchangeで買えます

カテゴリ: BTCFXBOT

85d32e2e88e87dfe07305f32affdb08b_s

ちょっと時間が取れなくて滞ってしまったBOT制作ですが、チャートを眺めている時間を減らし早めに作成に取り掛かりたいと考えています。

実行環境

自宅に24時間動いているサーバがありますのでこれにBOTプログラムをインストールして起動したいと思います。
サーバといってもファイルサーバみたいなもので、外部に向けてコンテンツを配信しているサーバではありませんw

トレードする取引所

BitMEX を考えています。
とりあえず、テストネットで基本的な操作(価格の取得、注文、ポジションの取得、キャンセルなど)は出来たので
あとはロジックを組んでいくのみです。
テストサイトで 1.3 XBT あるのが嬉しいですねw 換金できませんけどねw

うまく行けば、ビットバンクで XRP を増やす BOT なんかも作ってみたいです。

トレード方針

細かい値幅で大量注文!ってのが普通の BOT なのかもしれないんですが、FX に当てられる資金が相当減って残り少ないので勝ちやすパターンのみ狙っていこうと思います。
今のところは、ざっとこんなロジックを考えています。
  • 価格をモニタリングし、大幅に値下がりするかどうか待つ
  • 大幅値下がりを検出したら数分程度価格が上昇するのを待ってロング注文
  • ある程度値段が上がったら決済。
  • 一定期間、価格変動がなさそうなら(ヨコヨコを検出したら)決済。
うまく行くかどうか分かりませんけどね。
まずは、テストネットでちゃんと処理できるか確認。その後で本番で、実際に注文はせずログに記録するだけで利益が出そうかテスト。
しばらくテストして大丈夫そうなら実際に資金投入、というふうにしようと思います。

この週末にプロタイプ完成を目指します!

840f55535d42421e08adf1a34f7957b3_s

BTCFX(ビットバンクトレードとBitMEX)で大きなマイナスを出してしまい、再起をかけてBOTを作ることにしました!

その理由はこちら!

  1. マイルールを厳守すべき。やっぱり欲が出たりお祈りトレードになったりして守れなかった。
  2. 素早い決断。買い時にためらう、損切りにためらう。スパっと決めるのが難しかった。
  3. 正確な注文。フォームに入力してボタンを押すまでに価格が変わってしまい、希望の価格で買えないことがよくあった。

私が目につけたのは、こちらの AKAGAMI さんのツイート。



Python は触ったことあるし、実行できる環境もあるのでものは試しと思い note を購入して実際に作成してみました!


$ ./trade.py s
LTP: 9062.0
Entry: Limit Sell: 10 @ 9062.5 / 49a400d4-cd72-9205-2f1b-79e03878c524
LTP: 9062.0
No Position
LTP: 9055.5
Close: Limit Buy: 10 @ 9042.5 / 0cd219b5-e627-a9d8-9195-7953456ed9c6
LTP: 9055.5
...
簡単な注文ならスクリプトからできますぜ!

BOTでの自動売買しない場合でも、フォームに値段を入力してボタンクリックするより高速に注文できるので、頻繁に売買する方には良いかな、と思いました。
あとは、VIX 戦術のアルゴリズムを組み込んで売買すれば、寝ているだけで資産が増える…となれば嬉しいですw
今まで、プログラムはいくつも書いてきたけど、直接資産を増やすスクリプトは今回がはじめです。

気合、入ってます!!

bitmex-logo-testnet

BitMEX で突然に発生する暴騰、急落をなんとか拾えないかと思い、ボットを作ってみようと思いました。

まだセットアップ終わってないんですが、簡単に紹介します。

まず、BitMEXの自動トレードについての説明ページです。
https://www.bitmex.com/app/automatedTradingEngines

プログラムのソースコードは github に置いてあります。
https://github.com/BitMEX/sample-market-maker

ZIP ファイルをダウンロードすればよいと思います。ZIP を展開するとこんな感じでした。

Makefile   __init__.py   marketmaker       setup.cfg  test
README.md  market_maker  requirements.txt  setup.py

まずは README.md を読みましょう!
本番のトレードで使うなよ、テストしろよ、などの注意書きがあります。

で、セットアップ手順はこちら。

1. Create a [Testnet BitMEX Account](https://testnet.bitmex.com) and [deposit some TBTC](https://testnet.bitmex.com/app/deposit).
2. Install: `pip install bitmex-market-maker`
3. Create a marketmaker project: run `marketmaker setup`
    * This will create `settings.py` and `market_maker/` in the working directory.
    * Modify `settings.py` to tune parameters.
4. Edit settings.py to add your [BitMEX API Key and Secret](https://testnet.bitmex.com/app/apiKeys) and change bot parameters.
    * Note that user/password authentication is not supported.
    * Run with `DRY_RUN=True` to test cost and spread.
5. Run it: `marketmaker [symbol]`
6. Satisfied with your bot's performance? Create a [live API Key](https://www.bitmex.com/app/apiKeys) for your
   BitMEX account, set the `BASE_URL` and start trading!

手順1:テストネットアカウント作成、テストコイン取得

README.md の通りに進めていきます。まず最初は、BitMEX のテストネットのアカウントを作るように案内されます。

BitMEX テストネット
https://testnet.bitmex.com/

本番と同じようにアカウントを作りましょう。念の為、メールアドレスは別のものを指定すること。
登録が終わったら指示通り、テストコインの入金をします。

テストコイン入金画面
https://testnet.bitmex.com/app/deposit

画面内に、テストコインが取得できるサイトの URL がありますので、好きなサイトからテストコインをもらいましょう!

bitmextest_20180315

1.3XBT...w テストコインと分かっているんだけど、本物だったらいいのにw
時間は少々掛かりますが入金されると思います。

手順2:python ライブラリのインストール

pip ってのをよく知らなかったんですが、perl や PHP にも似たようなパッケージ管理コマンドがあるので、それと似たようなものかな?w

私の環境では pip がインストールされていなかったので、次のコマンドでインストールしました。
※ 私は Ubuntu 派生 Linux を使っています。

$ sudo apt install python-pip
pip コマンドがインストールされます。
次に、README.md の指示通りにライブラリをインストールします。

$ pip install bitmex-market-maker
Collecting bitmex-market-maker
  Downloading bitmex-market-maker-1.3.tar.gz
Collecting requests (from bitmex-market-maker)
  Downloading requests-2.18.4-py2.py3-none-any.whl (88kB)
    100% |████████████████████████████████| 92kB 180kB/s 
Collecting websocket-client (from bitmex-market-maker)
  Downloading websocket_client-0.47.0-py2.py3-none-any.whl (200kB)
    100% |████████████████████████████████| 204kB 65kB/s 
Collecting future (from bitmex-market-maker)
  Downloading future-0.16.0.tar.gz (824kB)
    100% |████████████████████████████████| 829kB 48kB/s 
Collecting certifi>=2017.4.17 (from requests->bitmex-market-maker)
  Downloading certifi-2018.1.18-py2.py3-none-any.whl (151kB)
    100% |████████████████████████████████| 153kB 50kB/s 
Collecting chardet<3.1.0,>=3.0.2 (from requests->bitmex-market-maker)
  Downloading chardet-3.0.4-py2.py3-none-any.whl (133kB)
    100% |████████████████████████████████| 143kB 61kB/s 
Collecting idna<2.7,>=2.5 (from requests->bitmex-market-maker)
  Downloading idna-2.6-py2.py3-none-any.whl (56kB)
    100% |████████████████████████████████| 61kB 103kB/s 
Collecting urllib3<1.23,>=1.21.1 (from requests->bitmex-market-maker)
  Downloading urllib3-1.22-py2.py3-none-any.whl (132kB)
    100% |████████████████████████████████| 133kB 73kB/s 
Collecting six (from websocket-client->bitmex-market-maker)
  Downloading six-1.11.0-py2.py3-none-any.whl
Building wheels for collected packages: bitmex-market-maker, future
  Running setup.py bdist_wheel for bitmex-market-maker ... done
  Stored in directory: /home/user/.cache/pip/wheels/26/e2/bc/5477b10308f83cd591da5d696ea3b3f590f7e6dc7d06c3ecf2
  Running setup.py bdist_wheel for future ... done
  Stored in directory: /home/user/.cache/pip/wheels/c2/50/7c/0d83b4baac4f63ff7a765bd16390d2ab43c93587fac9d6017a
Successfully built bitmex-market-maker future
Installing collected packages: certifi, chardet, idna, urllib3, requests, six, websocket-client, future, bitmex-market-maker
Successfully installed bitmex-market-maker certifi chardet-2.3.0 future idna-2.0 requests-2.9.1 six-1.10.0 urllib3-1.13.1 websocket-client
You are using pip version 8.1.1, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
pip の新しいバージョンがあるそうですが、今はスルーでw


手順3:marketmaker のセットアップ

どうやらプロジェクトなるものが必要らしいので、コマンドを実行してみます。
$ ./marketmaker setup
Traceback (most recent call last):
  File "./marketmaker", line 3, in 
    from market_maker import market_maker
  File "/usr/local/src/BitMEX/sample-market-maker-master/market_maker/market_maker.py", line 11, in 
    from market_maker import bitmex
  File "/usr/local/src/BitMEX/sample-market-maker-master/market_maker/bitmex.py", line 12, in 
    from market_maker.ws.ws_thread import BitMEXWebsocket
  File "/usr/local/src/BitMEX/sample-market-maker-master/market_maker/ws/ws_thread.py", line 10, in 
    from market_maker.settings import settings
  File "/usr/local/src/BitMEX/sample-market-maker-master/market_maker/settings.py", line 25, in 
    userSettings = import_path(os.path.join('.', 'settings'))
  File "/usr/local/src/BitMEX/sample-market-maker-master/market_maker/settings.py", line 19, in import_path
    module = importlib.import_module(filename, path)
  File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
ImportError: No module named settings
$
さて…とw

$HOME/.local/lib/python2.7/site-packages/market_maker/ にライブラリがあるみたいなのですが探せていないのでしょうか。

環境変数設定したり sys.path.append でパスを足してみてもだめでした。
残念ながら今日はここまで。

また明日、調査します!(オープンソースって、大抵すんなりとは動きませんよねw)



↑このページのトップヘ