お金の健康

マイニングの収益をプログラミング言語Pythonで分析する方法【プログラム付き】

こんにちは、ウチダです。

夫婦で貯金ゼロ・借金400万円から
仮想通貨と株式へ投資をスタートし、
いまでは1500万円を運用しています。
 
副業は仮想通貨のマイニング企業を立ち上げ、
月5万円の不労所得を得ています。

仮想通貨のマイニングマシンに興味はあるけど、

「収益の計算ってめんどくさそう」

「収益の分析はどうしよう」

と悩んでいませんか?

実はプログラミング言語Pythonを使えば

簡単に分析できるんです。

なぜこんなことが分かるかといえば

私が実際にマイニングレポートを

Pythonで分析しているからです。

この記事ではNiceHashでマイニングした結果を

Pythonで分析する方法を紹介します。

この記事を読み終えると、

仮想通貨のマイニング収益や必要経費を

詳しく分析できるようになります。

マイニングの収益をPythonで分析しょう!収益や必要経費の確認方法

マイニングの収益をPythonで分析しょう!収益や必要経費の確認方法

NiceHashではマイニングレポートを

CSVファイル形式で出力できます。

やり方はこちら↓

出力されるデータはこんな感じです。

NiceHashの収益と必要経費のレポート

記録されるデータの内容は、以下のとおりです。

  • イベント発生の日時(設定した時間、サーバー時間)
  • イベントの内容
  • ビットコインのコイン数
  • ビットコインのレート
  • 日本円での金額

データの最後には以下がまとめられています。

  • 出金手数料
  • マイニング手数料
  • マイニング報酬
  • 出金完了額
  • マイニング報酬から手数料や出金額を差し引いた金額

これらがビットコインのコイン数、日本円の金額で

表示されています。

ただ、値は分かるのですが、

グラフなどは一切ないため、

分析ができません。

そこで、プログラミング言語Pythonを使って

次の内容を分析します。

  • マイニングの収益と必要経費のまとめ
  • マイニング報酬の推移
  • マイニング利益の推移
  • マイニング期間のビットコイン価格の推移
  • 手数料の合計金額

それぞれプログラム付きで解説します。

マイニングの分析用データファイルを作成しよう

Pythonで分析しやすいように加工します。

CSVファイルの名前は、mining.csvに変更しました。

#ライブラリのインポート
import pandas as pd
from pylab import mpl, plt
import datetime
plt.style.use('seaborn')
mpl.rcParams['font.family'] = 'serif'
%matplotlib inline

#CSVファイルの読み込み
data = pd.read_csv('mining.csv')

#リストデータだけを抽出
df = data[:-5]

#マイニング報酬と手数料だけ抽出
re_df = df[(df['Purpose'] == 'Hashpower mining') | (df['Purpose'] == 'Hashpower mining fee')]
re_df = re_df.reset_index() #インデックスの振り直し

#マイニング報酬だけを抽出
rieki_df = df[df['Purpose'] == 'Hashpower mining']
rieki_df = rieki_df.reset_index() 

#マイニング手数料だけを抽出
cost_df = df[df['Purpose'] == 'Hashpower mining fee']
cost_df = cost_df.reset_index() 

#出金した金額だけを抽出
withdraw_df = df[df['Purpose'] == 'Withdrawal complete']
withdraw_df = withdraw_df.reset_index() 

#出金手数料だけを抽出
withdrawfee_df = df[df['Purpose'] == 'Withdrawal fee']
withdrawfee_df = withdrawfee_df.reset_index() 

csvファイルをpythonで読み込みました。

準備ができたので分析していきます。

Pythonでマイニングの収益と必要経費をまとめよう

matome = data[-5:]
matome.head()

データの最下部にまとまっているので、

こちらだけを抽出しました。

Pythonでマイニングの収益と必要経費をまとめよう

マイニング報酬が21,569円、

マイニング手数料が432円、

出金手数料が59円かかっていますね。

ここからさらに分析していきます。

pythonでマイニング報酬の推移を分析しよう

#マイニング報酬のみを抽出
rieki_df = re_df[re_df['Purpose'] == 'Hashpower mining']
rieki_df = rieki_df.reset_index() #インデックスの振り直し

#グラフデータの用意
num = rieki_df.index #回数
amount_jpy = rieki_df['Amount (JPY)'] #報酬金額

#グラフの作成と表示
plt.figure(figsize=(20, 10)) #グラフサイズ
plt.plot(num, amount_jpy, lw=2, label = 'amount_jpy', color='b') #グラフデータ
plt.legend(loc=2, fontsize=18) #凡例
plt.xlabel('count', fontsize=18) #横軸のラベル
plt.ylabel('price(JPY)', fontsize=18) #縦軸のラベル
plt.tick_params(labelsize=18) #ラベルの文字サイズ
plt.savefig("mining_profit_count.png") #名前をつけて保存

できあがったグラフがこちら↓

マイニング報酬の推移

マイニング報酬は4時間に1回

ウォレットに支払われます。

安定しているわけではなく、

上がったり下がったりの繰り返しです。


ちなみに後半は急激に上昇していますが、

これはRTX3060を買い増したためです。

どれぐらい儲けるかは

こちらの記事でまとめています↓

pythonでマイニングの利益をグラフ化しよう

#マイニング報酬と手数料だけ抽出
re_df = df[(df['Purpose'] == 'Hashpower mining') | (df['Purpose'] == 'Hashpower mining fee')]
re_df = re_df.reset_index() #インデックスの振り直し

#マイニング報酬から手数料を差し引いた合計金額
re_df['Profit (JPY)'] = re_df['Amount (JPY)'].cumsum()

#グラフデータの用意
profit = re_df['Profit (JPY)']
re_num = re_df.index #回数

#月末時点での利益の合計金額
print(profit.iloc[-1])

#グラフの作成と表示
plt.figure(figsize=(20, 10))
plt.plot(re_num, profit , lw=2, label = 'profit_jpy', color='b')
plt.legend(loc=2, fontsize=18)
plt.xlabel('count', fontsize=18)
plt.ylabel('price(JPY)', fontsize=18)
plt.tick_params(labelsize=18)
plt.savefig("mining_profit.png")

今回は手数料を差し引いて

マイニング報酬の合計額を表示しています。

できあがったグラフがこちら↓

pythonでマイニング報酬の合計額を表示しよう

報酬額は直線状に積み上がっていることが分かります。

毎回のマイニング報酬は変動が激しいですが、

積み上げは安定して儲かると言えますね。

マイニング期間のビットコイン価格の推移を調べよう

#マイニング報酬のデータを抽出
rieki_df = df[df['Purpose'] == 'Hashpower mining']
rieki_df = rieki_df.reset_index()

#グラフデータの用意
num = rieki_df.index #回数
rate = rieki_df['* Exchange rate'] / rieki_df['* Exchange rate'][0] * 100 #マイニングの交換レートの変化率

#グラフの作成と表示
plt.figure(figsize=(20, 10))
plt.plot(num, rate, lw=2, label = 'Exchance rate', color='b')
plt.legend(loc=1, fontsize=18)
plt.xlabel('count', fontsize=18)
plt.ylabel('BTC price change(%)', fontsize=18)
plt.tick_params(labelsize=18)
plt.savefig("BTCexchange_rate.png")

12月1日の最初の価格を基に

ビットコイン価格の変化率を計算しました。

できあがったグラフがこちらです↓

ビットコイン価格の変化率の推移

12月は最大で20%も下がりましたね。

個人で投資している分もあるので、

ウチダ家の資産は大ダメージです。

では、ビットコイン価格はマイニング報酬と

相関があるのか?

pythonでさらに分析します。

pythonでビットコイン価格とマイニング報酬の関係を分析しよう

#グラフデータの用意
num = rieki_df.index #回数
rate = rieki_df['* Exchange rate'] / rieki_df['* Exchange rate'][0] * 100 #マイニングの交換レートの変化率

#マイニング報酬の変化率
profit_change = rieki_df['Amount (JPY)'] / rieki_df['Amount (JPY)'][0] * 100

#グラフの作成と表示
plt.figure(figsize=(20, 10))
plt.plot(num[:169], rate[:169], lw=2, label = 'BTC exchance rate', color='b')
plt.plot(num[:169], profit_change[:169], lw=2, label = 'profit change', color='g')
plt.legend(loc=2, fontsize=18)
plt.xlabel('count', fontsize=18)
plt.ylabel('change(%)', fontsize=18)
plt.tick_params(labelsize=18)
plt.savefig("BTCexchange_profitchange.png")

12月1日の最初のマイニング報酬とビットコイン価格を100%として

それぞれ変化率を計算して比較しました。

できあがったグラフがこちらです↓

pythonでビットコイン価格とマイニング報酬の関係を分析しよう

かなり相関が強いと思います。

マイニング報酬は以下の式で表されます。

マイニングで獲得したコインの数 × コインの価格

マイニングで獲得したコインの数はグラボの性能や

属するプール、マイニングアルゴリズムで変わります。

これらが一定の時、

マイニング報酬に影響するのはコインの価格ですよね。

ビットコイン価格が下がればマイニング報酬も下落するのは

当然の結果だと思います。

pythonで手数料の合計金額を計算しよう

#出金手数料
withdrawfee_df = df[df['Purpose'] == 'Withdrawal fee']
withdraw_fee = withdrawfee_df['Amount (JPY)'].cumsum() #合計金額

#マイニング手数料
miningfee_df =  df[df['Purpose'] == 'Hashpower mining fee']
mining_fee = miningfee_df['Amount (JPY)'].cumsum()

#合計の手数料
fee = int(withdraw_fee.iloc[-1] + mining_fee.iloc[-1])
print(fee)

NiceHashでかかる手数料は、

マイニング報酬にかかる2%の手数料と

出金時にかかる手数料です。

これらの合計金額を算出しました。

今回はマイニング報酬21,569円に対して、

手数料は491円でした。

ただ、マイニングの必要経費には

電気代や通信費なども含まれます。

こちらの記事にまとめているのでどうぞ↓


出金のときに手数料がかかるので

出金回数は減らしたほうが良さそうです。

あと、私は法人にして仮想通貨の

マイニングをしていますが、

個人の住宅で法人の事業もしているんですよね。

電気代やスマホ代の請求は個人宛ですが、

商工会議所の人に相談したら

法人の経費にするには名義を変える必要があるとか。

もしくは個人と法人の間で家賃をとる

契約を結ぶか。。

このあたりは税理士への相談が必要のようです。

法人会に相談する流れをつくったので

今後は専門家に相談しながら方針を決めていきたいと

思います。

話がまとまったらブログで紹介します。


このブログでは主に仮想通貨で

お金に働いてもらう方法を紹介しています。

月に1〜2回無料でメッセージを配信して

情報をお届けしているので、

ぜひ友だち追加をお願いします。

ラインの友だち追加はこちら↓

友だち追加

投資の情報って本で読むと難しいですよね。

そんな時はamazonのaudibleを活用するのが

おすすめです。

ナレーターが朗読してくれるので

家事の間に何度も聞いて勉強することができます。

最近は自己啓発や物語だけでなく、

投資本も朗読されているので

めっちゃ勉強になります。

1/11までに登録すれば30日間無料で試せますし、

本も1冊を無料で購入できます。

ぜひこのお得な期間に利用してください↓

ここまで読んでくださり、ありがとうございました。^^

-お金の健康
-,