第二章.危险的十字线
后面的章节不再解读文字.书里的蜡烛图都应根据具体情况使用,所以后面直接贴代码以及公式.(博主主要以数学手段,对蜡烛图进行分析,以及实盘操作,具体分析方式不作以公示)
(一).十字星
视图中影线的长短是由股票近期的均涨幅决定,具体算法在这不做实现
(一).十字星
CONDITION1:=O=C AND H!=L;{开盘价等于收盘价 并且 最高价不等于最低价 定义了蜡烛图具有上下影线}
OUT: DRAWICON(CONDITION1,L,1);
import pandas as pd
import numpy as np
import datetime
def doji(data):
""""
十字星
:param data: 用于传入股票代码格式为 SH#602688.txt or SZ#300237.txt
:param days: 用作选择形态持续天数
: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[-1][1] == sd[-1][4] and sd[-1][2] is not sd[-1][3]:#CONDITION1代码实现
return data
else:
return None
else:
return None
(二).蜻蜓十字线
CONDITION1:= O=C=H AND H>1.02*L;{开盘=收盘=最高价!=最低价 使蜡烛图有下影线,且最低价跌幅超过2%}
OUT: DRAWICON(CONDITION1,L,1);
def qdoji(data):
""""
蜻蜓十字星
:param data: 用于传入股票代码格式为 SH#602688.txt or SZ#300237.txt
:param days: 用作选择形态持续天数
: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[-1][1] is sd[-1][4] is sd[-1][2] and sd[-1][2] > 1.2*sd[-1][3]:#CONDITION1代码实现
return data
else:
return None
else:
return None
(三).墓碑十字星
CONDITION1:=O=C=L AND H!=L H>1.02*L;{开盘=收盘=最低价!=最高价 使蜡烛图有上影线,且最高价涨幅超过2%}
OUT: DRAWICON(CONDITION1,L,1);
def mdoji(data):
""""
墓碑十字星
:param data: 用于传入股票代码格式为 SH#602688.txt or SZ#300237.txt
:param days: 用作选择形态持续天数
: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[-1][1] is sd[-1][4] is sd[-1][3] and sd[-1][2] > 1.2*sd[-1][3]:#CONDITION1代码实现
return data
else:
return None
else:
return None