ブログにチャートを載せたい
日々のトレードの記録にブログを付けているわけですが、5分足チャートを載せたいと思っています。
文章だけでは自分でも読み直してみてわかりにくく、ぜひともチャートを載せたいのです。
やってみようとしたところ、結構手間がかかりましたので、他の方の役に立つこともあるかもしれないと思い、残しておきます。
チャートの転載OKなサイトは存在するが…
一応さらっと調べてみたのですがチャートを転載OKとしている証券会社等はみつかりませんでした。
こちらのブログでは、筆者の方が探した結果、「株ドラゴン」というサイトが転載OKだよ、という情報を載せてくれています。
ありがたい!と早速覗いてみたところ、転載OKなのは確かなのですが、日足チャートまでしかなかったので残念ながら要件を満たせず…
ただスイングトレードや中~長期など、日足チャートをメインに見ている方にはおすすめです。
歩み値データを探す
こうなったら歩み値データをどこかで入手して自分でチャートを作るしかないかと思い、歩み値の入手先を探してみました。
ところがこれもなかなか見つかりません。
私がメインで使っている証券会社はSBI証券なのですが、こちらで提供しているツール(HYPER SBI 2)で歩み値をCSV形式でダウンロードできる機能があります。
しかしこちらも日足まで。
大元の日本取引所グループ(JPX)で有償で提供しているのですが、38万円と個人で利用するには高額です。
1か月前のデータだと1450円で使用できるようですが、それだとブログに載せるには遅すぎるし…。
分足データをダウンロードできるツールを発見!
いろいろ探してみた結果、SBIネオトレード証券で提供しているツール(NEOTRADER R)で分足データをダウンロードすることが可能であることがわかりました。早速口座開設の申し込みをし、待つこと数日。無事に開設されたのでツールをダウンロードしました。
ちょっと分かりにくいのですが、銘柄を検索して対象銘柄を右クリック→「チャート画面を開く」→チャートウィンドウで好みの足のチャートを選択して表示させる→チャート画面で右クリック→「CSVデータ出力」です。
CSVデータをグラフに変換する
自分の場合はExcelを使い慣れているのでExcelでやりました。
やり方はいろんなサイトで紹介してくれているので詳しくは割愛しますが、自分が引っかかったポイントをいくつか。
ダウンロードしてきたCSVはそのままではグラフに変換できません。
・日付を絞り込む
このCSVデータは過去1週間分の歩み値が入っています(5分足の場合、他のは未検証です)。
なので、対象の日付だけフィルターをかけて抽出しておきましょう。
・必要なデータだけを選択してグラフ作成する
エクセルの標準機能でローソク足チャートを作成することができるのですが、データの形式は、必ず「時刻(日付)」、「始値」、「高値」、「安値」、「終値」の列順になっていないといけません。
B列からF列にかけてその通りになっているので、この部分だけ選択してグラフ作成しましょう。
・目盛りは調整が必要
刻み値は株価の変動幅に合わせて調整しましょう。
マクロに登録しておく
実際やってみると結構面倒です。1銘柄位なら良いのですが、毎日何銘柄もトレードしていると、結構負担になるので、マクロを組んでみました。
これで多少楽になりました。一応最後にコード貼っておきます。
で、実際に作成したグラフがこちら。
マクロのコード
上記のCSVファイルの編集に特化しているので、使うときには自己責任でお願いします。
自動記録したマクロをちょいちょいと直しただけなので、不要なコードも入っていると思います。
Sub グラフ作成() ' ' グラフ作成 Macro ' CSVファイルからグラフを作成する。 ' Dim shtName As String Dim dStr As String shtName = ActiveSheet.Name 'シート名から日付部分を抽出して、データのフィルタに使う dStr = Format(Format(Split(shtName, "_")(1), "####/##/##"), "yyyy/m/d") Selection.AutoFilter ActiveSheet.Range("$A$2:$R$362").AutoFilter Field:=1, Operator:= _ xlFilterValues, Criteria2:=Array(2, dStr) ActiveWorkbook.Worksheets(shtName).AutoFilter.Sort.SortFields. _ Clear ActiveWorkbook.Worksheets(shtName).AutoFilter.Sort.SortFields. _ Add2 Key:=Range("B2:B362"), SortOn:=xlSortOnValues, Order:=xlAscending, _ DataOption:=xlSortNormal With ActiveWorkbook.Worksheets(shtName).AutoFilter.Sort .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Range("B2:F3").Select Range(Selection, Selection.End(xlDown)).Select ActiveSheet.Shapes.AddChart2(322, xlStockOHLC).Select ActiveChart.SetSourceData Source:=Range(shtName & "!$B$2:$F$64") ActiveChart.ChartArea.Select ActiveChart.Location Where:=xlLocationAsNewSheet ActiveChart.ChartArea.Select ActiveChart.Legend.Select Selection.Delete ActiveChart.ChartTitle.Select ActiveChart.ChartTitle.Text = Split(shtName, "_")(0) & "_" & Format(dStr, "yyyymmdd") Selection.Format.TextFrame2.TextRange.Characters.Text = Split(shtName, "_")(0) & "_" & Format(dStr, "yyyymmdd") With Selection.Format.TextFrame2.TextRange.Characters(1, 12).ParagraphFormat .TextDirection = msoTextDirectionLeftToRight .Alignment = msoAlignCenter End With ActiveChart.ChartArea.Select ActiveChart.Axes(xlCategory).Select Selection.TickLabels.NumberFormatLocal = "[$-x-systime]h:mm:ss AM/PM" Selection.TickLabels.NumberFormatLocal = "h:mm;@" 'ファイルの保存 ChDir "ファイルパス" ActiveWorkbook.SaveAs Filename:= _ "保存先ファイル名", _ FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False End Sub