ラズパイ暗号資産自動取引8月結果報告

2021/09/06

Apple AppleSilicon IoT Python ガジェット ラズパイ 暗号資産 開発

ラズパイ暗号資産自動取引8月結果報告

こんにちはICHIKENです。

ラズパイPythonで暗号資産の自動取引を開始して約3ヶ月。(自動取引Pythonスクリプトは未公開)

8月の取引実績と資産推移をまとめます。グラフ作成コードも載せていますので参考にどうぞ。

自動取引ソフトの設計図はこちら

Python暗号資産自動取引ソフトの設計図

前提条件

まず前提条件となる私の環境です。

自動取引を実行しているラズパイの環境はこちら。

取引所 Binance US
Raspberry Pi 4 Model B 2GB
OS Raspbian GNU/Linux 10 (buster)
VSCode 1.55.2
Python 3.7.3
python-binance 1.0.10

グラフ作成環境はこちら

PC MacBook Air (M1, 2020)
macOS 11.5.2
VSCode 1.55.2
Python 3.8.2
pandas 1.3.0.dev0+1761.ga811c9694a
matplotlib 3.4.2
openpyxl 3.0.7
mplfinance 0.12.7a17

Appleシリコンへ主要ツールを入れる方法はこちら

M1Macにnumpy | matplotlib | pandasをインストール

8月の収支報告

では本題の収支報告に行きましょう。

取引実績

自動取引の結果はこのようになりました。

ラズパイ暗号資産自動取引の8月結果

自動売買による合計取引回数は1098回。利益は+332$。8月は上げ相場の波に自動取引もうまく乗っかり、利益を出すことができました。大きめの下げと上げを破綻せずに乗り越えたので一安心です。

各通貨ごとの利益と売買回数はこのようになりました。

ラズパイ暗号資産自動取引の各通貨売買実績グラフ

ADAとBNBは途中で保有量を増やすように調整したため、買いが多くなり利益が出ませんでした。当然といえば当然ですが、特にBNBは調整タイミングが悪かったですね。

保有資産推移

資産推移はこのようになりました。

ラズパイ暗号資産自動取引の8月資産推移

ざっくり1ヶ月で20%くらい増えました。自動売買自体で利益が出たのと、そもそも上げ相場で保有してる通貨の価値が上昇したままになっているためですね。ずっとこんな調子なら苦労しないんですけどね〜w

ローソク足グラフの作り方はこちら

Pythonでローソク足チャート作成 | シミュレーション出力サンプルコード付き

グラフ出力のサンプルコード

BinanceUSから取得できる取引履歴から上の結果やグラフを出力するためのサンプルコードです。

解説はこちらのページを参考にしてください。

Pandasピボットテーブルを使ってBinance US取引履歴Excelデータから利益計算
import pandas as pd
import matplotlib.pyplot as plt
# Excelの取り込みはopenpyxl

# BinanceのExcelデータ読み込み
dir = './python_envs/trade/Data/Trade_History.xlsx'
df = pd.read_excel(dir, index_col=[0])
print('--- 取引履歴Excelファイルの中身 ---')
print(df)

# 末尾のUSDとUSDTを消去
a = pd.Series(df['Market'])
a = a.str.replace('USDT', '')
df['Market'] = a.str.replace('USD', '')
print(df)

# 通貨ごとに売買の合計を算出
df_pivot_sum = pd.pivot_table(df, index='Market', columns='Type', values='Total', aggfunc='sum')
print('--- 通貨ごとの売買合計ピボット ---')
print(df_pivot_sum)

# SELLとBUYの差分計算
df_pivot_sum['DIFF'] = df_pivot_sum['SELL'] - df_pivot_sum['BUY']
print('--- 売りと買いの差分列を追加 ---')
print(df_pivot_sum)

# 損益計算
order_diff = df_pivot_sum['DIFF'].sum()
buy_total = df_pivot_sum['BUY'].sum()
sell_total = df_pivot_sum['SELL'].sum()
fee = (buy_total + sell_total) * 0.075 * 0.01 # 手数料0.075%をBNB支払い
profit = order_diff - fee

# 各通貨ペアごとの取引回数
df_pivot_count = pd.pivot_table(df, index='Market', columns='Type', values='Total', aggfunc='count', margins=True, margins_name='TTL')
df_pivot_count2 = pd.pivot_table(df, index='Market', columns='Type', values='Total', aggfunc='count', margins=False)


print('--- 各オーダー回数 ---')
print(df_pivot_count)

print('--- 評価 ---')
print(f'BUY TTL:    $ {buy_total}')
print(f'SELL TTL:   $ {sell_total}')
print(f'Diff:       $ {order_diff}')
print(f'Fee:        $ {fee}')
print(f'Profit:     $ {profit}')

# グラフウィンドウ1
fig1 = plt.figure(1)

# グラフ1
ax1 = fig1.add_subplot(2,1,1)
ax1.bar(df_pivot_sum.index, df_pivot_sum['DIFF'])
ax1.set_xlabel('Market')
ax1.set_ylabel('Profit ($)')
ax1.set_title('Profit of each cryptocurrency')
#ax1.grid()

# グラフ2
ax2 = fig1.add_subplot(2,1,2)
ax2.bar(df_pivot_count2.index, df_pivot_count2['BUY'], align='edge', width=-0.3, label='Buy')
ax2.bar(df_pivot_count2.index, df_pivot_count2['SELL'], align='edge', width=0.3, label='Sell')
ax2.set_xlabel('Market')
ax2.set_ylabel('Times')
ax2.set_title('Number of buys and sells of each cryptocurrency')
ax2.legend()
#ax2.grid()

plt.subplots_adjust(hspace=0.6)
plt.show()


最後に

いかがでしたか?

もし役に立ったよーって方でBinanceUSにこれから登録されるのでしたら、こちらのコードから登録していただけるとうれしいです。

BinanceUS登録: https://accounts.binance.us/en/register?ref=54270085

スポンサーリンク

フォロワー

Labels

Amazon (3) Apache (3) Apple (9) AppleSilicon (7) Bloggerカスタマイズ (12) EchoShow15 (1) IoT (25) Jetson (1) MySQL (1) PHP (3) Python (20) Web (3) アウトドア (11) アメリカ生活 (19) ガジェット (35) キャンプ (9) ディープラーニング (1) らずキャン△ (11) ラズパイ (24) 暗号資産 (5) 開発 (31) 旅行 (8)

QooQ