teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

エラー文の追加

2021/04/17 03:44

投稿

Na3430mls
Na3430mls

スコア3

title CHANGED
File without changes
body CHANGED
@@ -115,5 +115,11 @@
115
115
 
116
116
  elif order_type =="get_balance":
117
117
  get_balance()
118
+ ```
118
119
 
120
+
121
+ ```エラー文
122
+ if balance ["amount"] == 0:
123
+ TypeError: string indices must be integers
124
+
119
125
  ```

2

情報の追加

2021/04/17 03:44

投稿

Na3430mls
Na3430mls

スコア3

title CHANGED
File without changes
body CHANGED
@@ -9,6 +9,11 @@
9
9
  開発環境はpython3.8.8です。jupyter notebookを使って書いていますが、Flaskを使ってWebアプリケーション形式にすることを想定しています。
10
10
  個人情報保護のため、API_KEYとSECRETは削除しています!
11
11
 
12
+ *追記情報*
13
+ HTMLのformからvalueを受けとって、受け取った値によって条件分岐させる構造です。
14
+ get_balanceという関数を同ファイルに書いて、イベントが起こった時に呼び出す形になっています。
15
+ データを取得に成功したらHTMLに表示させるつもりなので、取得した値は変数に入れたいです。
16
+
12
17
  ```Python
13
18
  import pybitflyer
14
19
  import time
@@ -34,4 +39,81 @@
34
39
  if(BALANCE_KEY[1]=!0)
35
40
  print(balance_key + " : " + str(balance[balance_key]))
36
41
  print("=================================================")
42
+
43
+
44
+
45
+ ``````Python
46
+ コード
47
+ ```
48
+
49
+ import pybitflyer
50
+ from flask import Flask, render_template,request
51
+ import time
52
+ from datetime import datetime
53
+ import json
54
+ from dateutil import parser
55
+ from pytz import timezone
56
+
57
+
58
+
59
+ BASE_URL ="https://api.bitflyer.jp"
60
+ url = BASE_URL + "POST /v1/me/sendchildorder"
61
+
62
+ API_KEY = ""
63
+ API_SECRET =""
64
+ api = pybitflyer.API(API_KEY,API_SECRET)
65
+
66
+
67
+
68
+ nounce =str(int(time.time()))
69
+
70
+ app = Flask(__name__)
71
+
72
+ #残高を取得する関数
73
+ def get_balance():
74
+
75
+ BALANCE_KEYS =["currency_code",
76
+ "amount",
77
+ "available"]
78
+
79
+ balances =api.getbalance(product_code="BTC_JPY")
80
+
81
+ for balance in balances:
82
+ if balance ["amount"] == 0:
83
+ continue
84
+ for balance_key in BALANCE_KEYS:
85
+ print(balance_key + " : " + str(balance[balance_key]))
86
+ print("=================================================")
87
+
88
+
89
+ @app.route("/order",methods=["POST"])
90
+ #受け取った値に応じて関数を呼び出し
91
+ def receive_market():
92
+ order_type = request.form.get('order_type')
93
+ if order_type == "buy_market":
94
+ #成行買い
95
+ buy_btc=api.sendchildorder(
96
+
97
+ product_code ="XRP_JPY",
98
+ child_order_type="MARKET",
99
+ side="BUY",
100
+ size=0.1,
101
+ minute_to_expire=1000,
102
+ time_in_force="GTC"
103
+ )
104
+
105
+ elif order_type == "sell_market":
106
+ #成行売り
107
+ sell_btc=api.sendchildorder(
108
+
109
+ product_code ="XRP_JPY",
110
+ child_order_type="MARKET",
111
+ side="SELL",
112
+ size=0.1,
113
+ minute_to_expire=1000,
114
+ time_in_force="GTC"
115
+
116
+ elif order_type =="get_balance":
117
+ get_balance()
118
+
37
119
  ```

1

情報の追加

2021/04/17 03:41

投稿

Na3430mls
Na3430mls

スコア3

title CHANGED
File without changes
body CHANGED
@@ -7,6 +7,7 @@
7
7
 
8
8
  どのように書き換えれば、保有しているコインの情報だけを(amountが0でない)要素を取得できるでしょうか。
9
9
  開発環境はpython3.8.8です。jupyter notebookを使って書いていますが、Flaskを使ってWebアプリケーション形式にすることを想定しています。
10
+ 個人情報保護のため、API_KEYとSECRETは削除しています!
10
11
 
11
12
  ```Python
12
13
  import pybitflyer