[ccxt Liquid(Quoinex)] ボーナスQASHが入ったら通知/売却するコード【無用の長物】
This is 何
クソコードの墓場(R.I.P.)
Liquidのキャンペーン
Liquidさん、こんなキャンペーンやってました。
https://www.liquid.com/campaign3-jp/
https://www.liquid.com/campaign3-jp-user/
12/25: 「12/26(翌日)までに詳細連絡するで!」
12/26: 「やっぱ付与時期延期な!1月頭までな!」
上記のように、連絡がグダグダで何日何時に入金されるかハッキリしないので、プログラムで解決しようとコード書いてました。エラーになるのを覚悟で成売部分を動かしてみました。
入金されてて成売成功しました(白目
12/28: 「さっき付与しといたで!!HODLしてくれたら追加キャンペーンあるで!」(すでに成売した後にメール来ました
コード
ということでもはや不要のコードなのですが、供養のため貼っておきます。
やってること(全体的に適当)
・QASH残高 初期値を取得
・定期的にQASH残高を取得して、ボーナスゲットしてないか確認
・(フラグONなら)QASHを売る
・Discord/LINE のコンフィグが設定されてたら節目節目で通知
import ccxt
from datetime import datetime
from time import sleep
import requests
# LIQUID
API_KEY = 123456
API_SECRET = ""
FETCH_ITV = 5 # [sec]
SELL_ALL = True # QASH全額売却
SELL_BONUS = True # QASHボーナス分だけ売却
SYMBOL = "QASH/JPY"
# Discord
DISCORD_URL = ""
DISCORD_USER = ""
MENTION
# LINE
LINE_TOKEN = ""
LINE_NOTIFY_URL = "https://notify-api.line.me/api/notify"
def fetch_qash_balance(liquid):
while True:
try:
balance = liquid.fetch_balance()
break
except Exception as e:
print(e)
sleep(3)
return balance["QASH"]["total"]
def sell_qash(liquid, amount):
while True:
try:
res = liquid.create_market_sell_order(SYMBOL, amount)
break
except Exception as e:
print(e)
sleep(3)
return res
def discord_send(message, is_mention=False):
if any([not DISCORD_URL, not DISCORD_USER]): return
if is_mention: message = f'@everyone\n{message}'
data = {"content": " " + message + " ", "username": DISCORD_USER}
while True:
try:
r = requests.post(DISCORD_URL, data=data)
if r.status_code in [200, 204]:
break
else:
print(f'Error(Discord)\t{r.status_code}\t{r.text}')
except Exception as e:
print(f'Error(Discord)\t{e}')
sleep(3)
def line_send(message):
if not LINE_TOKEN: return
headers = {'Authorization': 'Bearer ' + LINE_TOKEN}
payload = {'message': message}
while True:
try:
r = requests.post(LINE_NOTIFY_URL, data=payload, headers=headers)
if r.status_code in [200, 204]:
break
else:
print(f'Error(LINE)\t{r.status_code}\t{r.text}')
except Exception as e:
print(f'Error(LINE)\t{e}')
sleep(3)
if __name__ == '__main__':
liquid = ccxt.liquid({"api_key": API_KEY, "secret": API_SECRET})
initial_qash = fetch_qash_balance(liquid)
initial_qash = 1
message = f'{datetime.now()}\tInitial QASH: {initial_qash}'
print(message)
discord_send(message, True)
line_send(message)
while True:
sleep(FETCH_ITV)
qash = fetch_qash_balance(liquid)
qash = initial_qash + 1
if initial_qash < qash: break
message = f'{datetime.now()}\tQASH increased: {initial_qash} -> {qash} (+{qash - initial_qash})'
print(message)
discord_send(message, True)
line_send(message)
if SELL_ALL or SELL_BONUS:
sell_amount = qash if SELL_ALL else qash - initial_qash
print(sell_amount)
res = sell_qash(liquid, sell_amount)
message = f'{datetime.now()}\tQASH sold: {sell_amount} {res}'
print(message)
discord_send(message, True)
line_send(message)
APIキーの発行
https://app.liquid.com/ja/settings/api-tokens
マガジン
干し芋
サポート頂けると励みになります BTC,BCH: 39kcicufyycWVf8gcGxgsFn2B8Nd7reNUA LTC: LUFGHgdx1qqashDw4WxDcSYQPzd9w9f3iL MONA: MJXExiB7T7FFXKYf9SLqykrtGYDFn3gnaM