孕线及星线

第四章,孕线

孕线中实体的颜色不重要
绘图公式 在下降趋势中,为看涨孕线

在上升趋势中,为看跌孕线

CONDITON1:= REF(H,1) > H AND L > REF(L,1); {昨日最高价 > 今日最高价 且今最低价 > 昨日最低价}
CONDITON1:= H / L > 1.015; {今日振幅>1.5%,确保了股票活性也保证了实体长度}
OUT:DRAWICON(CONDITON1 AND CONDITION2,L,1);

选股公式

CONDITON1:= REF(H,1) > H AND L > REF(L,1); {昨日最高价 > 今日最高价 且今最低价 > 昨日最低价}
CONDITON1:= H / L > 1.015; {今日振幅>1.5%,确保了股票活性也保证了实体长度}
OUT:CONDITON1 AND CONDITION2;

第二根线为十字形态而不是纺锤形态的话,它就是一根十字孕线

CONDITON1:= REF(H,1) > H AND L > REF(L,1); {昨日最高价 > 今日最高价 且今最低价 > 昨日最低价}
CONDITON1:= H / L > 1.015 AND O=C; {今日振幅>1.5%,确保了股票活性也保证了实体长度,开盘价=收盘价形成十字星}
OUT:DRAWICON(CONDITON1 AND CONDITION2,L,1);

python实现

import pandas as pd
import numpy as np
import datetime
# 给代码运行加个速
from numba import jit

@jit(nopython=True)
def pregnant(data):
    """"
    孕线
    :param data: 用于传入股票代码格式为 SH#602688.txt or SZ#300237.txt
    :return: 返回符合条件的股票代码,如果不符合返回None
    """
    sd = pd.read_table("/Volumes/data/Stock_data/d_K/{}".format(data),
                          encoding='gbk', header=1, parse_dates=True)[:-1]
    sd.rename(columns=lambda x: x.strip(), inplace=True)  #读取数据
    sd = np.array(sd)  #这里只用于编写策略,不做统计分析,我选numpy
    now = datetime.date.today().strftime("%Y/%m/%d")
    if now is sd[-1][0]: #进行日期对比,只选择今天有交易的股票
        #std[][1]开盘价  std[][2]最高价 std[][3]最低价  std[][4]收盘价
        if sd[-2][2] > sd[-1][2] and sd[-1][3] > sd[-2][3] :#CONDITION1代码实现
            if sd[-1][2] / sd[-1][3] > 1.015: #CONDITION2代码实现
                return data
            else:
                  return None
        else:
            return None
    else:
        return None

第五章,星线
(一),启明星

绘图函数

CONDITION1:=REF(O,2)>REF(C,2) AND REF(C,2)/REF(O,2)<0.98;{第一根蜡烛线为长阴线且收盘价<2%}
CONDITION2:=IF(REF(C,1)>REF(O,1),1-REF(C,1)/REF(O,1),REF(O,1)/REF(C,1)-1)<0.01;{第二根蜡烛线收盘涨跌幅<1%}
CONDITION3:=REF(C,2)>REF(O,1) AND REF(H,1)>REF(C,2);{第二根蜡烛线跳空开盘,且阴线插入其实体部分}
CONDITION4:=MAX(REF(C,1),REF(O,1)) < O ADN C/O > 1.02;{今日跳高开盘,且收盘>2%}
OUT:DRAWICON(CONDITON1 AND CONDITION2 AND CONDITION3 AND CONDITION4,L,1);

选股函数

CONDITION1:=REF(O,2)>REF(C,2) AND REF(C,2)/REF(O,2)<0.98;{第一根蜡烛线为长阴线且收盘价<2%}
CONDITION2:=IF(REF(C,1)>REF(O,1),1-REF(C,1)/REF(O,1),REF(O,1)/REF(C,1)-1)<0.01;{第二根蜡烛线收盘涨跌幅<1%}
CONDITION3:=REF(C,2)>REF(O,1) AND REF(H,1)>REF(C,2);{第二根蜡烛线跳空开盘,且阴线插入其实体部分}
CONDITION4:=MAX(REF(C,1),REF(O,1)) < O ADN C/O > 1.02;{今日跳高开盘,且收盘>2%}
OUT:CONDITON1 AND CONDITION2 AND CONDITION3 AND CONDITION4;


@jit(nopython=True)
def u_start(data):
    """"
    启明星
    :param data: 用于传入股票代码格式为 SH#602688.txt or SZ#300237.txt
    :return: 返回符合条件的股票代码,如果不符合返回None
    """
    sd = pd.read_table("/Volumes/data/Stock_data/d_K/{}".format(data),
                          encoding='gbk', header=1, parse_dates=True)[:-1]
    sd.rename(columns=lambda x: x.strip(), inplace=True)  #读取数据
    sd = np.array(sd)  #这里只用于编写策略,不做统计分析,我选numpy
    now = datetime.date.today().strftime("%Y/%m/%d")
    if now is sd[-1][0]: #进行日期对比,只选择今天有交易的股票
        #std[][1]开盘价  std[][2]最高价 std[][3]最低价  std[][4]收盘价
        if sd[-3][1] > sd[-2][4] and sd[-3][4]/sd[-3][1] < 0.98 :#CONDITION1代码实现
            if sd[-2][4] > sd[-2][1]: #CONDITION2代码实现
                if sd[-2][4]/sd[-2][1] > 1.01:
                    pass
                else:
                    return None
            else:
                if sd[-2][1]/sd[-2][4] >0.99:
                    pass
                else:
                    return None
            if sd[-3][4] > sd[-2][1] and sd[-2][2]>sd[-3][1]:#CONDITION3
                if max(sd[-2][1],sd[-2][4]) < sd[-1][1] and sd[-1][4]/sd[-1][1] > 1.02:#CONDITION4
                    return data
                else:
                    return None
            else:
                return None
        else:
            return None
    else:
        return None
(一), 黄昏星

绘图函数

CONDITION1:=REF(C,2)>REF(O,2) AND REF(C,2)/REF(O,2)>1.02;{第一根蜡烛线为长阳线且收盘价>2%}
CONDITION2:=IF(REF(C,1)>REF(O,1),1-REF(C,1)/REF(O,1),REF(O,1)/REF(C,1)-1)<0.01;{第二根蜡烛线收盘涨跌幅<1%}
CONDITION3:=REF(O,1)>REF(C,2) AND REF(C,2)>REF(L,1);{第二根蜡烛线跳高开盘,且阴线插入其实体部分}
CONDITION4:=MIN(REF(C,1),REF(O,1)) > O ADN C/O < 0.98;{今日跳空开盘,且收盘<2%}
OUT:DRAWICON(CONDITON1 AND CONDITION2 AND CONDITION3 AND CONDITION4,L,1);

选股函数

CONDITION1:=REF(C,2)>REF(O,2) AND REF(C,2)/REF(O,2)>1.02;{第一根蜡烛线为长阳线且收盘价>2%}
CONDITION2:=IF(REF(C,1)>REF(O,1),1-REF(C,1)/REF(O,1),REF(O,1)/REF(C,1)-1)<0.01;{第二根蜡烛线收盘涨跌幅<1%}
CONDITION3:=REF(O,1)>REF(C,2) AND REF(C,2)>REF(L,1);{第二根蜡烛线调高开盘,且阴线插入其实体部分}
CONDITION4:=MIN(REF(C,1),REF(O,1)) > O ADN C/O < 0.98;{今日跳空开盘,且收盘<2%}
OUT:CONDITON1 AND CONDITION2 AND CONDITION3 AND CONDITION4;

@jit(nopython=True)
def d_start(data):
    """"
    黄昏星
    :param data: 用于传入股票代码格式为 SH#602688.txt or SZ#300237.txt
    :return: 返回符合条件的股票代码,如果不符合返回None
    """
    sd = pd.read_table("/Volumes/data/Stock_data/d_K/{}".format(data),
                          encoding='gbk', header=1, parse_dates=True)[:-1]
    sd.rename(columns=lambda x: x.strip(), inplace=True)  #读取数据
    sd = np.array(sd)  #这里只用于编写策略,不做统计分析,我选numpy
    now = datetime.date.today().strftime("%Y/%m/%d")
    if now is sd[-1][0]: #进行日期对比,只选择今天有交易的股票
        #std[][1]开盘价  std[][2]最高价 std[][3]最低价  std[][4]收盘价
        if sd[-3][4] > sd[-2][1] and sd[-3][4]/sd[-3][1] > 1.02 :#CONDITION1代码实现
            if sd[-2][4] > sd[-2][1]: #CONDITION2代码实现
                if sd[-2][4]/sd[-2][1] > 1.01:
                    pass
                else:
                    return None
            else:
                if sd[-2][1]/sd[-2][4] >0.99:
                    pass
                else:
                    return None
            if sd[-2][1] > sd[-3][4] > sd[-2][3]:
                if min(sd[-2][1],sd[-2][4]) > sd[-1][1] and sd[-1][4]/sd[-1][1] > 1.02:
                    return data
                else:
                    return None
            else:
                return None
        else:
            return None
    else:
        return None
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值