<bitcoin.py>
from zaifapi import ZaifPublicStreamApi
import csv
import RPi.GPIO as GPIO
import time
import subprocess
TARGET_CURRENCY_PAIR = 'btc_jpy'
GPIO.setmode(GPIO.BCM)
GPIO.setup(22, GPIO.OUT)
GPIO.setup(27, GPIO.OUT)
zaif_stream = ZaifPublicStreamApi()
for stream in zaif_stream.execute(currency_pair=TARGET_CURRENCY_PAIR):
time_str = stream['timestamp']
last_price = stream['last_price']['price']
print(time_str,last_price)
if last_price > 832000:
GPIO.output(22, False)
subprocess.check_call(['python3','sall.py'])
time.sleep(60)
GPIO.output(22, True)
if last_price < 832000:
GPIO.output(27, False)
subprocess.check_call(['python3','buy.py'])
time.sleep(60)
GPIO.output(27, True)
GPIO.cleanup()
このコードでは832000円以上で売却プログラム sale.pyを動かし、821000円以下で購入プログラム
buy.pyを動かします。
ちなみにsale.pyとbuy.pyはこんな具合です。※keyとsecretにzaifから取得したものを入力してください。
(sale.py)
from zaifapi import *
TARGET_CURRENCY_PAIR = 'btc_jpy'
zaif = ZaifPublicApi()
zaif.last_price('btc_jpy')
zaif_stream = ZaifPublicStreamApi()
key = '***************************'
secret = '*****************************'
for stream in zaif_stream.execute(currency_pair=TARGET_CURRENCY_PAIR):
time_str = stream['timestamp']
last_price = stream['last_price']['price']
print(time_str, last_price)
break
zaif = ZaifTradeApi(key, secret)
zaif.trade(currency_pair='btc_jpy',
action='ask',
amount=0.001,
price=int(last_price))
(buy.py)
from zaifapi import *
TARGET_CURRENCY_PAIR = 'btc_jpy'
zaif = ZaifPublicApi()
zaif.last_price('btc_jpy')
zaif_stream = ZaifPublicStreamApi()
key = '***********************************'
secret = '**********************************'
for stream in zaif_stream.execute(currency_pair=TARGET_CURRENCY_PAIR):
time_str = stream['timestamp']
last_price = stream['last_price']['price']
print(time_str, last_price)
break
zaif = ZaifTradeApi(key, secret)
zaif.trade(currency_pair='btc_jpy',
action='bid',
amount=0.001,
price=int(last_price))
購入・売却金額は price=int(last_price))としており現在値で指していきます。amount=0.001の数字が売買するビットコインです。
残高がなかったりするとエラーで止まりますが、とりあえず自動売買ができます。
下がってから購入し、上がってから売るので儲かる… ハズ笑
マネするときは自己責任でお願いします。というかそもそもラズパイでやる必要があるのかどうか・・。
5/26 少しコードを更新しました。 エラーになってもbitcoin.pyをcronで1分に一回呼び出せば
継続的にプログラムを動作させることができます。また、売りか買いで・・・
Lチカします!!!