如何使用python寻找K线中的黄昏之星

之前写过如何寻找启明星。启明星是股票在下跌过程中出现的反转信号,以一个或者两根长阴线,一个小十字星,以及一个中阳线或者大阳线并排为主要的特点。预示着下跌势头的衰减和上涨势头的确立。而黄昏之星正好相反,是上涨势头的衰减,如果把启明星倒过来,就是黄昏之星了。

黄昏之星由一至两根中阳线或者大阳线,加一个带长上影线的十字星,然后出现一个中阴线,侵入到之前大阳线的中间位置以下。

具体的表现以乐视网2018-06-07K线为例,就是以一个大阳线,十字星和中阴线排列的一个黄昏之星的标准形态,而且后市也是一波大的下跌趋势。

 

  下面以乐视网为例,给出寻找黄昏之星的python代码:

 

代码如下:

import baostock as bs

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

import datetime

 

 

def get_his_k_data(stockcode = 'sh.600000'):

    login()

    # 详细指标参数,参见历史行情指标参数章节

    rs = bs.query_history_k_data(stockcode,

        "date,code,open,high,low,close,preclose,volume,amount,pctChg",

        start_date='2018-01-01', end_date='2018-09-13',

        frequency="d", adjustflag="2")

    print (rs.error_code)

    #### 打印结果集 ####

    data_list = []

    while (rs.error_code == '0') & rs.next():

        # 获取一条记录,将记录合并在一起

        data_list.append(rs.get_row_data())

    result = pd.DataFrame(data_list, columns=rs.fields)

    bs.logout()

    return result

 

def find_PositiveStar_NegativeStar(stockcode = 'sh.600000'):

    """找出启明星和黄昏之星"""

    #获取历史K线数据

    hisdata = get_his_k_data(stockcode)

    highlist = hisdata['high'].astype('float')

    lowlist = hisdata['low'].astype('float')

    openlist = hisdata['open'].astype('float')

    closelist = hisdata['close'].astype('float')

    zdflist = hisdata['pctChg'].astype('float')

    datelist = hisdata['date']

    for datestr,zdf in zip(datelist[-200:-100],zdflist[-200:-100]):

        print(datestr,zdf)

       

    for i in range(len(datelist)):

        if i > 2 and i < len(datelist) - 1:

            #黄昏之星 前一日是中阳线,或者连续两天阳线

            if zdflist[i-1] > 5  or  (zdflist[i-1] > 4 and zdflist[i-1] + zdflist[i-2]  > 6): 

                #当日高开或者平开,但是有上下影线,且上影线长度超过了K线实体的长度

                if openlist[i] >= closelist[i - 1] and  (highlist[i]  -  max(openlist[i], closelist[i])> (abs(openlist[i] - closelist[i])) ):  #or zdflist[i] < 0

                    #次日下跌,且跌到之前上涨阳线的一半以下

                    if zdflist[i + 1] < 0 and closelist[i + 1] < 0.5*(openlist[i -1 ] + closelist[i - 1]):

                        print("at %s,%s出现了黄昏之星, 前日涨幅%f,当日涨幅%f,次日涨幅 %f"%(datelist[i],stockcode,zdflist[i-1] ,zdflist[i] ,zdflist[i+1] ))

   

    print("end")

 

if __name__ == '__main__':

    find_PositiveStar_NegativeStar('sz.300104')

 

 

 

结果如下:

at 2018-06-07,sz.300104出现了黄昏之星, 前日涨幅9.946239,当日涨幅-0.244504,次日涨幅 -4.411761

at 2018-09-27,sz.300104出现了黄昏之星, 前日涨幅10.027860,当日涨幅3.291136,次日涨幅 -4.166663

end

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值