我写的这个指标,背后藏着不少门道.每次打开图表,看着那些红蓝交错的柱子和蜿蜒的曲线,总觉得像在解读市场的情绪密码.这东西不是凭空画出来的,它融合了好几种处理价格和成交量的逻辑,最终呈现出来的是一种多空博弈的痕迹.
一、指标逻辑概述

你得知道,市场走势的本质其实是资金和情绪的叠加.我这个指标里头,首先用到了均线离度算法.close价格和13日均线的差值比率,反映的是短期情绪偏离常态的程度.我把它映射到0-100的区间,其实类似RSI的思路,但不同的是我用了绝对值——不管涨跌,只关心波动幅度,这能过滤掉一些虚假信号.

LIJIN4:=LLV(LOW,75);LIJIN5:=HHV(HIGH,75);LIJIN7:=SMA((CLOSE-LIJIN4)/LIJIN6,20,1);LIJIN9:=3*LIJIN7-2*SMA(LIJIN7,15,1);

然后我引入了一个通道归一化的处理.取75日高低点极差作为分母,当前价格相对于近期最低点的位置作为分子,这样算出来的数值其实是一种标准化后的价格位置.别看计算过程稍有点绕,它的好处是能自适应不同品种的价格区间,无论是高价股还是低价股,都能放在同一尺度下比较.

二、指标核心解析

有意思的是那个“顶底”指标.我用了两次平滑处理,第一次是20日SMA,第二次是15日SMA,但最后用3倍短期值减2倍长期值——这种加权方式其实是对动量的一种放大.当这个值突破临界点时,往往意味着趋势动能正在积聚.红色柱子连片出现时,多半是多头在发力;蓝色柱子密集,则暗示空头逐渐掌控局面.

我特别加入了市场广度指标.计算的是收盘价以上95%价位处的获利盘比例,这个值经过平滑后能反映整体市场的盈利效应.当这个值显著高于价格离度值时,说明虽然价格波动不大,但实际赚钱效应不错——这种背离往往暗示着变盘的可能.

三、量价情绪规律

量价优化算法那块可能稍微复杂些.我用前一日最低价的九折和当日最低价的九折,按成交量加权计算出一个虚拟的均衡价格,再对这个价格做30日指数平滑.这个值代表的是市场心理底价的移动轨迹,当收盘价持续高于这个轨迹时,说明资金承接有力.

情绪阈值的设计参考了多个维度.比如短期RSI(6日)、中期RSI(13日)、60日高低点通道位置、15日随机指数,甚至还包括大盘相对强度.这些条件同时满足时,市场往往处于极端超卖状态——就像被压紧的弹簧,这时候任何利好都可能触发反弹.我在图表底部用渐变的蓝色柱标记这些位置,看着它们零星散布在时间轴上,每次出现都对应着一段恐慌情绪的释放.

临界线设在15这个位置不是随便定的.经过多次测试,发现当指标数值跌破15时,市场往往进入非理性抛售阶段.这时候不需要急着判断底部,但要开始密切关注资金回流迹象.那条蓝色的临界线就像一道水位尺,告诉你市场现在淹到了什么位置.

四、指标用法概述

说实话,这个指标最让我满意的是某个具体信号,而它能同时呈现多个时间维度的市场状态.就像同时戴着近视镜和远视镜看市场,既能看清脚下的坑洼,也能望见远方的山峦.那些交织的曲线似乎在告诉你:市场从来不是非黑即白的,而是在各种力量的拉扯中寻找平衡.

有时候看着图表,会觉得这些指标就像老猎手的皱纹,每道痕迹背后都是无数次追踪和等待的经验.它们不能保证你每次都能捕到猎物,但至少能让你避开一些明显的陷阱.

记得去年有段时间市场特别难做,趋势信号经常失效.但就是这个指标里的广度数据提前提示了市场内在动能的衰减——当时价格还没怎么跌,但曲线已经明显下移,后来果然出现了一轮快速调整.这种隐藏在表面之下的线索,往往比明显的涨跌更有价值.

五、指标总结心得

技术指标说到底是一种翻译工具,把原始的价格波动翻译成更易读的语言.我这个指标试图做的就是多语种翻译——同时解读趋势、动量、超买超卖和市场广度.不同的人能看到不同的层面:短线可能关注柱状图的颜色变化,中线可能更看重临界位置的突破,而长线玩家或许会留意广度数据的长期演变.

市场总是在变,就像河流不断改道.好的指标不是提供一成不变的答案,而是给你一套观察水流变化的工具.我这个指标还在不断调整中,每次回测发现不适应当前市场时,就会做些微调——就像老工匠打磨他的工具,不求完美,但求称手.

六、Python技术指标源码

这个代码需要安装以下Python库:

pip install pandas numpy

并且需要提供包含数据的DataFrame,包含以下列:’date’, ‘open’, ‘high’, ‘low’, ‘close’, ‘volume’

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

def calculate_lijin_indicator(data):
    '''
    计算分时波段顶底量化:1分钟/5分钟/15分钟高抛低吸指标源码
    '''

    df = data.copy()
    
    # 第一部分指标计算
    df['LIJIN1'] = 1
    df['LIJIN2'] = df['close'].rolling(window=13).mean()  # MA(CLOSE,13)
    df['LIJIN3'] = 100 - abs((df['close'] - df['LIJIN2']) / df['LIJIN2'] * 100)
    
    df['LIJIN4'] = df['low'].rolling(window=75).min()  # LLV(LOW,75)
    df['LIJIN5'] = df['high'].rolling(window=75).max()  # HHV(HIGH,75)
    df['LIJIN6'] = (df['LIJIN5'] - df['LIJIN4']) / 100
    
    # SMA计算函数
    def sma(series, window, weight=1):
        return series.ewm(span=window, adjust=False).mean()
    
    df['LIJIN7'] = sma((df['close'] - df['LIJIN4']) / df['LIJIN6'], 20)
    df['LIJIN8'] = sma((df['open'] - df['LIJIN4']) / df['LIJIN6'], 20)
    
    df['LIJIN9'] = 3 * df['LIJIN7'] - 2 * sma(df['LIJIN7'], 15)
    df['LIJIN10'] = 3 * df['LIJIN8'] - 2 * sma(df['LIJIN8'], 15)
    df['LIJIN11'] = 100 - df['LIJIN10']
    
    df['顶底'] = (df['LIJIN9'] - 100) * df['LIJIN1']
    
    # 第二部分指标计算
    df['LIJIN13'] = df['low'].shift(1) * 0.9
    df['LIJIN14'] = df['low'] * 0.9
    
分时波段顶底量化:1分钟/5分钟/15分钟高抛低吸指标源码
    capital = df['volume'].mean() * 1000
    df['LIJIN15'] = (df['LIJIN14'] * df['volume'] + df['LIJIN13'] * (capital - df['volume'])) / capital
    
    df['LIJIN16'] = df['LIJIN15'].ewm(span=30, adjust=False).mean()  # EMA(LIJIN15,30)
    
    df['LIJIN17'] = df['close'] - df['close'].shift(1)
    df['LIJIN18'] = df['LIJIN17'].clip(lower=0)
    df['LIJIN19'] = abs(df['LIJIN17'])
    
    df['LIJIN20'] = sma(df['LIJIN18'], 7) / sma(df['LIJIN19'], 7) * 100
    df['LIJIN21'] = sma(df['LIJIN18'], 13) / sma(df['LIJIN19'], 13) * 100
    
    df['LIJIN22'] = range(1, len(df) + 1)  # BARSCOUNT(CLOSE)
    
    df['LIJIN23'] = sma(df['LIJIN18'], 6) / sma(df['LIJIN19'], 6) * 100
    
    df['LIJIN24'] = (-200) * (df['high'].rolling(window=60).max() - df['close']) / (
            df['high'].rolling(window=60).max() - df['low'].rolling(window=60).min()) + 100
    
    df['LIJIN25'] = (df['close'] - df['low'].rolling(window=15).min()) / (
            df['high'].rolling(window=15).max() - df['low'].rolling(window=15).min()) * 100
    
    df['LIJIN26'] = sma((sma(df['LIJIN25'], 4) - 50) * 23)
    
    分时波段顶底量化:1分钟/5分钟/15分钟高抛低吸指标源码
    df['LIJIN27'] = (df['close'] - df['low'].rolling(window=14).min()) / (
            df['high'].rolling(window=14).max() - df['low'].rolling(window=14).min()) * 100
    
    df['LIJIN28'] = sma(df['LIJIN27'], 4)
    df['LIJIN29'] = sma(df['LIJIN28'], 3)
    
    df['LIJIN30'] = (df['high'].rolling(window=30).max() - df['close']) / df['close'] * 100
    
    # 条件判断
    condition1 = df['LIJIN23'] <= 25
    condition2 = df['LIJIN24'] < -95
    condition3 = df['LIJIN30'] > 20
    condition4 = df['LIJIN26'] < -30
    condition5 = df['LIJIN29'] < 30
    condition6 = (df['LIJIN16'] - df['close']) >= -0.25
    condition7 = df['LIJIN20'] < 22
    condition8 = df['LIJIN21'] < 28
    condition9 = df['LIJIN22'] > 50
    
    df['LIJIN31'] = condition1 & condition2 & condition3 & condition4 & condition5 & condition6 & condition7 & condition8 & condition9
    
    df['XG13'] = 1
    df['XG1'] = df['LIJIN31']
    
    return df

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


通达信指标代码学习
LIJIN1:=1;LIJIN2:=MA(CLOSE,13);LIJIN3:=100-ABS((CLOSE-LIJIN2)/LIJIN2*100);LIJIN4:=LLV(LOW,75);LIJIN5:=HHV(HIGH,75);LIJIN6:=(LIJIN5-LIJIN4)/100;LIJIN7:=SMA((CLOSE-LIJIN4)/LIJIN6,20,1);LIJIN8:=SMA((OPEN-LIJIN4)/LIJIN6,20,1);LIJIN9:=3*LIJIN7-2*SMA(LIJIN7,15,1);LIJIN10:=3*LIJIN8-2*SMA(LIJIN8,15,1);LIJIN11:=100-LIJIN10;顶底:=(LIJIN9-100)*LIJIN1,COLORRED;STICKLINE(顶底>REF(顶底,2),顶底,REF(顶底,2),3,0),COLORRED;STICKLINE(顶底<REF(顶底,2),顶底,REF(顶底,2),3,0),COLORBLUE;LIJIN13:=REF(LOW,1)*0.9;LIJIN14:=LOW*0.9;LIJIN15:=(LIJIN14*VOL+LIJIN13*(1))/1;LIJIN16:=EMA(LIJIN15,30);LIJIN17:=CLOSE-REF(CLOSE,1);LIJIN18:=MAX(LIJIN17,0);LIJIN19:=ABS(LIJIN17);LIJIN20:=SMA(LIJIN18,7,1)/SMA(LIJIN19,7,1)*100;LIJIN21:=SMA(LIJIN18,13,1)/SMA(LIJIN19,13,1)*100;LIJIN22:=BARSCOUNT(CLOSE);LIJIN23:=SMA(MAX(LIJIN17,0),6,1)/SMA(ABS(LIJIN17),6,1)*100;LIJIN24:=(-200)*(HHV(HIGH,60)-CLOSE)/(HHV(HIGH,60)-LLV(LOW,60))+100;LIJIN25:=(CLOSE-LLV(LOW,15))/(HHV(HIGH,15)-LLV(LOW,15))*100;LIJIN26:=SMA((SMA(LIJIN25,4,1)-50)*2,3,1);LIJIN27:=(INDEXC-LLV(INDEXL,14))/(HHV(INDEXH,14)-LLV(INDEXL,14))*100;LIJIN28:=SMA(LIJIN27,4,1);LIJIN29:=SMA(LIJIN28,3,1);LIJIN30:=(HHV(HIGH,30)-CLOSE)/CLOSE*100;LIJIN31:=LIJIN23<=25&&LIJIN24<-95&&LIJIN30>20&&LIJIN26<-30&&LIJIN29<30&&LIJIN16-CLOSE>=-0.25&&LIJIN20<22&&LIJIN21<28&&LIJIN22>50;XG13:=1;XG1:=LIJIN31;STICKLINE(XG1,0,-80,0,0),COLOR0000FF;STICKLINE(XG1,0,-80,3.5,0),COLOR000099;STICKLINE(XG1,0,-80,2,0),COLOR0000BB;STICKLINE(XG1,0,-80,1,0),COLOR0000DD;STICKLINE(XG1,0,-80,0.3,0),COLOR0000FF;CONST(-100),COLORGREEN,LINETHICK2;0,COLORYELLOW,LINETHICK2;临界:15,COLORBLUE,LINETHICK3;

注意本指标源码用于通达信,友情提示:代码较多。本文所述模型算法仅限学术探讨,指标公式作为知识免费分享,’基于开源数据集的理论推演’,仅用于学习交流。


学习分享


学术交流:我们专注于市场的学术交流与研究包括自用指标零滞后均线最速曲线,以及自动化程序量化学习。
分享知识:感恩三田都元帅,心中有三田,生活一定甜,敬神常在,爱人如己,我为人人,与人为善,分享快乐!