Py学习  »  Python

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

量化对冲套利 • 1 年前 • 288 次点击  

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

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

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