Python Tech

[現役エンジニアが教える] Pythonは投資にどう役立つ?具体的な活用方法(データ収集/分析/自動化)

プログラミング言語 Python はデータ分析や機械学習などで有名で、株式投資などで使ってみたいという人も多いのではないでしょうか。

この記事では現役エンジニアであり投資家でもある私が、投資にPythonを活用するテクニックを解説しています。どれも実際に私が運用した方法なので、実用性は保証できます。

プログラミングは難しいという感覚の人は多いですが、Pythonは比較的習得がしやすく、いろいろな分野に応用が効く言語です。いくつもの言語で製品開発を行ってきたエンジニアの立場としても、投資では一番オススメできる開発言語だと思います。

ぜひ本記事を参考に、投資方針にあった活用法を探してみてください。

 

活用法1 データ分析

データ分析機械学習はPythonの得意分野です。

チャート表示や各種インディケータの表示は朝飯前で、さらに自分でオリジナルのテクニカル指標を組み込んだりもできるようになります。

既存のトレードツールだと、自前のカスタマイズには限界がありますよね。

投資家の好きなように投資環境を作れるのは、プログラミングならではの強みです。

 

Python のライブラリ(Matplotlib+Pandasを使用してテクニカルチャートを表示した例) このくらいであれば、慣れればゼロから初めて5分くらいで作れるようになります。

 

また機械学習を用いて、将来株価の予測、株価に影響する要因の分析などもやりたくなるはずです。

Pythonなら株価予測も簡単に実装できますし、ネットにはすでにたくさんのサンプルコードが出回っています。

GitHubで例えば「Python stock」とかで検索すると、たくさんの投資関係のソースコードが探し放題(無料)です。

先人投資家たちの大量の素晴らしいソースコードを試せるのも、Pythonのいいところです。

 

活用法2 データ収集(クローリング編)

Pythonはネットからデータを集めてくるのも得意です。

クローリングは、あるサイト(複数サイト)のいろいろなページを自動で巡って、データを収集する方法のこと。

Googleなどの検索エンジンも、この方法で世界中のサイトの情報を集めることで、瞬時にいろいろなページを探し出せます。

このクローリングを自動で行うロボットクローラーはPythonでかんたんに作れます。

無料で配布されている ScrapyPySpiderなどのフレームワークを使うと、さらに手軽に賢いクローラーを瞬時に作れます!

これによって例えば、

  • 毎日の終値を収集
  • ニュースサイトのコメントを収集
  • 企業のサイトの更新情報を自動で収集

したりできるようになります。

※ サイトによってクローリング、スクレイピングを禁止しているところもあります。また、短期間で過度にアクセスをすると相手のサーバーに負担をかけてしまいます。クローリングをするときは対象のサイトの利用規約を必ず確認し、しっかり検証を行ってから運用をしましょう。

 

活用法3 データ収集(API活用編)

データ収集する方法はクローリングだけではありません。

各種APIを経由してデータを取得すると、手軽に正確なデータを(しかも高速に)取得できます。

例えば、Yahoo! Finance APIでは米国株のリアルタイム株価を取得できますし、EDINETTDNetという金融庁や東証のシステムにアクセスすれば決算データを手に入れられます。

しかも決算情報などは発表された瞬間に取得できるのですぐに分析に入れます。

これって投資家にとってすごく便利ですよね。

さらにTwitter APIなどでSNSのデータを大量に取得したりもできるので、これをデータ分析や機械学習にかければ、マーケットの反応のポジネガや埋もれている情報を抜き出したりなどができるようになります。

PythonでAPIからデータを取得するには各APIの専用のライブラリが配布されていることもありますが、ほとんどは requests などを使って自分でも作れます。

 

活用法4 データ集約・保存・表示

Pythonでデータを収集しても、いちいちデータベースやExcelを開くのは面倒じゃないですか?

そんなときは自分オリジナルのWebサイトに投資情報を集約してみるのも一つの手です。

Pythonにはサイトを制作できる仕組み(フレームワーク)も用意されています。例えば Djangoというフレームワークを使えば、比較的短いコードを書くだけでオリジナルのサイトを公開できます。

独自の指標や分析を実装して公開して稼ぐのもいいですし、自分だけの秘密のプライベートサイトを構築してもいいでしょう。

 

活用法5 投資の自動化

データを集めたり、分析するのを自動化できたら、売買も自動化したくなりますよね。

Pythonなら売買も自動化できます

例えばFXならMetaTrader4を使ったトレードをすることが多いと思いますが、Pythonからアルゴトレードを実行することも可能です。

特定の条件が達成されたときに取引を実行するトリガーや、マーケットの状態をPythonで分析し、その結果を元に自動トレードを設定することもできるでしょう。

MetaTraderをPythonから操作する方法については以下の記事で詳しく解説しています。

 

 

Pythonの応用法は無限大!

ひとつの言語でも様々な機能を実装できるのはプログラミングの特徴ですが、Pythonは特に簡単に実装できてしまうというのがメリットですね。

上で紹介した他にも、投資に関係あるテクニックだと、

  • Excelの自動化
  • 音声からの文字起こし
  • 画像認識
  • 外国語の自動翻訳
  • TwitterなどのSNSへの定期投稿
  • ブラック・ショールズ・モデルによるオプション価格の算定

などなど、挙げればきりがないです。Pythonの活用方法は無限大に広がっています

 

Pythonのスキルを使って毎月の収入源を増やすのが最適なんじゃないかという件

実際、今のスキルに合わせて仕事を獲得し、スキマ時間で毎月+5、+20、+70万円くらいの人が多いです。

必要なスキル、仕事の獲得までの流れは以下の記事で徹底解説しています。
もちろん全部無料です
空いた時間にぜひ参考にしてみてください。

 

Pythonが気になったら書いてみよう!

私がPythonをはじめて触ったのは何年も前になりますが、数週間くらいしたら実用的なプログラムを作っていたのをよく覚えています。

それだけ、最初に勉強するハードルが低い言語だといえます。

まずは見よう見まねでプログラムを書いてみるのがいいと思います。想像の3倍はかんたんに出来るはず。

それでも不安なら、現在ではUdemyなどのオンライン講座が充実しています。完全オンラインで数千円~2万円くらいの出費でめちゃめちゃ本格的な授業を受けられます。

特に以下の講座はよくオススメしています。

一方、Pythonで機械学習やAIを活用した投資をしたい場合は、少し気合を入れて勉強する必要があるかもしれません。

単に株価予測と言っても、実際はいろいろな手法があり、それらを組み合わせないと上手く価格予測ができないからです。

(とはいえ他の言語よりは楽に覚えられるはず)

Pythonは独学でもプログラムを書くことはできますが、始めたては高確率で挫折する人が多いのも事実。

本気で稼ぎたい人にはプログラミングのスクールを受講するのもオススメしています。特にパソコンに不慣れな人ほど、スクールでしっかり基礎を学んだほうが投資でもリターンは高めです。

もし興味があるなら、スクールは以下のページで詳しく解説しています。

Python講座のなかでも「データサイエンティスト」「AI」などのコースを選ぶとよいでしょう。

 

 

最後に

ここまでPythonを投資に活用する方法を紹介してきましたが、こうした事をコツコツとやっている投資家はまだまだ少数派です。

今から少しずつ取り組むことで、優位性のある投資ができるようになるはずです。そうでなくても、Pythonは汎用性があって(投資以外でも)様々な分野に活用できるプログラミング言語です。

投資家としての生活をより豊かにするツールとして、覚えておいていただけたら幸いです。

 

  • この記事を書いた人

次世代ペンギン

長いのでペンギンとお呼びください。システム開発・プログラミングのお仕事をしています。甘味とコーヒーは生命線。多くの人に役立つ情報のシェアが目標です。

人気の記事

1

会社員でプログラマーとして働いている人、インフラやネットワークのエンジニアとして働いている人の中には、フリーランスのプログラマーとして独立、もしくは転向したい人もいるので ...

2

キャリアアップのため、または高収入を目指して、しっかりプログラミングを学びたいという人が増えてきましたね。 この記事では現役のエンジニアである私が、実際に仕事で稼げるよう ...

3

フリーランスのプログラマーにとって収入の向上に最も直結するのはスキルです。 必要なスキル、スキルの獲得方法が気になる人も多いでしょう。 また、これからフリーランスを目指す ...

4

Vuetifyの v-progress-circular コンポーネントは、数値データや処理状況を環状(円状)のデザインで教えてくれるUIデザインです。 ローディングのス ...

5

Vuexのstore(ストア)を使うと、各コンポーネント間で個別にデータのやり取りすることなく、データを一元的に管理できます。Vueでは欠かせない機能といえるでしょう。 ...

-Python, Tech
-