Monacoin(モナーコイン)の自動取引botでトレードその2ー自動売買する(ZaifでPython使用 MAC版)
スポンサードリンク
こんにちは!ゆとりのコアラです。
本シリーズの前回では、ZaifのAPIを使って直近の終値を取得するところまで開発してみました。今回は自動で売買してみようと思います。
1.ZaifのAPIキーを取得する
アカウントメニューの「開発者向けAPI」を押すと、APIキーの管理画面が出てきます。
真ん中あたりにある、Get Verification CodeからAPIキーを取得しましょう。
認証メールが届くので1時間以内に6桁のキーを入力しましょう。
そしてAPIキーのアカウント?を作ります。名前は適当に。
機能としては、Info(公開情報の取得)、Trade(取引の実施)にチェックを付けておきます。必要であれば、Withdraw(出金)もつけておいてよいでしょう。
2.認証キーをjsonファイルに記載しておきましょう
Zaifフォルダの直下に「zaif_keys.json」ファイルを作ります。
jsonファイルの中身はこんな感じ。
{
"key": "xxxxxxxxxxxxxxxx",
"secret": "wwwwwwwwwwww"
}
3.jsonファイルに書いた認証キーを読み込んで、日本円残高を取得してみましょう
--- コード ------------------------
# -*- coding: utf-8 -*-
# 2017/11/23 EUCALYPTUS is ALL Koala's food. by Monakoala
import time
import json
from zaifapi import ZaifPublicApi
from zaifapi import ZaifTradeApi
zaif_keys_json = open('zaif_keys.json', 'r')
zaif_keys = json.load(zaif_keys_json)
zaif_i = ZaifPublicApi()
zaif_t = ZaifTradeApi(zaif_keys["key"], zaif_keys["secret"])
if __name__ == '__main__':
while True:
time.sleep(3)
last_price = zaif_i.last_price('mona_jpy')["last_price"]
print('終値' + str(last_price))
funds = zaif_t.get_info2()
print(str('日本円残高' + str(funds['funds']['jpy'])))
実行結果
4.日本円残高で買える分のMonaを買い増そう
いくで。やるで。モナ買いましや!
# -*- coding: utf-8 -*-
# 2017/11/23 EUCALYPTUS is ALL Koala's food. by Monakoala
import time
import json
import math
from zaifapi import ZaifPublicApi
from zaifapi import ZaifTradeApi
zaif_keys_json = open('zaif_keys.json', 'r')
zaif_keys = json.load(zaif_keys_json)
zaif_i = ZaifPublicApi()
zaif_t = ZaifTradeApi(zaif_keys["key"], zaif_keys["secret"])
if __name__ == '__main__':
while True:
time.sleep(3)
last_price = zaif_i.last_price('mona_jpy')["last_price"]
print('終値 ' + str(last_price))
funds = zaif_t.get_info2()
print(str('日本円残高 ' + str(funds['funds']['jpy'])))
print(str('モナ残高 ' + str(funds['funds']['mona'])))
# 売り板の一番上の価格と数量を取得する。
bid_price, bid_amount = zaif_i.depth('mona_jpy')["bids"][0]
# 日本円残高が1000円以上ある場合
if funds['funds']['jpy'] >= 1000:
# 売り板の価格に対して、1000円で買える枚数を計算する
amount = math.floor(1000 / bid_price)
# 買い取引の注文
print('↓注文')
result = zaif_t.trade(currency_pair="mona_jpy", action="bid", \
price=bid_price, amount=amount)
実行結果
結果:2 mona買えました!
action="bid" を action="ask"にすると売りも出来ます。
現在価格から1%下がったら、買い、1%上がったら、売るなど、自由に条件を設定していきましょう!
では!