質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

1442閲覧

pythonでzaif trade APIの戻り値を取得したい

退会済みユーザー

退会済みユーザー

総合スコア0

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2018/07/20 22:21

編集2018/07/20 22:24

python 3.6.5を使用しております。

過去にPHPでzaifのAPI取引用botを作成したのですが…
pythonでも作成してみたくなり勉強を始めたばかりで、pythonはまったくの初心者です。

PHPですと以下のプログラムで注文と戻り値の表示ができます。

<?php //必要ファイルの読み込み require 'Zaif.php'; require 'api.php'; require 'dbconnect.php'; //インスタンスの生成 $zaif = new Zaif($key, $secret); //注文処理 $price = 18; $amount = 0.1; $trade_ask = $zaif->trade("trade", array( 'currency_pair' => 'xem_jpy', 'action' => 'bid', 'price' => $price, 'amount' => $amount ) ); var_dump($trade_ask); ?>

戻り値は以下です。

object(stdClass)#3 (2) { ["success"]=> int(1) ["return"]=> object(stdClass)#4 (4) { ["received"]=> float(0) ["remains"]=> float(0.1) ["order_id"]=> int(357470635) ["funds"]=> object(stdClass)#5 (8) { ["jpy"]=> float(33434.71898225) ["btc"]=> float(0) ["xem"]=> float(0.69142518) ["mona"]=> float(0) ["BCH"]=> float(8.13E-5) ["JPYZ"]=> float(0.0001) ["PEPECASH"]=> float(3.00003841) ["ZAIF"]=> float(374.0699) } } }

pythonでは以下のように記述してみました。
注文は成功するのですが戻り値を表示できません。(そもそも取得できているのかどうかもわからないです)
どうかご教示頂きますようお願い致します。

from zaifapi import *
import math

zaif = ZaifPublicApi()
ticker = zaif.ticker('btc_jpy')

last = ticker['last']
bid = ticker['bid']
ask = ticker['ask']

key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

zaif = ZaifTradeApi(key, secret)
zaif.trade(currency_pair='btc_jpy',
action='bid',
amount= 0.0001,
price = math.floor(bid - 20000),
limit = math.floor(ask + 20000))

print(zaif)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

zaif = ZaifTradeApi(key, secret)
order = zaif.trade(currency_pair='btc_jpy',
action='bid',
amount= 0.0001,
price = math.floor(bid - 20000),
limit = math.floor(ask + 20000))

print(order)

↓戻り値
{'received': 0.0, 'remains': 0.0001, 'order_id': 357535046, 'funds': {'jpy': 33357.75298225, 'btc': 0.0, 'xem': 0.69142518, 'mona': 0.0, 'BCH': 8.13e-05, 'JPYZ': 0.0001, 'PEPECASH': 3.00003841, 'ZAIF': 374.0699}}

変数名(order)を用意してやらないといけなかったんですね。
自己解決できましたのでクローズさせていただきます。
ご覧頂きありがとうございました。

投稿2018/07/21 01:27

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問