目次
概要

細田悟一氏(ペンネーム一目山人)によって昭和11年に考案された日本生まれのテクニカル指標です。7年の歳月をかけて完成させたもので一目均衡表の名は「相場は買い方と売り方の均衡が崩れた時に大きく動くので、どちらが優勢かが分かればよく、それを一目で知ることができる」という作者本人の言葉に由来します。
一目均衡表は、基準線・転換線・先行スパン1・先行スパン2・遅行スパンの5つの線と先行スパン1と先行スパン2の間に定義される雲からできています。
計算方法
一目均衡表は5本のラインと雲を以下の通りに定義して計算します。
- 基準線:当日を含む過去26日間中の(高値+安値)/2
- 転換線:当日を含む過去9日間の中の(高値+安値)/2
- 先行スパン1:(基準線+転換線)/2を当日を含んだ26日先の位置に表示したもの
- 先行スパン2:当日を含む過去52日間中の(高値+安値)/2を当日を含んだ26日先の位置に表示したもの
- 遅行スパン:当日の終値を当日を含む26日前の位置に表示
- 雲:先行スパン1と先行スパン2の間に定義
これらを描画したものが図1になります。雲は先行スパン1と先行スパン2の間の領域(黄緑)を指します。
Pythonによる実装
必要なライブラリを読み込みます
!pip install mpl_finance #Collaboratoryに入っていないライブラリを読み込みます import matplotlib import matplotlib.pyplot as plt import matplotlib.dates as mdates import pandas as pd import mpl_finance import sys import numpy as np from datetime import datetime from matplotlib.offsetbox import OffsetImage, AnnotationBbox import requests import io
データをcsvファイルから読み込みます
#ファイルの読み込み URL = "https://neulab.co.jp/wp-content/uploads/pseudo_data.csv" #csvファイルのURL datafile = requests.get(URL)#ファイルの読み込み #データフレームの作成 df_temp = pd.read_csv(io.BytesIO(datafile.content), header=0, index_col=0, parse_dates=True, encoding="UTF-8") df = df_temp.loc[:,['Open','High','Low','Close']] df.head()
一目均衡表を計算します
df_high_rate = df['High'] df_low_rate = df['Low'] df_high_tenkan = df_high_rate.rolling(9).max() df_low_tenkan = df_low_rate.rolling(9).min() df_tenkan = (df_high_tenkan + df_low_tenkan)/2 df_high_kijyun = df_high_rate.rolling(26).max() df_low_kijyun = df_low_rate.rolling(26).min() df_kijyun = (df_high_kijyun + df_low_kijyun)/2 df_senkouspan1 = (df_tenkan + df_kijyun)/2 df_senkouspan1 = df_senkouspan1.shift(25) df_high_senkouspan2 = df_high_rate.rolling(52).max() df_low_senkouspan2 = df_low_rate.rolling(52).min() df_senkouspan2 = (df_high_senkouspan2 + df_low_senkouspan2)/2 df_senkouspan2 = df_senkouspan2.shift(25) df_chikouspan = df['Close'].shift(-25)
チャートへの描画と保存例です
canvas_color = '#fffafa' line_color = '#c8ced1' font_color = '#171510' colorup = '#bf0000' colordown = '#006fbf' n_data = -74 n_data2 = -100 data = df[n_data:] data2 = df[n_data2:] ohlc = np.vstack((range(len(data)), data.T)).T fig = plt.figure(figsize=(12, 8)) fig.patch.set_facecolor(canvas_color) ax = fig.add_subplot(1, 1, 1) ax.patch.set_facecolor(canvas_color) mpl_finance.candlestick_ohlc(ax, ohlc, width=0.5, alpha=1, colorup=colorup, colordown=colordown) ax.plot(range(len(data)), df_kijyun.values[n_data:], color='black', label='Kijyun' ) ax.plot(range(len(data)), df_tenkan.values[n_data:], color='red', label='Tenkan') ax.plot(range(len(data2)), df_senkouspan1.values[n_data2:], color='darkgreen', label='Senkou-span1') ax.plot(range(len(data2)), df_senkouspan2.values[n_data2:], color='darkblue', label='Senkou-span2') ax.plot(range(len(data)), df_chikouspan.values[n_data:], color='darkorange', label='Chikou-span') ax.fill_between(range(len(data)), df_senkouspan1.values[n_data:], df_senkouspan2.values[n_data:], facecolor='lime', alpha=0.5) ax.grid() #ロゴ読み込み logoURL = "https://neulab.co.jp/wp-content/uploads/logo.png" #ロゴファイルのURL img_c = plt.imread(logoURL) imagebox = OffsetImage(img_c, zoom=0.020) #画像をimageboxにいれる。 imagebox.image.axes = ax im_sabo = AnnotationBbox(imagebox, (0, 9850), xybox=(0, 9950), xycoords="data", boxcoords="data", pad=0.3, frameon=False) l1,l2 = ax.get_legend_handles_labels() ax.legend(l1,l2, fontsize=14, edgecolor='none', facecolor=canvas_color) ax.set_ylabel("Price of Something", fontsize=22) ax.set_ylim(9000., 10000.) ax.yaxis.tick_right() ax.yaxis.set_label_coords(0, 0.5) ax.tick_params(labelsize=24, labelcolor=font_color, color=line_color) ax.spines['left'].set_linewidth(0) ax.spines['right'].set_linewidth(0) ax.spines['top'].set_linewidth(0) ax.spines['bottom'].set_linewidth(0) xtick0 = 2 plt.xticks(range(xtick0,len(data2),12), [x.strftime('%m/%d') for x in df_kijyun.index][xtick0::12]) plt.subplots_adjust(left=0.03, right=0.92, bottom=0.1, top=0.99) plt.grid(which='major',color=line_color,linestyle='-') plt.grid(which='minor',color=line_color,linestyle='-') ax.set_axisbelow(True) plt.savefig('ichimoku.png')
以上のコードをGoogle社の提供しているColaboratory上で公開しており、実際に動作させることができます。
リンクはこちら。
一目均衡表の基本的な使い方
最新のデータまでを使い、5本の線と雲から複数ポイントの予想が可能で、特に基準線と転換線の位置関係、雲、遅行スパンの方向性が揃ったときは信頼度の高いシグナルとされています。
基準線と転換線
- 転換線が基準線の上:買い
- 転換線が基準線の下:売り
- 転換線が基準線を上抜け:好転
- 転換線が基準線を下抜け:逆転
基準線の方向
- 上昇;強気相場
- 横ばい:方向感なし
- 下落:弱気相場
雲
- 雲上:買いトレンド
- 雲中:方向感なし
- 雲下:売りトレンド
遅行スパン
- 遅行スパン>26日前のレート:買いトレンド
- 遅行スパン<26日前のレート:売りトレンド
三役好転
- 転換線が基準線の上
- 価格が雲の上
- 遅行スパンがレートの上
三役逆転
- 転換線が基準線の下
- 価格が雲の下
- 遅行スパンがレートの下
実際に予想を行った例が図2になります。チャートの最新データ(黒い四角で囲んだ部分)で翌日以降の相場について予想を行います。上記の予想パターンに当てはめると翌日は買い相場の予想となります。

注意点
日足以外でも活用することは可能ですが、考案者の一目山人は日足で使うことを推奨しています。
※このHPページで紹介しているテクニカル指標を使った取引ルールや売買シグナルの見方は一般的な考え方に基づくものであり、利益の増加や損失の減少を保証するものではありません。ご自身の判断にてお取引いただきますようお願いいたします。
現在、ニューラボでは人工知能による取引アルゴリズムを開発中です。11月にリリース予定。乞うご期待!
自動取引にご興味を持たれましたら お問い合わせページよりお気軽にお問合せください。