カオス・アリゲーター(Chaos Alligator)

 

概要
図1 カオス・アリゲータ-の描画例

カオス・アリゲーターはビル・ウイリアムズ(Bill・M・Williams)氏が開発したトレンド系のテクニカル指標です。図1のように短期、中期、長期の3本のEMAを使って表示します。長期のEMAをアリゲーターの顎、中期のEMAをアリゲーターの歯、短期のEMAをアリゲーターの唇に例えています。トレンドの開始をアリゲーターが獲物を見つけたときに口を開けた様子を、トレンドの終了を満腹のアリゲーターが口を閉じる様子を表現しています。

日足で使用する場合、短期線として5日のEMA(5)、中期線として8日のEMA(8)、長期線として13日のEMA(13)のEMAを使用します。3本のEMAの感覚が広がっている場合、トレンドが強いと判断します。5日線が3本のEMAの感覚の収縮や線同士が交差するポイントがポジションの手仕舞いポイントとなります。

カオス・アリゲーターの計算方法

カオス・アリゲーターはEMAを改変なく使用します。特に固有の計算方法などはありません。

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

疑似データを読み込みます

#ファイルの読み込み
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_ema_5  = df['Close'].ewm(span=5).mean()
df_ema_8 = df['Close'].ewm(span=8).mean()
df_ema_13  = df['Close'].ewm(span=13).mean()

matplotを使用したチャートの描画例です

canvas_color = '#fffafa'
line_color = '#c8ced1'
font_color = '#171510'
colorup = '#bf0000'
colordown = '#006fbf'

n_data = -100
data = df[n_data:]
ohlc = np.vstack((range(len(data)), data.T)).T

fig = plt.figure(figsize=(12, 16))
fig.patch.set_facecolor(canvas_color)

ax = fig.add_subplot(2, 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_ema_5.values[n_data:], color='darkorange', ls='-', label='EMA(5)')
ax.plot(range(len(data)), df_ema_8.values[n_data:], color='darkgreen', ls='-', label='EMA(8)')
ax.plot(range(len(data)), df_ema_13.values[n_data:], color='magenta', ls='-', label='EMA(13)')
ax.grid()

#ロゴ読み込み
logoURL = "https://neulab.co.jp/wp-content/uploads/logo.png" #logoファイルの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, loc='upper right', fontsize=14, edgecolor='none', facecolor=canvas_color)

ax.add_artist(im_sabo)
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(data),12), [x.strftime('%m/%d') for x in df_ema_5.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('ChaosAlligator.png')

以上のコードをGoogle社の提供しているColaboratory上で公開しており、実際に動作させることができます。

リンク先はこちら

カオス・アリゲーターを使った予想

3本のEMAの位置関係と傾きから予想を行います。EMA同士の間隔広がっている時はトレンドが強い時と考えます。基本的な使い方は開発者によるとトレンドフォロー、つまり順張りとなります。

図2がカオス・アリゲーターを使った予想例です。3本のEMAの間隔が狭まった場合はトレンドが弱くなったことを示しており、収束してきたら手仕舞い(決済)のタイミングとなります。また、EMAの間隔が広がっていくかを見極める必要がありますが、収束した点は次の売買を行う予兆でもあります。

図2 カオス・アリゲーターを使った予想例
注意点

カオス・アリゲーターは移動平均線の交差を使用するため、不規則な動きをするレンジ相場では使いにくく、トレンド相場の方が有効だと言われています。 また、長期のEMAを使っているため他のテクニカル指標に比べて売買サインが遅くなる傾向があります。他のテクニカル指標を組み合わせることをお勧めします。


※このHPページで紹介しているテクニカル指標を使った取引ルールや売買シグナルの見方は一般的な考え方に基づくものであり、利益の増加や損失の減少を保証するものではありません。ご自身の判断にてお取引いただきますようお願いいたします。


現在、ニューラボでは人工知能による取引アルゴリズムを開発中です。11月にリリース予定。乞うご期待!
自動取引にご興味を持たれましたら お問い合わせページよりお気軽にお問合せください。