このブログの売りの一つが、『Python』を使った分析です。
ここ2年か3年くらい前から、プログラミング言語の学習がブームなっている印象を受けます。
機械学習への注目もあって、Pythonは人気の言語のひとつみたいですね。
実際に当ブログ記事の中でも、Pythonに関係した記事はアクセスの伸びが全然違います。
Pythonは確かに便利なプログラミング言語です。しかし、便利すぎるがゆえに学習の範囲が広すぎて、挫折するというデメリットがあるとジェイは考えています。
では、このデメリットを回避するためにはどうすれよいでしょうか?
今回の記事は、これからPythonをはじめとしたプログラミング言語の学習を始めようと考えている人に知っておいてほしい『2つのこと』について書きました。
ぜひご一読ください!
結論
この記事の対象となる人
・Pythonを使って投資の分析をしたい人
ゴールを設定しよう
まずは大きなゴールから設定
結論からいいます。
Pythonの学習を始める前にまずは..
ことがとても重要だとジェイは考えています。
大きなゴールの設定のコツは...
・その状況の時代の流れを考えよう
を考えることです。
ジェイを例にしてみましょう。
ジェイの大きなゴールとは?
ジェイは『AIを駆使してマーケットの予測をしたい』、ということを大きなゴールとして設定しました。
なぜか?
ジェイは、投資の世界で生きている人間です。投資の世界では、正確な情報をいち早くそしてより多く集めることが求められます。
しかし、人間の力だけで投資にかかわるすべての情報を集めて、しかも分析するなんてことは不可能です。そうなると、テクノロジーの力を取り入れるしかありません。
これが、今ジェイが置かれている状況です。
そして投資の世界では、『テクノロジー=AIによる分析』というトレンドが主流になっています。
これは時代の流れなので、今後さらに加速していくでしょう。
これが、ジェイがいる状況の時代の流れです。
このように自分が今いる状況と、その状況の時代の流れを考えて、大きなゴールを設定することは、プログラミング言語にかかわらず何か新しいことを学ぶ際にとても重要なことです。
次に小さなゴールを設定しよう
大きなゴールを設定するだけでは十分ではありません。
次にあたながやるべきは...
ことです。
なぜ小さなゴールを設定することが必要なのか?
それは、プログラミングの学習を続けるモチベーションを保つためです。
プログラミングの学習に終わりはありません。学ぶべきことは無限にあります。なぜならこの世界は日々進化しているからです。
今日学んだ知識は、来年には『まだそんなことやってるの?』と言われる世界なんです。
先が見えない状況で努力し続けることほどツライことはありません。
プログラミングの学習を始めても、約8割の人間が挫折する理由はここにあります。
プログラミングの学習で挫折をしないためには、自分は前に進んでいる!という実感を得ることが重要です。
その実感は、小さなゴールに到達することでしか得ることできません。
いくつもの小さなゴールに到達すると、プログラミングの学習に対するモチベーションが続きます。
モチベーションが続けば、それが習慣になります。
プログラミングの学習が習慣になれば、やがて大きなゴールにたどり着くのです。
ジェイはPythonを学んで数年が経ちますが、何度も挫折したけた経験があります。しばらくPythonの学習から遠ざかったこともあります。
しかし、そのたびに小さなゴールを設定して、そこに到達して、今このブログ記事を書いています。
では、小さなゴールを設定するコツはなんでしょか?
小さなゴール=アウトプット
それは...
なんです。
これはジェイの実体験であり、Pythonにかぎらずプログラミング言語の学習を経験した人が、みな口をそろえて指摘することです。
では『見える化』とはなにか?
それはWeb上で見えるすべての『モノ』です。
Webサイト、Webアプリ、そしてこのブログでいうならば、チャートが良い例でしょう。
Pythonによるチャート例
上のチャートでは、ナスダック指数の価格をラインチャートで描画し、その上に移動平均線(10日、25日、75日)を色別に分けて簡単なテクニカル分析をしています。
3本の移動平均線がすべて上昇基調にあるということは、ナスダック指数の上昇トレンドが崩れていないということを示すひとつのシグナルです。
さらに下グラフは、日々の取引量(ボリューム)を描画したバーチャートです。
先週の取引量(ボリューム)は2020年の平均を下回っていることがわかります。
これは、多くの投資家が11月3日の米大統領選挙を控えて、取引を控えていることを示唆しています。
ちなみに上のチャートのソースコードは以下となります。
ソースコード
<code>import pandas as pd import pandas_datareader as data import matplotlib.pyplot as plt %matplotlib inline import seaborn as sns sns.set()</code>
<code>def analsis(start,end,ticker): df = data.DataReader(name=ticker,data_source='yahoo') df = df[(df.index>=start)&(df.index<=end)] date=df.index price=df['Adj Close'] span10=10 span25=25 span75=75 df['sma_10'] = price.rolling(window=span10).mean() df['sma_25'] = price.rolling(window=span25).mean() df['sma_75'] = price.rolling(window=span75).mean() plt.rcParams['figure.figsize']=15,12 sns.set_style('whitegrid') plt.subplot(2,1,1) plt.plot(date,df['sma_10'], label='SMA_10',color='blue') plt.plot(date,df['sma_25'], label='SMA_25',color='limegreen') plt.plot(date,df['sma_75'], label='SMA_75',color='red') plt.plot(date,price,color='Black',lw=3,label=ticker,alpha=0.6) plt.legend(fontsize=20) plt.subplot(2,1,2) plt.bar(date,df['Volume'],color='grey',label='VOLUME',) plt.axhline(y=df.Volume.mean(),color='black',ls='--',label='AVG') plt.legend(loc=2,fontsize=20)</code>
これからPythonの学習を始めようとしている人からみると...
うわ!わけわからん!
というのが本音でしょう。
しかし、何度も小さなゴールへ到達すると『うわ!わけわからん!』から『プログラミングって楽しい!』という感覚に変わってきます。
いわば小さなゴールとは、『アウトプットの連続』でもあるのです。
アウトプットを連続することで、やがて大きなゴールが見えてくるのです。
Pythonを学ぶことは必要か?
大きなゴールと小さなゴールを設定について、重要な理由がもうひとつあります。
それはゴールの設定が...
ということを真剣に考えるきっかけとなるからです。
ゴールすら設定しな状況でプログラミング言語の学習を始めれば、かなりの確率で挫折します。
途中で挫折するということは、『その間にかけた時間とお金が無駄になる』ということです。
しかし、プログラミング言語の学習を始める前に大きなゴールと小さなゴールを設定しておけば、自分が今学ぶべきは『Python』なのか『他のプログラミング言語』なのか、それとも『別の何か』なのか?を正確に判断することできます。
正確に判断できれば、『挫折=時間とお金を無駄にする』ことを避けることができます。
これからプログラミング言語の学習を始めようと考えているみなさん、ぜひ大きなゴールと小さなゴールを設定してください!
そして時間とお金を無駄することなく、成功に向かってひたすら走り続けてください!
応援しています!
今回のまとめ
・ゴールには大きなゴールと小さなゴールがある
・まずは小さなゴールをめざそう
・小さなゴールとはアウトプットの連続である