钱龙长线指标(LON)
钱龙长线指标是一种描述当前趋势的指标,相比均线只使用收盘价而言,钱龙长线指标在描述趋势时,还考虑到了最高价、最低价、成交量对趋势的影响。最常用的使用方法是,LON指标上穿0线时做多;LON指标下穿0线时做空。
钱龙长线计算公式
LC := REF(CLOSE,1);
VID := SUM(VOL,2)/(((HHV(HIGH,2)-LLV(LOW,2)))*100);
RC := (CLOSE-LC)*VID;
LONG := SUM(RC,0);
DIFF := SMA(LONG,10,1);
DEA := SMA(LONG,20,1);
LON : DIFF-DEA;
LONMA : MA(LON,10);
LONT : LON, COLORSTICK;
Python实现
import pandas as pd
def lon(df, n=10):
lc = df['close'].shift(1)
a = (df['high'].rolling(2).max() - df['low'].rolling(2).min()) * 100
vid = df['volume'].rolling(2).sum() / a
rc = (df['close'] - lc) * vid
long = rc.cumsum()
dif = long.ewm(com=9, adjust=False).mean()
dea = long.ewm(com=19, adjust=False).mean()
lon = dif - dea
return pd.DataFrame({'lon': lon, 'lonma': lon.rolling(n).mean()}, index=df.index)
测试
使用东方财富300059的历史日K数据进行检验,使用mplfinance库绘制K线图。
import mplfinance as mf
import pandas as pd
data = pd.read_csv('csv_data/stocks/300059.SZ.csv', parse_dates=["trade_date"], index_col=0)
data = data[['trade_date', 'open', 'high', 'low', 'close', 'volume']].sort_index(ascending=False)
data = data.reset_index(drop=True)
data.set_index('trade_date', drop=True, inplace=True)
lon = lon(data)
data = data.join(lon)
data.dropna(inplace=True)
print(data.head())
po_lon = data['lon'].copy()
po_lon[po_lon < 0] = None
na_lon = data['lon'].copy()
na_lon[na_lon > 0] = None
ap = [
mf.make_addplot(po_lon, type='bar', color='r', panel=1),
mf.make_addplot(na_lon, type='bar', color='g', panel=1),
mf.make_addplot(data['lon'], panel=1, color='b'),
mf.make_addplot(data['lonma'], panel=1, color='y'),
]
mf.plot(data, addplot=ap, style='charles', type='candle', mav=(5, 30))
绘制结果与行情软件一致:
小结
相比双均线或者SuperTrend描述趋势,钱龙长线表现较为优秀,过滤掉了很多错误信号。原因可能是:第一,钱龙长线指标使用了更多的因子(最低价、最高价、成交量)来描述趋势;第二,无论是双均线还是SuperTrend,在周期选择的问题上很让人头疼,无论怎样的周期组合都不可能完美,而钱龙长线指标已经帮你选择好了周期。