江恩曲線(Gann Fan)又稱甘氏線,是由美國投資家威廉·D·江恩(William Gann)發明的一種技術分析工具,主要用于股票、期貨等市場的趨勢分析和預測。而Python作為一種高級編程語言,可以很輕易地實現畫江恩曲線的功能。
# 導入必要的模塊 import numpy as np import matplotlib.pyplot as plt # 定義計算江恩角度的函數 def get_angle(x1, y1, x2, y2): dx = x2 - x1 dy = y2 - y1 angle = np.arctan2(dy, dx) * 180 / np.pi return angle # 定義畫江恩曲線的函數 def plot_gann_fan(ax, start, end): x1, y1 = start x2, y2 = end angle = get_angle(x1, y1, x2, y2) levels = [1, 1.125, 1.25, 1.375, 1.5, 1.625, 1.75, 1.875, 2, 2.125, 2.25, 2.375, 2.5, 2.625, 2.75] for level in levels: x = np.array([x1, x2]) y = np.array([y1, y2]) * level xt, yt = ax.transData.transform(np.vstack((x,y)).T).T xr = ax.transData.inverted().transform(np.vstack((xt, np.ones_like(xt))).T).T[:, 0] yr = ax.transData.inverted().transform(np.vstack((np.ones_like(yt), yt)).T).T[:, 1] ax.plot(xr, yr, color='black', linestyle='--') # 生成示例數據 t = np.arange(0.0, 2.0, 0.01) s = 1 + np.sin(2*np.pi*t) # 畫圖 fig, ax = plt.subplots() # 畫江恩曲線 plot_gann_fan(ax, [0, s[0]], [len(s), s[-1]]) # 設置坐標軸 ax.set_xlim(0, len(s)) ax.set_ylim(np.min(s)-1, np.max(s)+1) # 顯示圖像 plt.show()
通過上面的代碼,我們可以畫出一條基于示例數據的江恩曲線,如下圖所示: