ページコンテンツ
ポケカのテクニカル分析をはじめよう
皆様いかがお過ごしでしょうか。
全くブログを更新していませんでした。
最近になって、ようやく身の回りの環境がひと段落してきました。
変わらず仮想通貨に投資していますが、ここ最近は地合いが悪くなってきたので、趣味であるトレーディングカードゲームにも投資をしています。
特にポケカ(ポケモンカードゲーム)は、投機目的の人が多く参入してくるので、利益につながりやすいです。
多くの人が投資の素人であり、根拠に基づく取引をしていません。
分析して投資すると利益が得やすく、まだまだブルーオーシャンです。
あまり教えたくはないですが、友人への説明も兼ねて、基礎的な情報をお伝えしたいと思います。
今回はポケカの価格分析の入門として、プログラミング言語であるPythonを使って簡単なチャートを書いて、購入時期の判断方法を紹介したいと思います。
この記事を読み終わる頃には、こんな感じでチャートが作成できます。
あまり難しいことはしないので、挑戦してみてください。
Pythonについて
Pythonは、プログラミング言語の1つで、プログラミング初学者にも分かりやすく、人気のある言語です。
誰でもプログラミングを始められるように、色々なものが用意されています。
詳しいことは、気になったら調べてみてください。
要望があれば、その内オススメの書籍や、躓きやすいポイントをまとめて記事にしたいと思います。
初学者がまず躓くのは、環境構築と呼ばれるものです。
まずはPythonをインストールして、IDEと呼ばれるプログラミングを書くためのソフトウェアを使ったり、グラフ作成に使うライブラリと呼ばれるものを用意したりと、最初にしてはハードルが高いです。
しかし、今回は環境構築などの面倒なものはありません。
サクッとコピペして、編集すれば自分のやりたいことができます。
用意するもの
・Googleアカウント
これだけは用意いただきたいです。
「colaboratory」と呼ばれるGoogleが提供しているサービスを使うために必要となります。
準備はいいでしょうか。次からは実践です。
ファイルを読み込む
まず「colaboratory」にアクセスしましょう。
ログインしたら、「ノートブックを新規作成」をクリックしてください。
画像のような画面が表示されたらOKです。
続いて、下記のURLからファイルをダウンロードしてください。
今回はポケカ_シャイニースターのマリィSRの価格を分析していきたいと思います。
ファイルの中身は、3ヶ月毎の価格をまとめています。
ダウンロードしたら、そのファイルをcolaboratoryにアップロードします。
画像のように、左上の三本線の「目次」を押して、ファイルをクリックしましょう。
その後、ダウンロードした「marie_q.csv」をドラッグ&ドロップしましょう。
ここからプログラミングの時間です。
以下のコードをコピペして、「ctrl + Enter」で実行し、ダウンロードしたファイルの中身をPythonで確認してみましょう。
import pandas as pd
df = pd.read_csv('marie_q.csv')
df
画像のように結果が出てきたら次のステップです。
その前に、ソースコードについて簡単に説明します。
1行目は、pandasというデータ解析に必要な便利な機能を使用することを宣言しています。
テンプレなので、覚えて使ってみましょう。
2行目は「df」という「変数」に、pandasの機能でファイルを読み込んだ結果を入れています。
変数とは、文字や、数字などの要素を入れるための箱のような役割を持っています。
複数の要素を入れることもできますし、文字だけを入れるように制限することもできます。
今回はポケカのマリィSRに関する複数の情報を変数に入れました。
3行目は、その変数に何が入っているか確認するためのものです。
グラフ作成
続いて、グラフの作成です。
先ほどよりもコードの量が少し多くなります。
以下のコードをcolaboratoryにコピペして、先ほどと同じように「ctrl + Enter」で実行してみましょう。
# インポート処理
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv('marie_q.csv')
# グラフ作成の準備
x = pd.date_range('2021-01-01 00:00:00', periods = 7, freq = '3MS')
y = df.iloc[:, 5] # 価格
#グラフ作成
plt.figure(figsize = (10, 6), dpi = 50)
plt.plot(x, y)
plt.savefig('test.jpg')
plt.show()
画像のようなグラフが出てくればOKです。
次の工程が最後となりますが、その前にコードの解説です。
コメントとインポート
コードの中には、実行する処理とは別に「コメント」を書くことができます。
「#の後から改行まで」コメントとすることができます。
先ほどのpandasの機能を使うことを「インポート」といいます。
今度はグラフを書くため、matplotlibのpyplotという機能を使うことを3行目で宣言しています。
rangeメソッド
7行目からは、どんなグラフを書くのか、pandasを使って設定しています。
まず横軸であるX軸は、時間軸としたいのでその設定を書いています。
x = pd.date_range('2021-01-01 00:00:00', periods = 7, freq = '3MS')
pandasの機能の中で、rangeという処理があるので、( )の中に必要な情報を渡しています。
処理に必要な( )内の情報のことを「引数」と呼びます。
‘2021-01-01 00:00:00′, periods=7, freq=’3MS’
これは、2021/1/1から開始して、3ヶ月毎に7個に区切るよう指示しています。
freq=’3M’が3ヶ月毎をを表し、Sが月の開始日を表しています。
下の表のように、色々と指定できるので興味がある人は試してみてください。
記号 | 意味 |
D | 毎日 |
W | 週ごと |
M | 月末ごと |
Y | 年ごと |
MS | 毎月の開始日ごと |
SM | 15日と、月末ごと |
ilocメソッド
続いて、8行目でy軸である価格を設定しています。
y = df.iloc[:, 5] # 価格
ダウンロードしたファイルの中身を読み込んだ結果から、pandasのiloc[行, 列]という処理を使って、価格を指定してあげます。
iloc[:, 5]は、「:」が0行目から全行を表していて、「5」が価格の列を表しています。
本来であれば6列目だろと思う人がいます。
プログラミングの「添え字」と呼ばれる多くは、0から数えることが多く間違いやすいので、頭の片隅に入れておきましょう。
pyplotのメソッド
11行目は、出力する画像の指定をしています。
plt.figure(figsize = (10, 6), dpi = 50)
figsize = (横幅, 縦幅)は出力する画像のサイズを指定し、dpi = xxで解像度を指定してあげています。
12行目は、x軸とy軸の情報をグラフに書入れをしています。
plt.plot(x, y)
13行目で書入れた情報を保存して、14行目でそれを表示させています。
plt.savefig('test.jpg')
plt.show()
これが一連の処理となります。
移動平均線の作成
このグラフだけでも分析はできますが、価格が上がっているな、下がっているなくらいの感覚でしょう。
先ほどのグラフに、移動平均線というものを加えていきます。
移動平均線とは、指定した期間の平均を表したものです。
1月目が1万円で、2月目が2万円の場合、2ヶ月間の平均は1万5千円となります。
移動平均線は、株式や仮想通貨などにも用いられており、トレンドと呼ばれるものを判別しています。
トレンドとは価格が上昇しているか、下降しているか相場の方向性を指し示すものです。
簡単な情報ですが、期間の指定などを上手く調整すれば分析として有効です。
同様にコードをコピペして結果を見てみましょう。
# インポート処理
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv('marie_q.csv')
# グラフ作成の準備
x = pd.date_range('2021-01-01 00:00:00', periods = 7, freq = '3MS')
y = df.iloc[:, 5] #価格
# 移動平均線作成の準備
price = df.iloc[:, 5] #価格
moving_average = price.rolling(window = 2, min_periods = 1).mean()
#グラフ作成
plt.figure(figsize = (10, 6), dpi=50)
plt.plot(x, y, linewidth = 5, Label = 'one')
plt.plot(x, moving_average, Label = 'two')
plt.grid() #補助線作成
plt.savefig('test.jpg')
plt.show()
画像のようなオレンジの線が加わればOKです。
コードの解説です。
rollingメソッド
11行目から移動平均線の設定をしています。
price = df.iloc[:, 5] # 価格
変数「y」と同じように新しい変数「price」も同様の処理をしてあげています。
12行目では、価格を取得した変数「price」にrolling()という処理と、mean()という処理をしてあげています。
moving_average = price.rolling(window = 2, min_periods = 1).mean()
rolling(window = 2)とすれば、現在の価格から1つ前までの2つを対象に取ってきてくれます。
しかし、先頭の価格はそれができないので、NaN(表現できない数)となってしまいます。
その問題を解決するために、ここでもう一つの引数(min_periods)を渡します。
rolling(window = 2, min_periods = 1)とすると、必要なデータ(2つ)以下であっても、計算に必要な最小のデータを1つとしてくれます。
そのため、最初だけはデータを1つだけしか取ってきません。
meanメソッド
mean()は平均を出すための処理です。
rolling()で取得した対象のデータに対して、平均価格を出してくれます。
ここで例外なのが、最初のデータです。
例えば、1番目の価格が2万円であれば、平均価格は2万円となります。
上記の場合、2つ目から価格を平均してくれます。
1番目:2万円、2番目:3万円の場合、平均価格:2万5千円となります。
linewidthとLabel
16行目は、先ほどのグラフの書き込みから少し変更しています。
plt.plot(x, y, linewidth = 5, Label = 'one')
plt.plot(x, moving_average, Label = 'two')
linewidthで線の太さを指定しています。
そして、移動平均線とかき分けるために、Label = nを使用しています。
17行目で移動平均線を書いていて、こちらもLabelで違う線であることを宣言しています。
gridメソッド
このままではデータが読みにくいので、pyplotのgridという処理を使っています。
plt.grid() # 補助線作成
この処理は、グラフに補助線を引いてくれるというものです。
引数も用意されていて、色や線種、線の太さなどを指定できます。
興味がある方は、19行目を以下のコードに変えて試してみてください。
grid(color = “x”, linestyle = ‘dotted’, linewidth = 2)
コードについては、以上です。
移動平均線からの分析
グラフを見たとしても、そこから何かを得られなければ意味がありません。
移動平均線は、単純ではありますがトレンド分析には有効です。
特にトレカでは分かりやすいの一言に尽きます。
売りなら画像の1番最初の赤丸で、買うなら2番目の赤丸です。
底値が買うのは難しく、天井で売るのは難しいので上げ始めたら買い、落ち始めたら売るが無難です。
株などであれば時間軸にもよりますが、移動平均線を何度も交差します。
騙しと呼ばれるものも多いです。
しかし、トレカだとtwitterの買い煽りから、素直に移動平均線は上昇トレンドを描くことが多いです。
そして、下降が少し続くとそのまま下降トレンドを描きます。
画像を見てわかる通り、6万円を越えてその後は下降し、移動平均線を割ります。
その後下降し続けて、移動平均線に近づくのは底値を過ぎてからです。
底値からは移動平均線を目指して、緩やかに上昇し、その後また高騰しています。
色々な分析方法
今回は簡単な一例です。
マリィを例にしましたが、ギラティナV SAや、リザードンVMAX SSRなど自分の好きなカードに置き換えて、価格分析してみてください。
短期売買をする人は、月ごとの価格ではなく日ごとの価格にしたり、工夫するところは多いです。
また、コードで使われる引数などを調整して、自分の見やすいチャートなども作ってみてください。
テクニカル分析には、トレンドだけではなくオシレーター系と呼ばれているものもあります。
有名なものにはMACDや、RSIなどがあります。
Pythonを使って、色々な指標を作ることは可能です。
価格だけをデータとして使うのではなく、twitterのフォローしているトレカ投資家が予想しているのは上昇目線か下降目線なのか、集計してみたりするのも1つの分析方法です。
株、仮想通貨などは常人がなかなか思いつかない発想や、根気強い分析が必要となりますが、トレカは比較的分かりやすいです。
それなのに、多くの人がデータを収集せずに、トレカ予想家のtweetに振り回されて養分となっています。
まずは価格の収集から始めて、このように値に基づいた投資をしてみてはいかがでしょうか。
まとめ
今回はPythonというプログラミング言語を使って、データ分析する方法をお伝えしました。
この機会にtwitterのトレカ投資家の情報だけに踊らされずに、自分で自信を持って取引できる武器を作ってみませんか?
好評であれば今後もシリーズとして、続けていきます。
あくまでも投資には色々な方法があり、自分の目標を達成できたものが勝者です。
損ばかりしている人の助けとなればと思い筆を取りましたが、この方法にとらわれ過ぎないでください。
最後までご覧いただき、ありがとうございました。
それではまたお会いしましょう。