noda-sin / ebisu

Bitmex Simple and Powerful Trading Bot
MIT License
83 stars 32 forks source link

main.py 実行時に #2

Closed surume-ika closed 6 years ago

surume-ika commented 6 years ago

noda-sin様、bot公開ありがとうございます。どう動くのかワクワクします。

aws上で動かすつもりなのですが、 記載していただいた手順をふみ実行すると下記のようなエラーがでました。

` Traceback (most recent call last): File "main.py", line 7, in from src.factory import BotFactory File "/home/ubuntu/ebisu/src/factory.py", line 24 raise Exception(f"Not Found Strategy : {args.strategy}") ^ SyntaxError: invalid syntax

`

gitlab.comの方でのクローンできなかったので、githubの方でクローンさせていただきました。 実行時にpython main.py --strategy Doten 等とコマンドを打ちました。

お時間ございましたらご教授いただけると幸いです。

noda-sin commented 6 years ago

@surume-ika さん invalid syntaxと記載があるので、構文エラーです。 考えられる原因としては、お使いのawsに入っているpythonのバージョンがあっていないためではないかと考えられます。以下のコマンドを実行した際に出力される結果をおしえていただけませんか?

$ python --version

よろしくお願いいたします。

surume-ika commented 6 years ago

ご丁寧にご回答ありがとうございます!

以下実行環境にです。 cd ta-lib/ebisu/

python --version Python 2.7.12

python3 --version Python 3.5.2

python3.6 --version Python 3.6.5

とありまして、 実行時、 python3.6 main.py --strategy Doten と打ってみたのですが、

` Traceback (most recent call last): File "main.py", line 7, in from src.factory import BotFactory File "/home/ubuntu/ta-lib/ebisu/src/init.py", line 10, in import numpy as np ModuleNotFoundError: No module named 'numpy' Error in sys.excepthook: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook from apport.fileutils import likely_packaged, get_recent_crashes File "/usr/lib/python3/dist-packages/apport/init.py", line 5, in from apport.report import Report File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in import apport.fileutils File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in from apport.packaging_impl import impl as packaging File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 23, in import apt File "/usr/lib/python3/dist-packages/apt/init.py", line 23, in import apt_pkg ModuleNotFoundError: No module named 'apt_pkg'

Original exception was: Traceback (most recent call last): File "main.py", line 7, in from src.factory import BotFactory File "/home/ubuntu/ebisu/src/init.py", line 13, in import talib ModuleNotFoundError: No module named 'talib'

`

になります。 python install -r requirements.txt だと、うまくインストールできなかったので、pip3 とかでインストールしてしまった気がしますがこれも原因のひとつでしょうか。。。

何か打開案などございましたらご教授いただけると幸いです。 いかがでしょうか。

noda-sin commented 6 years ago

@surume-ika さん

ModuleNotFoundError: No module named 'numpy'

と記載があるので、numpyが入っていないようですね。

python install -r requirements.txt だと、うまくインストールできなかったので、pip3 とかでインストールしてしまった気がしますがこれも原因のひとつでしょうか。。。

すみません。こちら、READMEが間違っていました。pip3 install -r requirements.txt を実施して再度試していただけますか?

また、pythonのバージョンが3つ入っているとのことですが、cloud9の環境だったりしますか?(環境がわかれば、原因調査しやすいので教えてください)

よろしくお願いいたします。

surume-ika commented 6 years ago

@noda-sin 様 ありがとうございます。aws micro.t2 でございます。cloud9ではございません。。

いただきました方法で、pip3でインストールできました!ありがとうございます。 早速実行しましたら

`python3.6 main.py --strategy Doten 2018-07-20 23:38:59,178 - INFO - Generating grammar tables from /usr/lib/python3.6/lib2to3/Grammar.txt 2018-07-20 23:38:59,203 - INFO - Generating grammar tables from /usr/lib/python3.6/lib2to3/PatternGrammar.txt 2018-07-20 23:38:59,990 - INFO - Starting Bot 2018-07-20 23:38:59,991 - INFO - Strategy : Doten 2018-07-20 23:38:59,991 - INFO - Bot Mode : Trade Traceback (most recent call last): File "main.py", line 21, in bot.run() File "/home/ubuntu/ebisu/src/bot.py", line 125, in run self.exchange.on_update(self.bin_size, self.strategy) File "/home/ubuntu/ebisu/src/bitmex.py", line 538, in on_update self.ws = BitMexWs(test=self.demo) File "/home/ubuntu/ebisu/src/bitmex_websocket.py", line 59, in init header=self.get_auth()) File "/home/ubuntu/ebisu/src/bitmex_websocket.py", line 71, in get_auth if len(api_key) > 0 and len(api_secret): TypeError: object of type 'NoneType' has no len() Error in sys.excepthook: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook from apport.fileutils import likely_packaged, get_recent_crashes File "/usr/lib/python3/dist-packages/apport/init.py", line 5, in from apport.report import Report File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in import apport.fileutils File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in from apport.packaging_impl import impl as packaging File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 23, in import apt File "/usr/lib/python3/dist-packages/apt/init.py", line 23, in import apt_pkg ModuleNotFoundError: No module named 'apt_pkg'

Original exception was: Traceback (most recent call last): File "main.py", line 21, in bot.run() File "/home/ubuntu/ebisu/src/bot.py", line 125, in run self.exchange.on_update(self.bin_size, self.strategy) File "/home/ubuntu/ebisu/src/bitmex.py", line 538, in on_update self.ws = BitMexWs(test=self.demo) File "/home/ubuntu/ebisu/src/bitmex_websocket.py", line 59, in init header=self.get_auth()) File "/home/ubuntu/ebisu/src/bitmex_websocket.py", line 71, in get_auth if len(api_key) > 0 and len(api_secret): TypeError: object of type 'NoneType' has no len()`

あと少しという所で止まってしまいました。。。 こちらはapikeyの書き方が間違っていたのでしょうか。。。 ~/.bash_profile に記載しておりましたが、どこか他のconfigとかにそのような場所があるのでしょうか。。。

noda-sin commented 6 years ago

@surume-ika さん おっしゃる通り、恐らくAPI KEYの読み込みができていないのだと思います。

$ env

とコマンドを実行して、

BITMEX_APIKEY=***********
BITMEX_SECRET=***********

の行が出力されることを確認してください。 読み込みできない場合は、

$ source ~/.bash_profile

と実行してみるか、一回AWSからログアウトして、ログインし直してみてください。

よろしくお願いいたします。

surume-ika commented 6 years ago

ありがとうございます!! 現時点ではそのような行が見つからないです。。。

`:~/ebisu# env

NVM_CD_FLAGS= SHELL=/bin/bash TERM=xterm-256color GOBIN=/home/ubuntu/go_projects/bin OLDPWD=/home/ubuntu NVM_DIR=/home/ubuntu/.nvm USER=root LS_COLORS=rs=省略: SUDO_USER=ubuntu SUDO_UID=1000 USERNAME=root MAIL=/var/mail/root PATH=/home/ubuntu/.nvm/versions/node/v8.5.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/home/ubuntu/bin:/usr/local/go/bin:/home/ubuntu/bin:/usr/local/go/bin PWD=/home/ubuntu/ebisu LANG=en_US.UTF-8 SHLVL=1 SUDO_COMMAND=/bin/bash HOME=/home/ubuntu GOROOT=/usr/local/go LOGNAME=root GOPATH=/home/ubuntu/go_projects NVM_BIN=/home/ubuntu/.nvm/versions/node/v8.5.0/bin LESSOPEN=| /usr/bin/lesspipe %s SUDOGID=1000 LESSCLOSE=/usr/bin/lesspipe %s %s =/usr/bin/env`

.bash_profileには、

` BITMEX_APIKEY=省略 BITMEX_SECRET=省略 LINE_APIKEY=省略

ebisumex

Get the aliases and functions

if [ -f ~/.bashrc ]; then . ~/.bashrc fi

User specific environment and startup programs

PATH=$PATH:$HOME/bin export PATH export PATH=$PATH:/usr/local/go/bin export GOPATH=$HOME/go_projects export GOBIN=$GOPATH/bin export GOROOT=/usr/local/go

/usr/local/go/bin/g

`

と記載しています。。。 いただいたログアウトやsource も実行してみましたが、、、。。。 .bash_profileの書き方何か違っているのでしょうか。。。

noda-sin commented 6 years ago
export BITMEX_APIKEY=省略
export BITMEX_SECRET=省略
export LINE_APIKEY=省略

exportを先頭につけて

$ source ~/.bash_profile
$ env

と実行してみていただけませんか?

surume-ika commented 6 years ago

@noda-sin 様ありがとうございます!envにて表記されまして実行できました。 Lineの方にエラーが送られてきました!!!

Ebisu-mex: Error occurred. Handshake status 401 Unauthorized

Ebisu-mex: Traceback (most recent call last): File "/usr/local/lib/python3.6/dist-packages/websocket/_app.py", line 236, in run_forever host=host, origin=origin) File "/usr/local/lib/python3.6/dist-packages/websocket/_core.py", line 220, in connect self.handshake_response = handshake(self.sock, *addrs, **options) File "/usr/local/lib/python3.6/dist-packages/websocket/_handshake.py", line 69, in handshake status, resp = _get_resp_headers(sock) File "/usr/local/lib/python3.6/dist-packages/websocket/_handshake.py", line 135, in _get_resp_headers raise WebSocketBadStatusException("Handshake status %d %s", status, status_message) websocket._exceptions.WebSocketBadStatusException: Handshake status 401 Unauthorized

Handshakeとはなんでしょうか。。。 夜分遅くすみません。。。明日でも全然構いませんので。。。お手数おかけしています。。。。 これみればできるよ!などあれば、自力でもやりますので!

よろしくお願いいたします!

noda-sin commented 6 years ago

@surume-ika さん

動いてはいますが、401 Unauthorized とあるようにBitmexに接続しようとしたが許可されていないようです。 証拠金が含まれていないBitmexのアカウントか、API KEYが間違っているなど考えられますが、何か心当たりはありませんか?

ちなみに Handshake とは、サーバーとクライアントが接続を行う際に行われる儀式のことを指します。日本語で 握手 の意味です。https://ja.wikipedia.org/wiki/3%E3%82%A6%E3%82%A7%E3%82%A4%E3%83%BB%E3%83%8F%E3%83%B3%E3%83%89%E3%82%B7%E3%82%A7%E3%82%A4%E3%82%AF

夜分遅くすみません。。。明日でも全然構いませんので。。。お手数おかけしています。。。。

花金満喫で無駄に夜遅くまで起きてるだけなんで、問題ありませんw

surume-ika commented 6 years ago

@noda-sin 様 最上級のありがとうございます!! 新しく発行しましてDotenストラテジー動きましたーーー!!! 本当にありがとうございます!大切に使います。。。 RciやSmaも色々使わせていただきます!ご教授誠にありがとうございました!!

noda-sin commented 6 years ago

@surume-ika さん いろいろドキュメントに不備があってすみませんでした。。。 でも、動いたとのことでよかったです! また、質問・バグ報告・機能追加・戦略の実装依頼などあれば、お願いいたします。