Ziru Sirka's blog

相場技能の習得を目指した記録用です。

April showers bring May flowers

このところ生憎の空模様が続いて、気圧の低下によるものか、ジクジクとしたしつこい頭痛が悩ましい。こういう日には集中力が途切れがちだし、気分転換に本を読もうにも気力が続かない。休むのがいちばんなのでしょうね。困ったなぁ。

そんな自分の悩ましい思いをよそに、庭先ではアマガエルが声高らかに鳴いている。明るい黄緑色をした、体長3cmほどの小さなカエル。先週あたり庭に咲いた水仙の葉の隙間に身を隠していたアマガエルをめざとく見つけた2歳の次男が、「カエルしゃん、カエルしゃん、ゲコゲコゲコ!」とはしゃいでいた。そのカエルが庭先で鳴いているのだろう。

今のところまだ一匹。けれども我が家の庭先では例年、妻と長男がコンテナに土と水を張って無農薬でコメを育て、玄関脇には睡蓮鉢でヒメスイレンクロメダカを育てているほか、裏山の沢水を生活用水にする土地柄で小さな水流に事欠かず、近所には数少ないながら田んぼがあるので、夏には寝入りに困るほどカエルの大合唱が賑やかに鳴り響く。

住環境にはそこそこ満足できているので、のんびりと慎ましく晴耕雨読して暮らせるほどの資産を確保できたら良いなぁ。そんな想いが自分のモチベーションを維持しています。

新緑に癒される

今日は健康診断(人間ドック)のため、平日の白昼に見知りの医療機関まで足を運びました。

最寄り駅までの道すがら、近所の小山は新緑に包まれてモコモコと柔らかそうな春の装いです。

f:id:ZiruSirka:20240420020548j:image

この小山や我が家の裏山からは、夜になると先月まで鹿の鳴く声が聞こえていました。今時分、オスは既に角を落として穏やかに過ごしているはず。メスは出産と子育ての時期ですか。鹿の鳴き声はもう滅多に聞こえません。

かわりに聞こえてくるのはアオバズクのホゥ…ホゥ…という鳴き声です。必ずと言って良いほど2回ずつ鳴いては一拍の間。アオバズクの名前の由来は、木に青葉が茂るころによく鳴くミミズク(フクロウの仲間)ということです。納得。

朝になるとウグイスの声に混じり、ピーチクヒョロヒョロと、軽やかだけれど複雑な組み合わせのさえずりが聞こえます。あまりに近くで頻繁に聞こえるので、鳴く鳥の姿を観察して調べたところガビチョウという小鳥でした。中国からペットとして持ち込まれたものの、放鳥されたものが野生化したそうです。ヒトの都合で遠路はるばる連れてこられた挙句、捨てられてなおたくましく生き抜かねばならないとは。今は里山にエサも多く過ごしやすかろう。しばしの春を共に楽しもうではないか。

場帖を書く意味

公私ともドタバタですが、隙間時間を見つけては、8604 月足罫線をゆるゆる (現在、2002年12月まで) 描き進め、毎日50銘柄ほどの場帖を書き、相場書 (現在はあらためて『定本 酒田罫線法』) をボチボチ読んでいます。

この『定本 酒田罫線法』ですが、やはり第6章が最重要だと感じています。そして第6章が有効に機能するための第2章。

輝太郎先生はこの中で「酒田のケイ線法は逆張り」と繰り返し書いていますが、p.282 の③や⑤をきちんと読むと「逆張り」という表現の真意を感じ取ります。

毎日、一定の時間をかけて場帖を書いています。このとき、四本値をぼんやり書いて終わるのはもったいないと感じています。猫次郎先生が教材やzoomで繰り返し述べているように、全ては変動感覚を体得するための実践と理解しています。

月初の安値が最安値で、日を追うごとに陽線高値を更新し、安値も切り上がるならば上げ相場。月初の高値が最高値で、日を追うごとに陰線安値を更新し、高値がジワジワ落ちるなら下げ相場です。自分が書いている場帖を見ると、過半数が今月は下げ相場の値動きです。猫塾の塾生は、月の最高値と最安値をマーキングしています。今月の値動きを場帖で追いながら、何のためにそうしているのかをあらためて自覚しています。

こういうときに陰線新値三本だ、割安だと買い向かうのは、かなりの資金力と剛毅が要りそうです。 自分のような底辺層は、木枯らしに吹かれる落ち葉のように消し去られてしまいそうです。「下手なナンピン、スカンピン」の言葉が脳裏をよぎります。

『定本 酒田罫線法』には、逆行新値の五本目はもはや逆行ではなく順行であるとして、相場転換を認めます。昨日今日つけた陰線安値の三本目が押し目で戻すか、はたまた続落していくかは誰にも分かりませんから、安易な未来予想に陥ることなく、しっかりと場帖に向き合う必要がありそうです。Sell in May というアノマリーが今年合致するかも自分には分かりませんが、相場の波にきちんと乗れるよう、 気を引き締めて相場技術の向上に努めようと思います。

 

Yahoo!ファイナンスからの時系列(月足)データ取得【実践編】

【作業フォルダーを決める】
次に、Pythonスクリプトやダウンロードした月足四本値データを置くフォルダーを決めます。
自分はコンピューターにログインしたときのユーザーフォルダーにしています。
macOS であれば、Finder を開いてから、「移動」メニューの「ホーム」を選択したときに表示される場所です。

そこに任意のテキストエディター(「テキストエディット」など)で、stockcode.txt というテキストファイルを新規作成します。
「テキストエディット」で作成する場合は、「フォーマット」メニューで「標準テキストにする」にしておくのを忘れないようにしてください。
何か実在する証券コード(例: 5401)を書き込んでから、ファイル名を「stockcode.txt」にして、UTF-8 形式で保存します。
ちなみに全角で「5401」としてはダメです。
日本語入力プログラムをオフにして、半角で「5401」と入力します。
保存場所は先の「ホーム」です。アカウント名で表示されるフォルダーです。

スクリプトファイルを用意する】
「stockcode.txt」と同じフォルダーに、以下のソースコードをコピペしたスクリプトファイルを用意します。
ファイル名はご自身で分かれば任意で良いのですが、例として「get_stockquotes.py」とします。

import datetime
import os
from os.path import exists,isfile
import pandas as pd
import requests
import ssl
ssl._create_default_https_context=ssl._create_unverified_context
import subprocess
import sys

# レコードの取得期間を定義する
begin='19830101'

# 前月最終日を end に指定する (未完了な当月の月足取得を回避する)
today = datetime.datetime.today()
end_of_the_last_month = datetime.datetime(today.year, today.month, 1)+datetime.timedelta(days=-1)
end = end_of_the_last_month.strftime("%Y%m%d")

# ファイルから証券コードを取得する
codef='stockcode.txt'
if isfile(codef): # ファイルの実在確認
    f=open(codef, 'r', encoding='utf-8')
    code = f.read().rstrip("\n")
else: # ファイル不在時にエラー表示
    print(f"{codef} ファイルが見つかりません。")

# 株価情報の保存先フォルダーの実在確認 (無ければ新規作成)
outdir = "quotes_data"
if not exists(outdir):
    os.mkdir(outdir)
outf = outdir + '/' + code + '.csv'

n = 25 # 時系列の月足ページ数上限
url_list = []
for i in range(1, n + 1):
	query = 'https://finance.yahoo.co.jp/' + 'quote/' + code \
	+ '.T/history?from=' + begin + '&to=' + end + '&timeFrame=m&page=' + str(i)
	url_list.append(query) 

# 取得先URL一覧をファイルに出力する
list ='url_list.txt'
with open(list,'w') as f:
	f.writelines([d+"\n" for d in url_list])
	f.close()

# 取得先URLにアクセスし、月足株価の四本値を取得する
urls=[]
f = open(list, 'r')
urls = f.readlines()

# 上場廃止済みの証券コードを指定したときの例外処理
res = requests.get(urls[0])
try:
    res.raise_for_status()
except requests.exceptions.HTTPError as e:
    print(f"コード: {code}\n指定されたページは表示できません。\n{urls[0]}\n処理を中断します。\n")
    sys.exit()
else:
     print(f"{code} の月足四本値を {outf} に出力します。\n")

try:
     attrs={'class': '_13C_m5Hx _1aNPcH77'}
     df = pd.concat([pd.concat(pd.read_html(url, header=0, attrs=attrs), axis=0) for url in urls])
except Exception as e:
      print(f"{code} のレコード取得に失敗しました。\n")
else:
     # 取得レコードをCSV形式のファイルに出力する
     df.to_csv(outf, encoding='shift_jis', mode='w', columns=["日付","始値","高値","安値","終値","調整後終値*"], index=False)
     print(f"{code} の月足四本値を {outf} に出力しました。\n保存先フォルダーを開きます。\n")
     pass

if exists(outdir):
    subprocess.call(["open", outdir])
else:
     print(f"{outdir} フォルダーが見つかりません。")


ここまでできたら、「アプリケーション」フォルダー内の「ユーティリティ」にある「ターミナル」を起動します。

python3 get_stockquotes.py [return]

を実行します。
[return] は、ここで Mac のリターンキー (Windows の [Enter] キー) を押してくださいという意味です。

最初のうちは実行すると Python がエラーを出すと思います。
上記ソースコードの冒頭で import しているモジュールを Python が知らないとエラーを出します。
以下のモジュールくらいはターミナルで組み込んでおくと良いかもしれません。
いちどモジュールを組み込んでおけば、次回実行からはエラーを出しません。
(足りないモジュールがあればエラーを出します。)

pip3 install datetime [return]
pip3 install pandas [return]
pip3 install requests [return] 
pip3 install subprocess [return]

つつがなくスクリプトが実行されると、

5401 の月足四本値を quotes_data に保存しました。
保存先フォルダーを開きます。

というメッセージがターミナルに表示され、Finder が保存先フォルダーを開きます。
そこに 5401.csv というファイルができていればOKです。

csv ファイルを開くと、見憶えのある形式のデータが保存されています。

ちなみに、株式分割や株式統合のあった月の株価は調整されています。
対象月の調整前レコードを日足四本値で確認しておく必要があるかと思います。
stockcode.txt の中身を実在する別の証券コードに書き換えて保存後に、都度

python3 get_stockquotes.py [return]

を実行すれば、新たに csv データを取得できます。

ご不明な点がございましたら、コメント欄に書き込んでください。
分かる範囲で回答いたします。

Yahoo!ファイナンスからの時系列(月足)データ取得【準備編】

【まえがき】
自分が普段使っているコンピューターは MacBook Pro の数年前のモデルです。このため macOS を用いた取得手順を記事にしてみます。なにかご不明な点やお困りごとがございましたらコメントに入れてください。Windows マシンもありますので、いくらかはお手伝いできると思います。

 

【前提】
Python というプログラミング言語を使います。最終的に、月足四本値データを csv 形式のファイルに出力します。Microsoft Excel か、類似の表計算ソフトが使えると便利です。

macOS ではターミナル、Windows ではPowerShell ないしコマンドプロンプトの使用経験者を対象としています。

 

Python のインストール】
macOS は標準で python を使用可能な状態と思いますが、自分の環境では Python のモジュールを追加しようとしたときに pip という補助プログラムが動かずハマりました。このため Python の公式ダウンロードサイトから macOS 向けの最新版インストーラーをダウンロードしてインストールしました。 (Windows向けのインストーラーも見つかります。)

https://www.python.org/downloads/

 

ひとまずここまで進めば準備完了です。

月足罫線の作成用メモ

painu-souba-log さんの 2024-04-07 記事を拝見して、なるほどなぁと得心しました。

道具を整備するために、長期の月足グラフをなるべくたくさん描くに越したことはないけれど、フルタイムで勤務するサラリーマンが、各銘柄を毎回1969年や1983年から描き始めてしまうと、直近の値動きに辿り着くまでに時間がとてもかかってしまいます。

ひとまず直近の値動きを描いてから、過去日に遡って描き足していくのは確かに理性的だと感じました。

そこで、初心者パック資料の月足四本値Yahoo!ファイナンスの月足時系列を用いた場合、何年の何月で用紙が切り替わるのか確認してみました。

 

コクヨ ホ-11N を使用した場合:

・1ヶ月あたり、幅 3 mm 進む。

・1年あたり、幅 36 mm 進む。

・縦長使用で19年5ヶ月分を描くと右端に到達する。

 

■初心者パック資料 1969年1月を起点にした場合:

・1枚目の期間: 1969年1月〜1988年5月

・2枚目の期間: 1988年6月〜2007年10月

・3枚目の期間: 2007年11月〜2027年3月(現行)

 

Yahoo!ファイナンス時系列 1983年1月を起点にした場合: 

・1枚目の期間: 1983年1月〜2002年5月

・2枚目の期間: 2002年6月〜2021年10月

・3枚目の期間: 2021年11月〜2041年3月(現行)

 

【検討課題】

上場期間が浅い、若い銘柄のときは上場年月を起点にして描く。あるいは用紙の左端を上場年の1月とみなして少し右から描く。

 

意外とどちらの資料を使用しても、方眼紙を3枚使ってしまうのですね。もっとも、現行が右端寄りか、左端かの差はありますが。

【読了】相場サイクルの基本

表題の本を読了しました。正直にいえば難しかったです。この本もまた折に触れて繰り返し読む必要がある本だと思いました。

f:id:ZiruSirka:20240403225050j:image

月足、折れ線、場帖の道具を用意していく過程で、ふとしたきっかけや気付きが引き金になって、この本に再び戻ってくる気配が間違いなく感じられます。
印象的だった箇所としては、「優越サイクル」についての説明が非常に納得感がありました。猫次郎先生の基本教材に含まれる動画「酒田の基本買い戦略」は、この「優越サイクル」に基づく強気相場に乗った玉操作が説明されていると感じました。

「もし、サイクルの開始時と終了時の間に安値が出現すれば、そのサイクルは優越サイクルではない。優越サイクルではないとすれば、そのサイクルはトレーディングには役に立たない。」というメリマンの言葉を胸に刻み込んでおこうと思いました。

また、「相場のサイクルは安値から安値の長さで計測される。高値から高値の長さを計測するのは一般的ではない。」という説明も、言われてみれば確かにそうなのですが、無駄のないストレートな表現に触れて、目からうろこのようなものが落ちた気がしました。数年間にわたる長期的な底打ちが終了するときには、いくつかの典型的な値動きのパターンが見られることを考えると、市場参加者の欲望と思惑が過熱して神経質に値が揺れ動く天井を起点にするのは、確かに困難を伴うだろうと容易に推測できました。
隔週で場帖の当月高値と安値に印を付けるのは、小さめのサイクルにおける天井と底、そしてその周期を捕捉するためなのだろうと感じました。
エリオット波動に紐づけたサイクル理論の展開、強気相場と弱気相場それぞれにおけるガイドライン、押しや戻しの説明に出てくる特徴的なパーセンテージや継続期間を知ると、ここ一両日に起きた押しも冷静な気持ちで値動きを観察することができるようになりました。
画像のとおり決して大部の本ではなく、むしろ小著に類すると思うのですが、非常に密度が濃く参考になる内容盛りだくさんの一冊でした。