社区所有版块导航
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源码学习

量化对冲套利 • 2 周前 • 77 次点击  

今天随手写一个副图指标,无未来函数,这个精品指标:动能多空波段+置信区间指标公式源码学习是手工精良打造的综合工具,融合了统计学置信区间+多空量+动能趋势.

指标目的:是通过构建一个趋势动能差值指标。并且该差值指标构建一个带中枢和标准差通道的统计模型。

样做的好处是通过趋势标准化,挖掘市场小概率事件,在统计学中,一个标准差意味包含了63%数据样本,那么,以动能构建的标准差可以有效地发现市场机会。

所有的信号都围绕并且源于这个差值指标相对于自身统计通道的位置、偏离程度、交叉关系的变化。

再叠加价格相对于长期均线的位置、以及成交量的放大作为过滤器,提高趋势判断的可靠性。

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

Python编程源代码

代码需要安装Python库包括

pip install pandas numpy

并且需要提供包含数据的DataFrame

import pandas as pd
import numpy as np

def calculate_lijin_indicator(df):
    """
    计算精品指标:动能多空波段+置信区间指标公式源码学习
    """

    # 计算基础指标
    df['LIJIN4'] = df['close'].ewm(span=10).mean() - df['close'].ewm(span=22).mean()
    df['LIJIN5'] = df['LIJIN4'].ewm(span=35).mean()
    df['LIJIN6'] = (df['LIJIN4'] - df['LIJIN5']) ** 2
    df['LIJIN7'] = df['LIJIN6'].ewm(span=37).mean()
    df['LIJIN8'] = np.sqrt(df['LIJIN7'])
    df[ 'LIJIN12'] = df['close'].rolling(61).mean()
    
    # 计算上下轨道
    df['LIJIN13'] = df['LIJIN5'] + 2 * df['LIJIN8']
    df['LIJIN14'] = df['LIJIN5'] - 2 * df['LIJIN8']
    
    # 计算条件信号
    df['LIJIN15'] = df['volume'] > df['volume'].rolling(4).mean() * 1.1583
    df['LIJIN16'] = (df['LIJIN4'] > df['LIJIN14']) & (df['close'] > df['LIJIN12']) & df['LIJIN15'] & (df['close'] > df['close'].shift(1))
    
    df['LIJIN17'] = (df['LIJIN5'] > df['LIJIN5'].shift(1)) & (df['close'] > df['LIJIN12'])
    df['LIJIN18'] = (df['LIJIN5'] < df['LIJIN5'].shift(1)) & (df['close'] < df['LIJIN12'])
    df['LIJIN19'] = (df['close'] > df['close'].shift(1)) & (df['volume'] > df['volume'].shift(1)) & df['LIJIN17']
    df['LIJIN20'] = (df['close'] < df['close'].shift(1)) & (df['volume'] > df['volume'].shift(1)) & df['LIJIN18']
    
    # 计算强度指标
    df['LIJIN22'] = np.where(df['LIJIN4'] > df['LIJIN5'], (df['LIJIN4'] - df['LIJIN5']) / df['LIJIN8'], 0)
    df['LIJIN23'] = np.where(df['LIJIN4'] < df['LIJIN5'], (df['LIJIN5'] - df['LIJIN4']) / df['LIJIN8'], 0)
    
    df['LIJIN24'] = df['LIJIN22'] > 1.5
    df['LIJIN25'] = df['LIJIN23'] > 1.5
    
    # 计算交叉信号
    condition1 = (df['LIJIN4'] > df['LIJIN14']) & (
        (df[ 'LIJIN4'].shift(1) <= df['LIJIN14']) | 
        (df['LIJIN4'].shift(2) <= df['LIJIN14'])
    ) & (df['LIJIN17'] | (df['close'] > df['close'].rolling(30).mean())) & (
        df['LIJIN15'] | (df['volume'] > df['volume'].shift(1) * 1.05)
    )
    
    condition2 = (df['LIJIN4'] < df['LIJIN13']) & (
        (df['LIJIN4'].shift(1) >= df['LIJIN13']) | 
        (df['LIJIN4'].shift(2) >= df['LIJIN13'])
    ) & (df['LIJIN18'] | (df['close'] < df['close'].rolling(30).mean())) & (
        df['LIJIN15'] | (df['volume'] > df['volume'].shift(1) * 1.05)
    )
    
    df['LIJIN26'] = condition1.rolling(3).sum() >= 1
    df['LIJIN27'] = condition2.rolling(3).sum() >= 1
    
    df['LIJIN28'] = (
        (df['LIJIN17'] & (df['LIJIN4'] > df['LIJIN5']) & (df['LIJIN4'] < df['LIJIN13'])) |
        (df['LIJIN18'] & (df['LIJIN4'] < df['LIJIN5']) & (df['LIJIN4'] > df['LIJIN14']))
    )
    
    return df

指标源码






    
LIJIN4:EMA(C,10)-EMA(C,22),COLORC0C0C0;LIJIN5:=EMA(LIJIN4,35);LIJIN6:=POW((LIJIN4-LIJIN5),2);LIJIN7:=EMA(LIJIN6,37);LIJIN8:=SQRT(LIJIN7);LIJIN12:=MA(C,61);LIJIN13:LIJIN5+2*LIJIN8,COLORGREEN;LIJIN14:LIJIN5-2*LIJIN8,COLORFF00FF;LIJIN15:=V>MA(V,4)*1.1583;LIJIN16:CROSS(LIJIN4,LIJIN14)&&C>LIJIN12&&LIJIN15&&C>REF(C,1),COLOR008080;LIJIN17:=LIJIN5>REF(LIJIN5,1)&&C>LIJIN12;LIJIN18:=LIJIN51)&&CLIJIN19:=C>REF(C,1)&&V>REF(V,1)&&LIJIN17;LIJIN20:=C1)&&V>REF(V,1)&&LIJIN18;LIJIN21:=NOT(LIJIN17)&&NOT(LIJIN18);LIJIN22:=IF(LIJIN4>LIJIN5,(LIJIN4-LIJIN5)/LIJIN8,0);LIJIN23:=IF(LIJIN40);LIJIN24:=LIJIN22>1.5;LIJIN25:=LIJIN23>1.5;LIJIN26:=COUNT(LIJIN4>LIJIN14&&(REF(LIJIN4,1)<=LIJIN14||REF(LIJIN4,2)<=LIJIN14)&&(LIJIN17||C>MA(C,30))&&(LIJIN15||V>REF(V,1)*1.05),3)>=1;LIJIN27:=COUNT(LIJIN41)>=LIJIN13||REF(LIJIN4,2)>=LIJIN13)&&(LIJIN18||C30))&&(LIJIN15||V>REF(V,1)*1.05),3)>=1;LIJIN28:=(LIJIN17&&CROSS(LIJIN4,LIJIN5)&&LIJIN4LIJIN14);DRAWICON(LIJIN17,LIJIN4,1);DRAWICON(LIJIN18,LIJIN4,2);STICKLINE(LIJIN24,LIJIN13,LIJIN13*0.95,6,0),COLORMAGENTA;STICKLINE(LIJIN25,LIJIN14,LIJIN14*1.05,6,0),COLORFFFF00;DRAWICON(LIJIN26,LIJIN14,1);DRAWICON(LIJIN27,LIJIN13,2);DRAWICON(LIJIN28,0,41);DRAWICON(LIJIN19,LIJIN13,13);DRAWICON(LIJIN20,LIJIN14,14);

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



学习分享



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

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