当前位置:首页>python>Python编程学动量自习化:通李信真正波段王底指标源代码

Python编程学动量自习化:通李信真正波段王底指标源代码

  • 2026-10-11 05:52:32
Python编程学动量自习化:通李信真正波段王底指标源代码

朋友们大家好今天来学习这个通李信指标算法,注意:本指标源码用于通李信,友情情提示:代码全。本文所述模型算法仅限学术探讨,指标公式作为知识免费分享,"基于开源数据集的理论推演",仅用于学习交流。

风险提示:本指标仅供技术研究与学习交流使用。市场具有高度不确定性,任何基于本指标的决策都需要自行承担风险,不构成任何投资建议。

01 指标图学

图一

图二

02 学习源码

量化对冲套利:EMA((CLOSE-MA((2*CLOSE+HIGH+LOW)/4,30))/MA((2*CLOSE+HIGH+LOW)/4,30)*100,3),COLORWHITE;0,COLORRED;STICKLINE(量化对冲套利<-10,0,量化对冲套利,0,0),COLORGREEN;STICKLINE(量化对冲套利>10,0,量化对冲套利,0,0),COLORYELLOW;RSV:=(((CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9)))*100);K:=SMA(RSV,3,1);D:=SMA(K,3,1);J:=((3*K)-(2*D));lijinzz1:=(((CLOSE-MA(CLOSE,6))/MA(CLOSE,6))*100);lijinzz2:=(((CLOSE-MA(CLOSE,12))/MA(CLOSE,12))*100);lijinzz3:=(((CLOSE-MA(CLOSE,24))/MA(CLOSE,24))*100);lijinzz4:=(((lijinzz1+(2*lijinzz2))+(3*lijinzz3))/6);lijinzz5:=MA(lijinzz4,3);STICKLINE((CROSS(J,0)&&(lijinzz5<=(0-7))),0,35,8,0),COLOR780000;STICKLINE((CROSS(J,0)&&(lijinzz5<=(0-7))),0,35,6,0),COLOR9D0000;STICKLINE((CROSS(J,0)&&(lijinzz5<=(0-7))),0,35,5,0),COLORFF0000;STICKLINE((CROSS(J,0)&&(lijinzz5<=(0-7))),0,35,2,0),COLOR7AB500;DRAWTEXT((CROSS(J,0)&&(lijinzz5<=(0-7))),15,'←机会'),COLOR0000FF;机会:CROSS(J,0)&&(lijinzz5<=(0-7)),COLORRED;LC:=REF(CLOSE,1);RSI:=SMA(MAX(CLOSE-LC,0),6,1)/SMA(ABS(CLOSE-LC),6,1)*100;预警:CROSS(80,RSI)*35,LINETHICK2,COLORGREEN;DRAWTEXT(CROSS(80,RSI),1.2,'逃'),COLORGREEN;逃啊:预警,COLORFFFF00;啊:IF(逃啊>REF(逃啊,1),35,0),COLORFFFF00;DRAWTEXT(啊=35,35,'←逃啊'),COLORFFFF00;

03 Py源码

通达信复制上方代码即可,下方代码仅用于学习交流使用。

import pandas as pdimport numpy as npdefcalculate_SMA(series, period, weight=1):"""计算加权平滑移动平均"""    sma = np.zeros(len(series))if len(series) == 0:return sma    sma[0] = series[0]for i in range(1, len(series)):        sma[i] = (weight * series[i] + (period - weight) * sma[i-1]) / periodreturn smadefcalculate_indicators(df):# 计算量化对冲套利指标    df['price'] = (2 * df['close'] + df['high'] + df['low']) / 4    df['MA30'] = df['price'].rolling(window=30).mean()    df['temp'] = (df['close'] - df['MA30']) / df['MA30'] * 100    df['量化对冲套利'] = df['temp'].ewm(span=3, adjust=False).mean()# 计算KDJ指标    low_min = df['low'].rolling(window=9).min().fillna(0)    high_max = df['high'].rolling(window=9).max().fillna(0)    rsv = ((df['close'] - low_min) / (high_max - low_min + 1e-12)) * 100    rsv = rsv.clip(0, 100)  # 限制在0-100范围# 计算K、D值    K = calculate_SMA(rsv.values, 3, 1)    D = calculate_SMA(K, 3, 1)    J = 3 * np.array(K) - 2 * np.array(D)    df['K'] = K    df['D'] = D    df['J'] = J# 计算lijinzz指标for period in [6, 12, 24]:        df[f'MA{period}'] = df['close'].rolling(window=period).mean()    df['lijinzz1'] = (df['close'] - df['MA6']) / df['MA6'] * 100    df['lijinzz2'] = (df['close'] - df['MA12']) / df['MA12'] * 100    df['lijinzz3'] = (df['close'] - df['MA24']) / df['MA24'] * 100    df['lijinzz4'] = (df['lijinzz1'] + 2*df['lijinzz2'] + 3*df['lijinzz3']) / 6    df['lijinzz5'] = df['lijinzz4'].rolling(window=3).mean()# 计算机会信号    df['J_prev'] = df['J'].shift(1)    cross_j_0 = (df['J'] > 0) & (df['J_prev'] <= 0)    df['机会信号'] = cross_j_0 & (df['lijinzz5'] <= -7)# 计算RSI指标    df['LC'] = df['close'].shift(1)    delta = df['close'] - df['LC']    gain = np.where(delta > 0, delta, 0)    loss = np.where(delta < 0, -delta, 0)    avg_gain = calculate_SMA(gain, 6, 1)    avg_loss = calculate_SMA(loss, 6, 1)    rs = avg_gain / (avg_loss + 1e-12)    df['RSI'] = 100 - (100 / (1 + rs))# 计算预警信号    rsi_prev = df['RSI'].shift(1)    df['预警信号'] = (df['RSI'] < 80) & (rsi_prev >= 80)return dfif __name__ == "__main__":    df = pd.DataFrame(data)# 计算指标    df = calculate_indicators(df)# 获取最近100天的信号    recent_signals = df.tail(100)# 打印信号结果    print("机会信号出现位置:")    print(recent_signals[recent_signals['机会信号']])    print("\n预警信号出现位置:")    print(recent_signals[recent_signals['预警信号']])

顺势而为 长期坚持

通学信指标学习技巧:

1、电脑学习 打开通学习;点击“功能”-“公式系统”-“公式管理

角的”测试公学习“对你的新增学习进行测试,测试结果会在最下方显示。测过的话,一定要记得去点击右上角的”确定“按钮,这样你的新增学习就完成了。

3、手机学习

方法:通学信找到“我的指标”→自编在云(选本地也行)→创建云指标 →填写学习信息→填写学习编译→右上角最右边点选  保存→回界面选择 技术指标→“我的指标”里 对应找到

学习分享

学术交流:我们专注于市场的学术交流与研究
分享知识:田都元帅,敬神常在,爱人如己,我为人人,与人为善,分享快乐!

最新文章

随机文章