環境:MacOS、Python、インターネット
用途:複数の企業コードリストCSVから、企業名、概要をリストにしたい
目的:株探サイトの企業概要の文字列を取得
参考サイト
https://kabutan.jp/stock/?code=3431
概要のHTML
Pythonスクリプト
>これから
環境:MacOS、Python、インターネット
用途:複数の企業コードリストCSVから、企業名、概要をリストにしたい
目的:株探サイトの企業概要の文字列を取得
参考サイト
https://kabutan.jp/stock/?code=3431
概要のHTML
Pythonスクリプト
>これから
マーケットスピードの株価チャートを見ていて、株価や板をずっと見ていると目が疲れてくる。
株価の変動が大きいときは我慢できるが、商いが薄いときは株価が動かず眠くなる。
そこで、楽天証券マーケットスピードのRSSを使用して株価情報を取得して必要な値になったら色の変化で表示させたら便利かもと思った。
このRSSを使用して株価情報をエクセルのシードに表示させるとどうなるか試してみた。
なお、エクセルを使用するために、毎月約1300円くらい支払う。年払いのほうが安いが毎回数ヶ月くらいしかエクセルを使わないので今回も月極にした。
姉妹ブログはこちらエクエルを使用してマーケットスピード2とRSSを利用して株価をチェックするメモ
・RSS(リアルタイムスプレッドシート)
「RSSとは、マーケットスピード投資情報ページ「市況情報(先物OP市況情報)」に表示される値(注)を特殊な関数(RSS関数)を用いて市販表計算ソフト『Microsoft Excel』に取り込み、セル上に表示させるツールです。」
https://www.rakuten-sec.co.jp/MarketSpeed/onLineHelp/msman1_11_1.html
マーケットスピードの機能でも株価情報を表示させることは可能だが、RSSとエクセルを使用することにヨテ自分だけの必要な情報のみを表示させるシートを作成することができる。
・VBAの注意点
IF文のelse if は[elseif](他の言語は、大抵[else if]のようにスペースを入れる)
等価はイコール1つ(他の言語は大抵イコールが2つ必要)
ちなみにVBAとマクロは厳密に仕様が異なることがあるので確認するとよい
・使用環境:Windows10、エクセル Office365 マーケットスピード、RSS.exe
なお、RSSを登録するにはエクセルのマクロを有効にするなど、いくつか設定が必要である。
またRSSが実行できるようにセキュリティソフトの設定も必要。
これらの設定は楽天証券のホームページとグーグル先生が教えてくれる。
(数年経過すると、サイトが閉鎖されているのでネットの情報も永遠ではない)
・エクエルシート構成、マクロ仕様
‘VBAはシングルクォーテーションがコメントになる
‘Ctr+spaceで入力途中でコマンドの候補が表示される。簡易的な入力支援みたい
・動作環境:Windows,マーケットスピード、RSSを起動しマーケットスピードにログインしておく
‘Windowsのみ、RSSが対応しているのはWindowsのみでMacは動作しない
・目的
‘RSSで取得した情報を一定時間間隔で別セルにコピーする、時刻、比率等を記載
‘株価の動きを予測する資料とする
・動作手順
‘マーケットスピードにログインして、RSSを起動する「接続中」となる。「接続処理中」は接続できていないので接続中になるように調整すること
‘エクセルを起動して該当のファイルを開く
‘取得したい銘柄コードを入力する。この作業は手作業
‘マクロを実行させる。その後は、自動でセルのコピーが始まる
‘市場が開いていない時間帯はコピー処理は行わない。
‘2021・04・26
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 |
'グローバル変数 Public goFlag Public endFlag Sub getCode_Click() '登録ボタン 'B1 cell コードを入力して登録ボタンをクリックする If Cells(1, 2) = "" Then 'B1 cell MsgBox "コードが入力されていません" End ElseIf Len(Cells(1, 2)) <> 4 Then MsgBox "4文字ではありません。 文字数を確認してください" End End If 'B列に出力 RSSから情報を取得。マーケットスピード(ログイン)とRSS.exeを立ち上げる必要あり '事前に登録とエクセルの設定でマクロを実行可能にしておく Cells(2, 2).Value = "=RSS|'" & Cells(1, 2) & ".T’!銘柄名称" Cells(3, 2).Value = "=RSS|'" & Cells(1, 2) & ".T’!現在日付" Cells(4, 2).Value = "=RSS|'" & Cells(1, 2) & ".T’!現在値" Cells(5, 2).Value = "=RSS|'" & Cells(1, 2) & ".T’!最良売気配値1" Cells(6, 2).Value = "=RSS|'" & Cells(1, 2) & ".T’!OVER気配数量" Cells(7, 2).Value = "=RSS|'" & Cells(1, 2) & ".T’!UNDER気配数量" Cells(8, 2).Value = "=RSS|'" & Cells(1, 2) & ".T’!年初来高値" Cells(9, 2).Value = "=RSS|'" & Cells(1, 2) & ".T’!年初来安値" Cells(10, 2).Value = "=RSS|'" & Cells(1, 2) & ".T’!信用売残" Cells(11, 2).Value = "=RSS|'" & Cells(1, 2) & ".T’!信用売残前週比" Cells(12, 2).Value = "=RSS|'" & Cells(1, 2) & ".T’!信用買残" Cells(13, 2).Value = "=RSS|'" & Cells(1, 2) & ".T’!信用買残前週比" End Sub Sub anotherModule() cellmake '別のモジュールに記載した関数 セル(センタリング等、色設定)と文字(ボールド)の装飾マクロ、記録を使った End Sub Sub end_Click() '終了、停止ボタン マクロを停止させるフラグを設定 '停止させるときに、コピーしたGHI列を別のシートにコピーさせる '2021/04/26 Dim sheetName endFlag = False Debug.Print "push button" Debug.Print "endFlag:" & endFlag 'シートを追加して、GHI列をコピーする 'コピーの前にセルをコピーしておく If Range("I2").Value <> "" Then n = Cells(Rows.Count, "I").End(xlUp).Row Range("G1:I" & n).Copy 'G1からI行のまでを範囲コピーする sheetName = Format(Now(), "yyyy年mm月dd日hhnn") Worksheets.Add(After:=Worksheets(1), Count:=1).Name = sheetName Worksheets(sheetName).Activate ' シートをアクティブ Range("A1").PasteSpecial Paste:=xlPasteValues Else MsgBox "I2セルが空なのでコピーしませんでした" End If End Sub Sub macro110507a() 'イミディエイトウィンドウを 'すべてクリアする 処理が遅い Dim i As Integer For i = 1 To 1000 'Chr(8)=バックスペース Debug.Print Chr(8) Next i End Sub Sub ForCompareOverUnder() '実行ボタン、endFlag = Falseでループを抜ける '楽天証券マーケットスピードのRSS情報を一定間隔で取得してセルにコピーする '一定間隔3-5Sでループ、11:30か15:00で終了、9:00、12:30開始 'Over,Underの比率を算出してセルにコピーする '比率の変化で株価がどのように変わるかを調べる '目的:比率の変化で株価がどのように変わるのかを調べ、株価の上下転換点の予兆を探る '予兆を探るまたは予測することによって、株の買い時、売りどきを予測する 'または全く無関係かもしれないが、無関係の場合はそれがわかるだけでもよい '動作状況は、debug.printでイミディエイトウィンドウに出力している。 Dim zenbaStartTime, gobaStartTime, zenbaEndTime, gobaEndTime Dim nowTime Dim t As Long Dim nTime As Long Dim aTime Dim bTime, cTime, dTime Debug.Print "macro start" Debug.Print "---" t = Timer 'Loop用 nTime = 3 '3s goFlag = False 'Trueならループ開始になる。市場が開いている時間帯をチェックしてTrueにする endFlag = True 'falseで終了 '前場時間帯 zenbaStartTime = "09:00:00" zenbaEndTime = "11:30:00" '後場時間帯 gobaStartTime = "12:30:00" gobaEndTime = "15:00:00" 'GHI Clear 再実行のときにGHI列をクリアするので、実行前にデータを対比させる必要があるが今はない Columns("G").Clear '株価の列 Columns("H").Clear '率 Columns("I").Clear '時刻 '全部クリアされるので再度入力 Range("G1").Value = "株価" Range("H1").Value = "率" Range("I1").Value = "時刻" cellmake 'Module2のメソッド関数で、装飾ボールド等の処理をする '年のためにコード入力のチェック、整数かどうかのチェックはなし If Range("B1") = "" Then MsgBox "コードが入力されていません.B1セルに銘柄コード4桁を入力し登録ボタンをクリックしてください" End ElseIf Range("B2") = "" Then MsgBox "銘柄が表示されていません.B1セルに銘柄コード4桁を入力し登録ボタンをクリックしてください" End End If '--------loop Do DoEvents 'eventを受け付けるようにしておく、そうしないと強制終了しか方法がない nowTime = Time 'Time(Hour(Now()), Minute(Now()), Second(Now())) '市場以外の時間帯は、コピーしない。 '市場時間外でもループして、市場が始まったらセルのコピーを開始する。 '動いているかどうかわかり位くいので、セルに「実行中」と表示させると良いかもしれない ' nowTime < gobaStartTime Or nowTime > gobaEndTime Then '直接比較すると型が異なるので正しく判定できない aTime = CDate(nowTime) - CDate(zenbaStartTime) '前場 bTime = CDate(nowTime) - CDate(zenbaEndTime) '前場以降 cTime = CDate(nowTime) - CDate(gobaStartTime) '後場 dTime = CDate(nowTime) - CDate(gobaEndTime) '後場以降 If t + nTime < Timer Then '秒単位のタイマー Timeは時刻nTimeで指定した秒間隔でコピー処理を行う Debug.Print nTime&; "秒間隔 マーケット cell write" t = Timer '----Start Timer If aTime < 0 Or (bTime > 0 And cTime < 0) Or (dTime > 0) Then Debug.Print "時間外ですClose" & nowTime goFlag = False Else Debug.Print "市場open" goFlag = True End If If goFlag = True Then '市場が開いているときTrue 'セルをコピーする 'GHIにペーストする n = Cells(Rows.Count, "G").End(xlUp).Row + 1 '最終行の次の行番号を取得 'Range("G" & n).Select 'price Range("G" & n).Value = Range("B4").Value 'ここを株価 'Over Under Under/Overで比率を取得 小数点以下第3位まで表示、四捨五入 Range("H" & n).Value = Round(Range("B7") / Range("B6"), 3) 'ここを率に設定する Range("I" & n).Value = Time 'Now() Else '今はなにもしない。市場が開いていないときの処理 End If End If '-----end timer '----every Loop------------------------------------------------------------- If endFlag = False Then 'cancel buttonを作る 終了、停止ボタンをクリックするとフラグにFalseで終わる。DoEventsによりクリック処理を受ける Debug.Print "exit Loop" Debug.Print "sub_endFlag:" & endFlag Exit Do 'MsgBox "処理を終わります" End If 'Application.Wait Now() + 1 / 86400 '1s待つ でもWaitだとイベントを専有して、ほかの処理を受け付けない Loop Debug.Print "マクロ終了" End Sub |
#Blenderにpandas_datareaderインストール済
python,株データ取得のためのコード、Anaconda、JupyterLabで実行
#日経平均株価のデータを取得したときに、前日分が欠落することがあった。今日の分は取得できたのに、、、
#過去1週間のデータを取得とするはずだったが一部の日付データが取得できず。
#start: 2020/12/22
#today: 2020/12/29
#df=data.DataReader(‘^N225′,’yahoo’,start,end)
#しかし、午前中は 12/29当日データは取得できたけど、前日12/28分は取得できず。
#AM9-11ごろ x
#AM11:07分頃
#AM11:30 x
#11時53分 今度は28日が取得できて、今日の分が取得できず
#12:07 正常に取得できた。28日と今日の29日
結論:たぶん午前中は欠落するデータがあるかもしれない。午後12:05になると当日の日経平均株価が正常に取得できるようだ。正常に取得できないときは、日付が今日の分29日はあっても前日の28日がない。ちなみに25日分はあった
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
start: 2020/12/21 today: 2020/12/29 2020/12/21 2020/12/22 2020/12/23 2020/12/24 2020/12/25 2020/12/28>>午前中はこの日のデータが取得できず 2020/12/29>>午前中でも取得できた High Low Open Close Volume \ Date 2020-12-21 26905.669922 26533.630859 26834.099609 26714.419922 60700 2020-12-22 26639.990234 26361.660156 26559.330078 26436.390625 58600 2020-12-23 26585.210938 26414.740234 26580.429688 26524.789062 56000 2020-12-24 26764.529297 26605.259766 26635.109375 26668.349609 47900 2020-12-25 26716.609375 26638.279297 26708.099609 26656.609375 33400 2020-12-28 26854.029297 26664.599609 26691.289062 26854.029297 50700 2020-12-29 27298.220703 26921.140625 26936.380859 27292.369141 0 Adj Close Date 2020-12-21 26714.419922 2020-12-22 26436.390625 2020-12-23 26524.789062 2020-12-24 26668.349609 2020-12-25 26656.609375 2020-12-28 26854.029297 2020-12-29 27292.369141 |
株、中間配当が届く2017/12/04、SCSK税引き後418円 (株式市場では売れない端株)
カブドットコム証券 税引き後1913円(配当金2400円)2017/12/08
続きを読む
私はマクドナルドの株を保有しています。最近マクドナルドの株価が4000円を越えました。
かつては鶏肉事件で一気に株価は低迷しました。しかも新しい女性社長はその事件を軽く見ていました。日本は謝罪を尊ぶ国柄ですので事件を軽く見た社長の態度がマクドナルドの企業イメージを悪くしました。