当前位置: 代码迷 >> 综合 >> 佛系老年学量化——从实现指标开始(DKX)
  详细解决方案

佛系老年学量化——从实现指标开始(DKX)

热度:44   发布时间:2024-01-25 21:36:21.0

 一、指标说明
DKX指标(多空线指标,指标解释来自百度百科)

    多空线是一个统计性指标。它是将主动买、主动卖的成交按时间区间分别统计而形成的一个曲线。多空线有两条线,以交叉方式提示买入卖出。

    计算公式(通达信)

    MID:=(3*CLOSE+LOW+OPEN+HIGH)/6;

    DKX:(20*MID+19*REF(MID,1)+18*REF(MID,2)+17*REF(MID,3)+16*REF(MID,4)+15*REF(MID,5)+14*REF(MID,6)+
13*REF(MID,7)+12*REF(MID,8)+11*REF(MID,9)+10*REF(MID,10)+9*REF(MID,11)+8*REF(MID,12)+
7*REF(MID,13)+6*REF(MID,14)+5*REF(MID,15)+4*REF(MID,16)+3*REF(MID,17)+2*REF(MID,18)+REF(MID,20))/210;
MADKX:MA(DKX,M); 

    应用法则

    1.设置超买超卖线。由于每只股票的特性不同,因此,超买超卖的标准是不同的。投资者需要观察个股的一年以上走势图,观察其常态性分布范围,然后用参考线设定其超买超卖范围。

    2.当DKX指标在超卖区上穿其均线时,为买入信号;当DKX指标在超买区下穿其均线时,为卖出信号。

   3.股价在DKX指标之上,为多头市场,采取做多策略;股价在DKX指标之下,为空头市场,采取做空策略。

    注意要点

    1.DKX指标不受短期波动的影响,运用该指标需从中长期趋势理解,在短线上最好不要操作。

    2.在对DKX指标的分析上要注意量能的配合情况。

    二、实现方式:(为方便在聚宽平台使用,模仿聚宽调用形式)
1.参考代码:(仅供学习参考,只实现基本功能,其他参数我目前不需要,所以没有实现)

def common1(security_list, data):if len(security_list) == 1:res = data[0]else:res = dict(zip(security_list, data))return resdef get_file_uri(security, info_dir='out'):filename = '{}_{}.pkl'.format(security, __version) file_dir = os.path.join(os.getcwd(), info_dir)file_uri = os.path.join(file_dir, filename)  return file_uridef DKX(security_list, check_date, M = 10, unit = '1d', include_now = True, fq_ref_date = None):  def helper(security, check_date, M = 10, unit = '1d', include_now = True, fq_ref_date = None):file_uri = get_file_uri(security)df = pd.read_pickle(file_uri)[['low', 'high', 'open', 'close']]df['close'] = 3 * df['close']    mid = df.sum(axis = 1) / 6del dfres = pd.DataFrame()res['dkx'] = sum([(20 - i) * mid.shift(i) for i in range(20)]) / 210res['mdkx'] = res['dkx'].rolling(M).mean()return res_res = [helper(s, check_date, M, unit, include_now, fq_ref_date) for s in security_list]return common1(security_list, _res)  

 

  相关解决方案