社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python编程学动量自动化:筹码龙头主升通达信指标公式

量化对冲套利 • 3 周前 • 68 次点击  

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

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

01 指标图例


图一

图二

02 Py源码





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

def calculate_indicators(df):

    筹码龙头主升通达信指标公式
    df['mid'] = (df['close'] + df['low']) / 2
    
    # 计算量化指标
    ema2 = df['mid'].ewm(span=2, adjust=False).mean()
    sum5 = ema2.rolling(window=5).sum()
    df['量化'] = sum5 / 5
    
    # 计算对冲指标
    df['对冲'] = df['量化'].rolling(window=4).min()
    
    # 计算套利指标
    df['套利'] = df['量化'].rolling(window=10).min()
    
    # 计算李津指标
    df['李津'] = df['量化'].ewm(span=21, adjust=False).mean()
    
    # 计算lijin系列指标
    llv8 = df['mid'].rolling(window=8).min()
    ma_part = (llv8 * 1.1).rolling(window=13).mean()
    ema3 = df['mid'].ewm(span=3, adjust=False).mean()
    
    df['lijin1'] = 2 * ma_part - ema3 - df['mid'] * 0.1
    diff = (ema3 - df['lijin1']) * 5
    df['lijin2'] = np.where(diff > 0, (diff**2)/10, -(diff**2)/10)
    df['lijin3'] = np.where(df['lijin2'] > 0, df['lijin2'], 0)
    
    # 计算信号条件
    df['mid_ma8'] = df['mid'].rolling(window=8).mean()
    df['signal_condition'] = (df['lijin3'] > 0) & (df[ 'lijin3'].shift(1) == 0) & (df['mid'] > df['mid_ma8'])
    
    return df

def plot_indicators(df, start_date=None, end_date=None):

    plt.figure(figsize=(1610))
    
    if start_date and end_date:
        plot_df = df.loc[start_date:end_date]
    else:
        plot_df = df
    
    # 绘制主要指标
    plt.plot(plot_df.index, plot_df['量化'], label='量化', color='red')
    plt.plot(plot_df.index, plot_df['对冲'], label='对冲', color='m')
    plt.plot(plot_df.index, plot_df['套利'], label='套利', color='black')
    plt.plot(plot_df.index, plot_df['李津'], label='李津', color='yellow')
    
    # 绘制套利
    cond1 = plot_df['套利'] < plot_df['量化']
    for idx in plot_df[cond1].index:
        plt.vlines(idx, 
                 ymin=plot_df.loc[idx, '套利'],
                 ymax=plot_df.loc[idx, '量化'],
                 color='#FFCCAA',
                 linewidth=2)
    
    # 绘制对冲
    cond2 = plot_df['对冲'] < plot_df['量化']
    for idx in plot_df[cond2].index:
        plt.vlines(idx,
                 ymin=plot_df.loc[idx, '对冲'],
                 ymax=plot_df.loc[idx, '量化'],
                 color='red',
                 linewidth=2)
    
    # 绘制注意控制信号
    signal_points = plot_df[plot_df['signal_condition']]
    for idx in signal_points.index:
        plt.annotate('注意控制',
                    xy=(idx, signal_points.loc[idx, '李津'] + 0.35),
                    color='#FFAACC',
                    fontsize=10,
                    ha='center')
    
    plt.title('股票技术指标分析')
    plt.xlabel('日期')
    plt.ylabel('价格')
    plt.legend()
    plt.grid(True)
    plt.show()

if __name__ == "__main__":
    dates = pd.date_range(start='2023-01-01', periods= 100)
    np.random.seed(42)
    df = pd.DataFrame({
        'close': np.cumsum(np.random.randn(100)) + 100,
        'low': np.cumsum(np.random.randn(100)) + 95
    }, index=dates)
    
    # 计算指标
    df = calculate_indicators(df)
    plot_indicators(df, start_date=df.index[-30], end_date=df.index[-1])

当满足条件二次金叉时,在DEA*1.04位置画26号图标 当满足条件二次金叉时,在-0.08位置书写文字,COLORFF00FFA11赋值:上次1日前的DIFF上穿DEA距今天数底背离赋值:A11+1日前的收盘价>收盘价 AND DIFF>A11+1日前的DIFF AND DIFF上穿DEA当满足条件底背离时,在00.13位置之间画柱状线,宽度为6,0不为0则画空心柱.,画红色当满足条件底背离时,在DEA位置书写文字,画红色A22赋值:上次1日前的DEA上穿DIFF距今天数顶背离赋值:A22+1日前的收盘价1日前的DIFF>DIFF AND DEA上穿DIFF当满足条件顶背离时,在DEA位置书写文字,画绿色




03 指标源码


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

量化:SUM(EMA((C+L)/2,2),5)/5,COLORRED;


    
对冲:LLV(SUM(EMA((C+L)/2,2),5)/5,4),COLORFF00FF;套利:LLV(SUM(EMA((C+L)/2,2),5)/5,10),COLORFFFFFF;李津:EMA(量化,21),COLORYELLOW;STICKLINE(套利STICKLINE(对冲LIJIN1:=2*MA(LLV((C+L)/2,8)*1.1,13)-EMA((C+L)/2,3)-((C+L)/2)*0.1;LIJIN2:=IF((EMA((C+L)/2,3)-LIJIN1)*5>0,POW((EMA((C+L)/2,3)-LIJIN1)*5,2)/10,-1*POW((EMA((C+L)/2,3)-LIJIN1)*5,2)/10);LIJIN3:=IF(LIJIN2>0,LIJIN2-0,0);STICKLINE(LIJIN3>0&&REF(LIJIN3,1)=0&&(C+L)/2>MA((C+L)/2,8),李津,李津+0.2,4,0),COLORFFAACC;DRAWTEXT(LIJIN3>0&&REF(LIJIN3,1)=0&&(C+L)/2>MA((C+L)/2,8),李津+0.35,'注意控制'),LINETHICK3,COLORFFAACC;DRAWGBK(C>0,RGB(0,0,0),RGB(00,0,0),0,'EM',0);DRAWKLINE(H,O,L,C);LIJINWW:=COST(99.9);LB:=COST(0.1);B3:=(LIJINWW-LB)/50;B31:=LIJINWW-B3;B32:=LIJINWW-2*B3;B33:=LIJINWW-3*B3;B34:=LIJINWW-4*B3;B35:=LIJINWW-5*B3;B36:=LIJINWW-6*B3;B37:=LIJINWW-7*B3;B38:=LIJINWW-8*B3;B39:=LIJINWW-9*B3;B310:=LIJINWW-10*B3;B311:=LIJINWW-11*B3;B312:=LIJINWW-12*B3;B313:=LIJINWW-13*B3;B314:=LIJINWW-14*B3;B315:=LIJINWW-15*B3;B316:=LIJINWW-16*B3;B317:=LIJINWW-17*B3;B318:=LIJINWW-18*B3;B319:=LIJINWW-19*B3;B320:=LIJINWW-20*B3;B321:=LIJINWW-21*B3;B322:=LIJINWW-22*B3;B323:=LIJINWW-23*B3;B324:=LIJINWW-24*B3;B325:=LIJINWW-25*B3;B326:=LIJINWW-26*B3;B327:=LIJINWW-27*B3;B328:=LIJINWW-28*B3;B329:=LIJINWW-29*B3;B330:=LIJINWW-30*B3;B331:=LIJINWW-31*B3;B332:=LIJINWW-32*B3;B333:=LIJINWW-33*B3;B334:=LIJINWW-34*B3;B335:=LIJINWW-35*B3;B336:=LIJINWW-36*B3;B337:=LIJINWW-37*B3;B338:=LIJINWW-38*B3;B339:=LIJINWW-39*B3;B340:=LIJINWW-40*B3;B341:=LIJINWW-41*B3;B342:=LIJINWW-42*B3;B343:=LIJINWW-43*B3;B344:=LIJINWW-44*B3;B345:=LIJINWW-45*B3;B346:=LIJINWW-46*B3;B347:=LIJINWW-47*B3;B348:=LIJINWW-48*B3;B349:=LIJINWW-49*B3;A1:=WINNER(LIJINWW)*100-WINNER(B31)*100;A2:=WINNER(B31)*100-WINNER(B32)*100;A3:=WINNER(B32)*100-WINNER(B33)*100;A4:=WINNER(B33)*100-WINNER(B34)*100;A5:=WINNER(B34)*100-WINNER(B35)*100;A6:=WINNER(B35)*100-WINNER(B36)*100;A7:=WINNER(B36)*100-WINNER(B37)*100;A8:=WINNER(B37)*100-WINNER(B38)*100;A9:=WINNER(B38)*100-WINNER(B39)*100;A10:=WINNER(B39)*100-WINNER(B310)*100;A11:=WINNER(B310)*100-WINNER(B311)*100;A12:=WINNER(B311)*100-WINNER(B312)*100;A13:=WINNER(B312)*100-WINNER(B313)*100;A14:=WINNER(B313)*100-WINNER(B314)*100;A15:=WINNER(B314)*100-WINNER(B315)*100;A16:=WINNER(B315)*100-WINNER(B316)*100;A17:=WINNER(B316)*100-WINNER(B317)*100;A18:=WINNER(B317)*100-WINNER(B318)*100;A19:=WINNER(B318)*100-WINNER(B319)*100;A20:=WINNER(B319)*100-WINNER(B320)*100;A21:=WINNER(B320)*100-WINNER(B321)*100;A22:=WINNER(B321)*100-WINNER(B322)*100;A23:=WINNER(B322)*100-WINNER(B323)*100;A24:=WINNER(B323)*100-WINNER(B324)*100;A25:=WINNER(B324)*100-WINNER(B325)*100;A26:=WINNER(B325)*100-WINNER(B326)*100;A27:=WINNER(B326)*100-WINNER(B327)*100;A28:=WINNER(B327)*100-WINNER(B328)*100;A29:=WINNER(B328)*100-WINNER(B329)*100;A30:=WINNER(B329)*100-WINNER(B330)*100;A31:=WINNER(B330)*100-WINNER(B331)*100;A32:=WINNER(B331)*100-WINNER(B332)*100;A33:=WINNER(B332)*100-WINNER(B333)*100;A34:=WINNER(B333)*100-WINNER(B334)*100;A35:=WINNER(B334)*100-WINNER(B335)*100;A36:=WINNER(B335)*100-WINNER(B336)*100;A37:=WINNER(B336)*100-WINNER(B337)*100;A38:=WINNER(B337)*100-WINNER(B338)*100;A39:=WINNER(B338)*100-WINNER(B339)*100;A40:=WINNER(B339)*100-WINNER(B340)*100;A41:=WINNER(B340)*100-WINNER(B341)*100;A42:=WINNER(B341)*100-WINNER(B342)*100;A43:=WINNER(B342)*100-WINNER(B343)*100;A44:=WINNER(B343)*100-WINNER(B344)*100;A45:=WINNER(B344)*100-WINNER(B345)*100;A46:=WINNER(B345)*100-WINNER(B346)*100;A47:=WINNER(B346)*100-WINNER(B347)*100;A48:=WINNER(B347)*100-WINNER(B348)*100;A49:=WINNER(B348)*100-WINNER(B349)*100;A50:=WINNER(B349)*100-WINNER(LB)*100;STICKLINE(ISLASTBAR,LIJINWW,LIJINWW,A1*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B31,B31,A1*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B32,B32,A2*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B33,B33,A3*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B34,B34,A4*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B35,B35,A5*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B36,B36,A6*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B37,B37,A7*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B38,B38,A8*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B39,B39,A9*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B310,B310,A10*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B311,B311,A11*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B312,B312,A12*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B313,B313,A13*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B314,B314,A14*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B315,B315,A15*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B316,B316,A16*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B317,B317,A17*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B318,B318,A18*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B319,B319,A19*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B320,B320,A20*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B321,B321,A21*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B322,B322,A22*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B323,B323,A23*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B324,B324,A24*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B325,B325,A25*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B326,B326,A26*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B327,B327,A27*50,0),COLORCCFFFF;


    
STICKLINE(ISLASTBAR,B328,B328,A28*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B329,B329,A29*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B330,B330,A30*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B331,B331,A31*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B332,B332,A32*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B333,B333,A33*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B334,B334,A34*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B335,B335,A35*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B336,B336,A36*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B337,B337,A37*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B338,B338,A38*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B339,B339,A39*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B340,B340,A40*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B341,B341,A41*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B342,B342,A42*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B343,B343,A43*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B344,B344,A44*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B345,B345,A45*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B346,B346,A46*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B347,B347,A47*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,B348,B348,A48*50,0),COLORCCFFFF;STICKLINE(ISLASTBAR,LB,LB,A50*50,0),COLORCCFFFF;当前获利筹码:IF(WINNER(CLOSE),WINNER(CLOSE)*100,0),NODRAW;STICKLINE(C>=O,C,O,3,0),COLOR000045;STICKLINE(C>=O,C,O,2.5,0),COLOR000065;STICKLINE(C>=O,C,O,2,0),COLOR000085;STICKLINE(C>=O,C,O,1.5,0),COLOR0000A5;STICKLINE(C>=O,C,O,1,0),COLOR0000C5;STICKLINE(C>=O,C,O,0.5,0),COLOR0000E5;STICKLINE(C>=O,H,L,0,0),COLOR0000F5;STICKLINE(CSTICKLINE(CSTICKLINE(CSTICKLINE(CSTICKLINE(CSTICKLINE(CSTICKLINE(C

顺势而为 长期坚持 波段做T




学习分享



学术交流:我们专注于市场的学术交流与研究包括自用指标零滞后均线最速曲线,以及自动化程序量化学习。

分享知识:田都元帅,敬神常在,爱人如己,我为人人,与人为善,分享快乐!


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/182529
 
68 次点击