Bitbank活用メモ(ETH入金, CCXT PostOnly でドルコスト)備忘録

Bitbank活用メモ(ETH入金, CCXT PostOnly でドルコスト)備忘録

作業の備忘録です。内容が間違っていたり、もっと良い方法があれば是非コメントをいただきたいです。投げ銭(ポイント)をお返しします。

本ページは仮想通貨の投資を勧めるものではありません(Not financial advice)。

  • MetamaskからBitbankへETHの入金が失敗する
  • CCXTを使ってPostOnlyで注文する

MetamaskからBitbankへETHの入金が失敗する(直りました)

Metamaskを愛用しているのですが、最近(2021年7月)bitbankにETHを入金すると、下のように失敗しました。

GAS代を多めにしても駄目でMetamaskでは無理そうだったのでMyEtherWalletで試すと、わずか4 Gweiで入金できました。

入金できない事と関係あるのか判りませんが、bitbankへのETH入金はスマートコントラクトのアドレスに変わったらしいです。

(追記)2022年1月には直っていました。Metamaskのバージョンアップの

おかげかも?

参考

CCXTを使ってPostOnlyで注文する

bitbankでの注文が、成り行きで約定しないPostOnlyに対応したらしいのですが、CCXT(バージョン1.48.9)は対応していなかったので方法を調べました。

CCXT未対応のAPIパラメータは、下の様にparams引数の指定でオーバーライドする事ができました。

params = {'post_only': True}

参考

おまけ(ドルコスト平均法的なCCXT使用例)

毎日8:30に1,000円ずつ、BTCの買い注文を出すスクリプトの例です。

ファイル名:"buy_btc.py":

import ccxt
from datetime import datetime
from time import sleep
import json

symbol = "BTC/JPY"
SIZE_MIN = 0.0001
SATOSHI = 0.00000001
BUDGET_JPY = 1000
SLEEP_TRADE = 60 * 60 # 1 hour
SLEEP_LOOP = 60       # 1 min  
SLEEP_API = 1         # 1 sec

bitbank = ccxt.bitbank({
    "apiKey": "<APIKEY>",
    "secret": "<SECRET>"
})

while( True ):
    now_time = datetime.now() # time control
    if ( (now_time.minute > 30) and (now_time.hour == 8) ):
        # cancel
        try :
            result_order = bitbank.fetch_open_orders(symbol = symbol)
            for loop in range(len(result_order)) :
                result = bitbank.cancel_order(id = result_order[loop]["id"], symbol = symbol)
        except (ccxt.BaseError) as e:
            print("Error", e)
        sleep(SLEEP_API)
        # order
        try:
            data = bitbank.fetch_ticker(symbol = symbol)
            price = data["bid"]
            amount = int(((BUDGET_JPY / price) + (SIZE_MIN - SATOSHI)) / SIZE_MIN) * SIZE_MIN
            result = bitbank.create_limit_buy_order(symbol = symbol, amount = amount, price = price, params = {'post_only': True})
            print( str(now_time.strftime("%Y/%m/%d %H:%M:%S")) )
            print(json.dumps(result, indent=True))
            sleep(SLEEP_TRADE)
        except ccxt.BaseError as e:
            print("Error", e)
        sleep(SLEEP_API)
    sleep(SLEEP_LOOP)

スクリプトを下のコマンドで実行するとsshを抜けても動き続けます。

$ nohup python3 ./buy_btc.py &
Remaining : 0 characters / 0 images
100

Sign up / Continue after login

Related stories

Writer

The Shiba Inu (柴犬) is a most popular dog in Japan.

Share

Popular stories

RaspberryPi小ネタ(OS起動でLED点滅、シャットダウンスイッチ、Lチカ)備忘録

5087

RaspberryPiでダッシュボードを作る(Grafana InfluxDB)備忘録

2387

太陽電池でビットコインをマイニング3 ~RaspberryPi採用で効率アップ~

1105