ExcelVBAで一目均衡表を計算する方法

ExcelVBAで一目均衡表を計算する方法

はじめに

ExcelのVBAを使用して、一目均衡表を計算する方法について説明します。一目均衡表は、日本の伝統的なテクニカル分析手法で、トレンドの方向性や転換点を視覚的に把握するのに役立ちます。

一目均衡表とは?

一目均衡表(Ichimoku Kinko Hyo)は、1930年代に日本の投資家である細田悟一によって開発されました。この指標は、株価の動きを一目で理解できるように設計されており、以下の5つの主要なラインで構成されています。

  • 転換線(Tenkan-sen)
  • 基準線(Kijun-sen)
  • 先行スパン1(Senkou Span A)
  • 先行スパン2(Senkou Span B)
  • 遅行スパン(Chikou Span)

ExcelVBAで一目均衡表を計算する手順

1. データの準備

まず、Excelシートに株価データを用意します。必要なデータは、日付、始値、高値、安値、終値です。

2. 転換線の計算

転換線は、過去9期間の高値と安値の平均です。以下のVBAコードを使用して、転換線を計算します。

Sub CalculateTenkanSen()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")

    Dim i As Integer
    For i = 10 To ws.Cells(Rows.Count, 1).End(xlUp).Row
        ws.Cells(i, 7).Value = (Application.WorksheetFunction.Max(ws.Range("C" & i - 9 & ":C" & i)) + _
                               Application.WorksheetFunction.Min(ws.Range("D" & i - 9 & ":D" & i))) / 2
    Next i
End Sub

3. 基準線の計算

基準線は、過去26期間の高値と安値の平均です。以下のコードで基準線を計算します。

Sub CalculateKijunSen()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")

    Dim i As Integer
    For i = 27 To ws.Cells(Rows.Count, 1).End(xlUp).Row
        ws.Cells(i, 8).Value = (Application.WorksheetFunction.Max(ws.Range("C" & i - 26 & ":C" & i)) + _
                               Application.WorksheetFunction.Min(ws.Range("D" & i - 26 & ":D" & i))) / 2
    Next i
End Sub

4. 先行スパン1と先行スパン2の計算

先行スパン1と先行スパン2は、転換線と基準線の平均、および過去52期間の高値と安値の平均です。

Sub CalculateSenkouSpans()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")

    Dim i As Integer
    For i = 27 To ws.Cells(Rows.Count, 1).End(xlUp).Row
        ws.Cells(i + 26, 9).Value = (ws.Cells(i, 7).Value + ws.Cells(i, 8).Value) / 2
        ws.Cells(i + 26, 10).Value = (Application.WorksheetFunction.Max(ws.Range("C" & i - 26 & ":C" & i)) + _
                                     Application.WorksheetFunction.Min(ws.Range("D" & i - 26 & ":D" & i))) / 2
    Next i
End Sub

5. 遅行スパンの計算

遅行スパンは、終値を26期間前にシフトしたものです。

Sub CalculateChikouSpan()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")

    Dim i As Integer
    For i = 27 To ws.Cells(Rows.Count, 1).End(xlUp).Row
        ws.Cells(i - 26, 11).Value = ws.Cells(i, 5).Value
    Next i
End Sub

まとめ

以上の手順で、ExcelのVBAを使用して一目均衡表を計算することができます。この指標を利用して、トレンドの方向性や転換点を視覚的に把握し、投資判断に役立ててください。

上部へスクロール